java -ea -Xmx8000000000 -Xss4m -jar ./plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar -data @noDefault -ultimatedata ./data -tc ../../../trunk/examples/toolchains/AutomizerBplInline.xml -s ../../../trunk/examples/settings/ai/array-bench/reach_32bit_compound_exp_cong.epf -i ../../../trunk/examples/programs/heapseparator/speedup-poc-dd-5-limited.bpl -------------------------------------------------------------------------------- This is Ultimate 0.1.24-fa1c628-m [2019-01-31 14:42:36,176 INFO L170 SettingsManager]: Resetting all preferences to default values... [2019-01-31 14:42:36,178 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2019-01-31 14:42:36,190 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2019-01-31 14:42:36,190 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2019-01-31 14:42:36,191 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2019-01-31 14:42:36,192 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2019-01-31 14:42:36,194 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2019-01-31 14:42:36,196 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2019-01-31 14:42:36,197 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2019-01-31 14:42:36,198 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2019-01-31 14:42:36,198 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2019-01-31 14:42:36,199 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2019-01-31 14:42:36,200 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2019-01-31 14:42:36,201 INFO L174 SettingsManager]: Resetting ChcToBoogie preferences to default values [2019-01-31 14:42:36,202 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2019-01-31 14:42:36,203 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2019-01-31 14:42:36,205 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2019-01-31 14:42:36,207 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2019-01-31 14:42:36,209 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2019-01-31 14:42:36,210 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2019-01-31 14:42:36,211 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2019-01-31 14:42:36,214 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2019-01-31 14:42:36,214 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2019-01-31 14:42:36,214 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2019-01-31 14:42:36,215 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2019-01-31 14:42:36,216 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2019-01-31 14:42:36,217 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2019-01-31 14:42:36,218 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2019-01-31 14:42:36,219 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2019-01-31 14:42:36,219 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2019-01-31 14:42:36,220 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2019-01-31 14:42:36,220 INFO L177 SettingsManager]: ReqParser provides no preferences, ignoring... [2019-01-31 14:42:36,220 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2019-01-31 14:42:36,221 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2019-01-31 14:42:36,222 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2019-01-31 14:42:36,222 INFO L98 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/settings/ai/array-bench/reach_32bit_compound_exp_cong.epf [2019-01-31 14:42:36,235 INFO L110 SettingsManager]: Loading preferences was successful [2019-01-31 14:42:36,235 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2019-01-31 14:42:36,236 INFO L131 SettingsManager]: Preferences of Boogie Preprocessor differ from their defaults: [2019-01-31 14:42:36,236 INFO L133 SettingsManager]: * Show backtranslation warnings=false [2019-01-31 14:42:36,237 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2019-01-31 14:42:36,237 INFO L133 SettingsManager]: * User list type=DISABLED [2019-01-31 14:42:36,237 INFO L133 SettingsManager]: * Inline calls to unimplemented procedures=true [2019-01-31 14:42:36,237 INFO L131 SettingsManager]: Preferences of Abstract Interpretation differ from their defaults: [2019-01-31 14:42:36,237 INFO L133 SettingsManager]: * Explicit value domain=true [2019-01-31 14:42:36,238 INFO L133 SettingsManager]: * Abstract domain for RCFG-of-the-future=PoormanAbstractDomain [2019-01-31 14:42:36,238 INFO L133 SettingsManager]: * Octagon Domain=false [2019-01-31 14:42:36,238 INFO L133 SettingsManager]: * Abstract domain=CompoundDomain [2019-01-31 14:42:36,238 INFO L133 SettingsManager]: * Check feasibility of abstract posts with an SMT solver=true [2019-01-31 14:42:36,238 INFO L133 SettingsManager]: * Interval Domain=false [2019-01-31 14:42:36,239 INFO L131 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2019-01-31 14:42:36,239 INFO L133 SettingsManager]: * Create parallel compositions if possible=false [2019-01-31 14:42:36,239 INFO L133 SettingsManager]: * Use SBE=true [2019-01-31 14:42:36,240 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2019-01-31 14:42:36,240 INFO L133 SettingsManager]: * sizeof long=4 [2019-01-31 14:42:36,240 INFO L133 SettingsManager]: * Overapproximate operations on floating types=true [2019-01-31 14:42:36,240 INFO L133 SettingsManager]: * sizeof POINTER=4 [2019-01-31 14:42:36,240 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2019-01-31 14:42:36,241 INFO L133 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2019-01-31 14:42:36,241 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2019-01-31 14:42:36,241 INFO L133 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2019-01-31 14:42:36,241 INFO L133 SettingsManager]: * sizeof long double=12 [2019-01-31 14:42:36,241 INFO L133 SettingsManager]: * Check if freed pointer was valid=false [2019-01-31 14:42:36,242 INFO L133 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2019-01-31 14:42:36,242 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2019-01-31 14:42:36,242 INFO L133 SettingsManager]: * Size of a code block=SequenceOfStatements [2019-01-31 14:42:36,242 INFO L133 SettingsManager]: * SMT solver=External_DefaultMode [2019-01-31 14:42:36,242 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:8092 -smt2 -in -t:10000 [2019-01-31 14:42:36,243 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2019-01-31 14:42:36,243 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2019-01-31 14:42:36,243 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2019-01-31 14:42:36,243 INFO L133 SettingsManager]: * Trace refinement strategy=TAIPAN [2019-01-31 14:42:36,243 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2019-01-31 14:42:36,244 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:8092 -smt2 -in [2019-01-31 14:42:36,244 INFO L133 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2019-01-31 14:42:36,244 INFO L133 SettingsManager]: * Abstract interpretation Mode=USE_PREDICATES [2019-01-31 14:42:36,273 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2019-01-31 14:42:36,285 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2019-01-31 14:42:36,289 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2019-01-31 14:42:36,290 INFO L271 PluginConnector]: Initializing Boogie PL CUP Parser... [2019-01-31 14:42:36,291 INFO L276 PluginConnector]: Boogie PL CUP Parser initialized [2019-01-31 14:42:36,291 INFO L418 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/programs/heapseparator/speedup-poc-dd-5-limited.bpl [2019-01-31 14:42:36,292 INFO L111 BoogieParser]: Parsing: '/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/programs/heapseparator/speedup-poc-dd-5-limited.bpl' [2019-01-31 14:42:36,337 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2019-01-31 14:42:36,338 INFO L131 ToolchainWalker]: Walking toolchain with 4 elements. [2019-01-31 14:42:36,339 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2019-01-31 14:42:36,340 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2019-01-31 14:42:36,340 INFO L276 PluginConnector]: Boogie Procedure Inliner initialized [2019-01-31 14:42:36,357 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "speedup-poc-dd-5-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 31.01 02:42:36" (1/1) ... [2019-01-31 14:42:36,368 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "speedup-poc-dd-5-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 31.01 02:42:36" (1/1) ... [2019-01-31 14:42:36,396 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2019-01-31 14:42:36,397 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2019-01-31 14:42:36,397 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2019-01-31 14:42:36,397 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2019-01-31 14:42:36,408 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "speedup-poc-dd-5-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 31.01 02:42:36" (1/1) ... [2019-01-31 14:42:36,409 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "speedup-poc-dd-5-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 31.01 02:42:36" (1/1) ... [2019-01-31 14:42:36,410 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "speedup-poc-dd-5-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 31.01 02:42:36" (1/1) ... [2019-01-31 14:42:36,411 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "speedup-poc-dd-5-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 31.01 02:42:36" (1/1) ... [2019-01-31 14:42:36,414 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "speedup-poc-dd-5-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 31.01 02:42:36" (1/1) ... [2019-01-31 14:42:36,419 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "speedup-poc-dd-5-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 31.01 02:42:36" (1/1) ... [2019-01-31 14:42:36,420 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "speedup-poc-dd-5-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 31.01 02:42:36" (1/1) ... [2019-01-31 14:42:36,422 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2019-01-31 14:42:36,423 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2019-01-31 14:42:36,424 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2019-01-31 14:42:36,424 INFO L276 PluginConnector]: RCFGBuilder initialized [2019-01-31 14:42:36,425 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "speedup-poc-dd-5-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 31.01 02:42: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:8092 -smt2 -in -t:10000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:8092 -smt2 -in -t:10000 [2019-01-31 14:42:36,480 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2019-01-31 14:42:36,481 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2019-01-31 14:42:37,265 INFO L281 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2019-01-31 14:42:37,266 INFO L286 CfgBuilder]: Removed 13 assue(true) statements. [2019-01-31 14:42:37,268 INFO L202 PluginConnector]: Adding new model speedup-poc-dd-5-limited.bpl de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 31.01 02:42:37 BoogieIcfgContainer [2019-01-31 14:42:37,269 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2019-01-31 14:42:37,270 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2019-01-31 14:42:37,271 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2019-01-31 14:42:37,275 INFO L276 PluginConnector]: TraceAbstraction initialized [2019-01-31 14:42:37,275 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "speedup-poc-dd-5-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 31.01 02:42:36" (1/2) ... [2019-01-31 14:42:37,276 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@34917897 and model type speedup-poc-dd-5-limited.bpl de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 31.01 02:42:37, skipping insertion in model container [2019-01-31 14:42:37,276 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "speedup-poc-dd-5-limited.bpl de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 31.01 02:42:37" (2/2) ... [2019-01-31 14:42:37,279 INFO L112 eAbstractionObserver]: Analyzing ICFG speedup-poc-dd-5-limited.bpl [2019-01-31 14:42:37,290 INFO L156 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2019-01-31 14:42:37,298 INFO L168 ceAbstractionStarter]: Appying trace abstraction to program that has 5 error locations. [2019-01-31 14:42:37,317 INFO L257 AbstractCegarLoop]: Starting to check reachability of 5 error locations. [2019-01-31 14:42:37,356 INFO L382 AbstractCegarLoop]: Interprodecural is true [2019-01-31 14:42:37,356 INFO L383 AbstractCegarLoop]: Hoare is true [2019-01-31 14:42:37,357 INFO L384 AbstractCegarLoop]: Compute interpolants for FPandBP [2019-01-31 14:42:37,357 INFO L385 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2019-01-31 14:42:37,357 INFO L386 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2019-01-31 14:42:37,357 INFO L387 AbstractCegarLoop]: Difference is false [2019-01-31 14:42:37,357 INFO L388 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2019-01-31 14:42:37,358 INFO L393 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2019-01-31 14:42:37,381 INFO L276 IsEmpty]: Start isEmpty. Operand 13 states. [2019-01-31 14:42:37,395 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 3 [2019-01-31 14:42:37,395 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:42:37,396 INFO L402 BasicCegarLoop]: trace histogram [1, 1] [2019-01-31 14:42:37,400 INFO L423 AbstractCegarLoop]: === Iteration 1 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:42:37,406 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:42:37,407 INFO L82 PathProgramCache]: Analyzing trace with hash 984, now seen corresponding path program 1 times [2019-01-31 14:42:37,410 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:42:37,452 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:42:37,452 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:42:37,452 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:42:37,452 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:42:37,505 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:37,649 INFO L273 TraceCheckUtils]: 0: Hoare triple {16#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {18#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-31 14:42:37,662 INFO L273 TraceCheckUtils]: 1: Hoare triple {18#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {17#false} is VALID [2019-01-31 14:42:37,664 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:37,666 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2019-01-31 14:42:37,666 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [1] imperfect sequences [] total 1 [2019-01-31 14:42:37,667 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-31 14:42:37,671 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 2 [2019-01-31 14:42:37,674 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:42:37,676 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states. [2019-01-31 14:42:37,690 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 2 edges. 2 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:42:37,690 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2019-01-31 14:42:37,697 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2019-01-31 14:42:37,698 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-01-31 14:42:37,700 INFO L87 Difference]: Start difference. First operand 13 states. Second operand 3 states. [2019-01-31 14:42:38,145 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:38,145 INFO L93 Difference]: Finished difference Result 25 states and 33 transitions. [2019-01-31 14:42:38,145 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-31 14:42:38,146 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 2 [2019-01-31 14:42:38,146 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:42:38,147 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-01-31 14:42:38,151 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 33 transitions. [2019-01-31 14:42:38,152 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-01-31 14:42:38,156 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 33 transitions. [2019-01-31 14:42:38,157 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 33 transitions. [2019-01-31 14:42:38,222 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 33 edges. 33 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:42:38,233 INFO L225 Difference]: With dead ends: 25 [2019-01-31 14:42:38,234 INFO L226 Difference]: Without dead ends: 20 [2019-01-31 14:42:38,238 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 1 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 1 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-01-31 14:42:38,253 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 20 states. [2019-01-31 14:42:38,276 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 20 to 12. [2019-01-31 14:42:38,277 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:42:38,277 INFO L82 GeneralOperation]: Start isEquivalent. First operand 20 states. Second operand 12 states. [2019-01-31 14:42:38,278 INFO L74 IsIncluded]: Start isIncluded. First operand 20 states. Second operand 12 states. [2019-01-31 14:42:38,278 INFO L87 Difference]: Start difference. First operand 20 states. Second operand 12 states. [2019-01-31 14:42:38,281 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:38,282 INFO L93 Difference]: Finished difference Result 20 states and 28 transitions. [2019-01-31 14:42:38,282 INFO L276 IsEmpty]: Start isEmpty. Operand 20 states and 28 transitions. [2019-01-31 14:42:38,282 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:42:38,283 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:42:38,283 INFO L74 IsIncluded]: Start isIncluded. First operand 12 states. Second operand 20 states. [2019-01-31 14:42:38,283 INFO L87 Difference]: Start difference. First operand 12 states. Second operand 20 states. [2019-01-31 14:42:38,286 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:38,287 INFO L93 Difference]: Finished difference Result 20 states and 28 transitions. [2019-01-31 14:42:38,287 INFO L276 IsEmpty]: Start isEmpty. Operand 20 states and 28 transitions. [2019-01-31 14:42:38,288 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:42:38,288 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:42:38,288 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:42:38,288 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:42:38,289 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-31 14:42:38,291 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 21 transitions. [2019-01-31 14:42:38,292 INFO L78 Accepts]: Start accepts. Automaton has 12 states and 21 transitions. Word has length 2 [2019-01-31 14:42:38,293 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:42:38,293 INFO L480 AbstractCegarLoop]: Abstraction has 12 states and 21 transitions. [2019-01-31 14:42:38,293 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2019-01-31 14:42:38,293 INFO L276 IsEmpty]: Start isEmpty. Operand 12 states and 21 transitions. [2019-01-31 14:42:38,294 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-01-31 14:42:38,294 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:42:38,294 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-01-31 14:42:38,294 INFO L423 AbstractCegarLoop]: === Iteration 2 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:42:38,295 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:42:38,295 INFO L82 PathProgramCache]: Analyzing trace with hash 30372, now seen corresponding path program 1 times [2019-01-31 14:42:38,295 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:42:38,296 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:42:38,296 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:42:38,296 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:42:38,297 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:42:38,315 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:38,557 WARN L181 SmtUtils]: Spent 152.00 ms on a formula simplification. DAG size of input: 19 DAG size of output: 13 [2019-01-31 14:42:38,609 INFO L273 TraceCheckUtils]: 0: Hoare triple {102#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {104#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:42:38,611 INFO L273 TraceCheckUtils]: 1: Hoare triple {104#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {105#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-31 14:42:38,612 INFO L273 TraceCheckUtils]: 2: Hoare triple {105#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {103#false} is VALID [2019-01-31 14:42:38,613 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:38,613 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:42:38,613 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:42:38,614 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 4 with the following transitions: [2019-01-31 14:42:38,616 INFO L207 CegarAbsIntRunner]: [0], [18], [23] [2019-01-31 14:42:38,654 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:42:38,654 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:42:38,785 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:42:38,787 INFO L272 AbstractInterpreter]: Visited 3 different actions 3 times. Never merged. Never widened. Performed 62 root evaluator evaluations with a maximum evaluation depth of 3. Performed 62 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-31 14:42:38,794 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:42:38,796 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:42:38,796 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:42:38,797 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:42:38,817 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:42:38,817 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:42:38,846 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:38,866 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:38,870 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:42:39,025 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 18 treesize of output 21 [2019-01-31 14:42:39,042 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:39,045 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 21 treesize of output 27 [2019-01-31 14:42:39,069 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:39,071 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:39,073 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:42:39,137 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:39,139 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:39,141 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:39,144 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:42:39,401 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:39,428 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:39,453 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:39,479 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:39,480 INFO L303 Elim1Store]: Index analysis took 115 ms [2019-01-31 14:42:39,483 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:42:39,509 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:42:39,856 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:39,915 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:39,973 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:40,004 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:40,035 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:42:40,036 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 4 variables, input treesize:31, output treesize:38 [2019-01-31 14:42:40,044 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:42:40,044 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_27|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store (store |v_#memory_int_27| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:42:40,045 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:42:40,267 WARN L181 SmtUtils]: Spent 126.00 ms on a formula simplification that was a NOOP. DAG size: 26 [2019-01-31 14:42:40,453 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:40,455 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:40,455 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:40,457 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:40,459 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:40,460 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:40,462 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:40,463 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:40,464 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:40,466 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:40,470 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:40,472 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 66 [2019-01-31 14:42:40,490 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:42:40,546 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:42:40,546 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:48, output treesize:38 [2019-01-31 14:42:45,264 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:42:45,264 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_28|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_28| ULTIMATE.start_main_p4))) (and (= (store |v_#memory_int_28| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_28| ULTIMATE.start_main_p2)) (= (select |v_#memory_int_28| ULTIMATE.start_main_p1) 0) (= 0 (select |v_#memory_int_28| ULTIMATE.start_main_p5)) (= 0 (select |v_#memory_int_28| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= .cse0 0))) [2019-01-31 14:42:45,264 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:42:45,342 INFO L273 TraceCheckUtils]: 0: Hoare triple {102#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {109#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-31 14:42:45,349 INFO L273 TraceCheckUtils]: 1: Hoare triple {109#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {113#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-01-31 14:42:45,350 INFO L273 TraceCheckUtils]: 2: Hoare triple {113#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} assume !(#memory_int[main_p1] >= 0); {103#false} is VALID [2019-01-31 14:42:45,351 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:45,352 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:42:45,430 INFO L273 TraceCheckUtils]: 2: Hoare triple {117#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {103#false} is VALID [2019-01-31 14:42:45,431 INFO L273 TraceCheckUtils]: 1: Hoare triple {121#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {117#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:42:45,433 INFO L273 TraceCheckUtils]: 0: Hoare triple {102#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {121#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:42:45,434 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:45,454 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:42:45,455 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-01-31 14:42:45,455 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:42:45,456 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-01-31 14:42:45,457 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:42:45,457 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-01-31 14:42:45,472 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 6 edges. 6 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:42:45,472 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-01-31 14:42:45,472 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-01-31 14:42:45,473 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-31 14:42:45,473 INFO L87 Difference]: Start difference. First operand 12 states and 21 transitions. Second operand 6 states. [2019-01-31 14:42:46,237 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:46,237 INFO L93 Difference]: Finished difference Result 39 states and 56 transitions. [2019-01-31 14:42:46,237 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-31 14:42:46,237 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-01-31 14:42:46,238 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:42:46,238 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-31 14:42:46,240 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 56 transitions. [2019-01-31 14:42:46,240 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-31 14:42:46,242 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 56 transitions. [2019-01-31 14:42:46,243 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 56 transitions. [2019-01-31 14:42:46,428 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 56 edges. 56 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:42:46,431 INFO L225 Difference]: With dead ends: 39 [2019-01-31 14:42:46,431 INFO L226 Difference]: Without dead ends: 37 [2019-01-31 14:42:46,432 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 7 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=31, Invalid=41, Unknown=0, NotChecked=0, Total=72 [2019-01-31 14:42:46,432 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 37 states. [2019-01-31 14:42:46,447 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 37 to 16. [2019-01-31 14:42:46,448 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:42:46,448 INFO L82 GeneralOperation]: Start isEquivalent. First operand 37 states. Second operand 16 states. [2019-01-31 14:42:46,448 INFO L74 IsIncluded]: Start isIncluded. First operand 37 states. Second operand 16 states. [2019-01-31 14:42:46,449 INFO L87 Difference]: Start difference. First operand 37 states. Second operand 16 states. [2019-01-31 14:42:46,453 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:46,453 INFO L93 Difference]: Finished difference Result 37 states and 53 transitions. [2019-01-31 14:42:46,453 INFO L276 IsEmpty]: Start isEmpty. Operand 37 states and 53 transitions. [2019-01-31 14:42:46,454 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:42:46,454 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:42:46,454 INFO L74 IsIncluded]: Start isIncluded. First operand 16 states. Second operand 37 states. [2019-01-31 14:42:46,455 INFO L87 Difference]: Start difference. First operand 16 states. Second operand 37 states. [2019-01-31 14:42:46,459 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:46,459 INFO L93 Difference]: Finished difference Result 37 states and 53 transitions. [2019-01-31 14:42:46,459 INFO L276 IsEmpty]: Start isEmpty. Operand 37 states and 53 transitions. [2019-01-31 14:42:46,460 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:42:46,460 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:42:46,460 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:42:46,461 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:42:46,461 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 16 states. [2019-01-31 14:42:46,462 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 32 transitions. [2019-01-31 14:42:46,463 INFO L78 Accepts]: Start accepts. Automaton has 16 states and 32 transitions. Word has length 3 [2019-01-31 14:42:46,463 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:42:46,463 INFO L480 AbstractCegarLoop]: Abstraction has 16 states and 32 transitions. [2019-01-31 14:42:46,463 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-01-31 14:42:46,463 INFO L276 IsEmpty]: Start isEmpty. Operand 16 states and 32 transitions. [2019-01-31 14:42:46,464 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-01-31 14:42:46,464 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:42:46,464 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-01-31 14:42:46,464 INFO L423 AbstractCegarLoop]: === Iteration 3 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:42:46,464 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:42:46,464 INFO L82 PathProgramCache]: Analyzing trace with hash 30434, now seen corresponding path program 1 times [2019-01-31 14:42:46,465 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:42:46,466 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:42:46,466 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:42:46,466 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:42:46,466 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:42:46,480 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:46,576 INFO L273 TraceCheckUtils]: 0: Hoare triple {262#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {264#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:42:46,582 INFO L273 TraceCheckUtils]: 1: Hoare triple {264#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {265#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-31 14:42:46,601 INFO L273 TraceCheckUtils]: 2: Hoare triple {265#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {263#false} is VALID [2019-01-31 14:42:46,602 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:46,602 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:42:46,602 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:42:46,602 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 4 with the following transitions: [2019-01-31 14:42:46,603 INFO L207 CegarAbsIntRunner]: [0], [20], [23] [2019-01-31 14:42:46,604 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:42:46,604 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:42:46,624 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:42:46,624 INFO L272 AbstractInterpreter]: Visited 3 different actions 3 times. Never merged. Never widened. Performed 62 root evaluator evaluations with a maximum evaluation depth of 3. Performed 62 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-31 14:42:46,624 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:42:46,625 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:42:46,625 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:42:46,625 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 3 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 3 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:42:46,634 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:42:46,634 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:42:46,639 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:46,644 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:46,645 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:42:46,683 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 18 treesize of output 21 [2019-01-31 14:42:46,702 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:46,703 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 21 treesize of output 27 [2019-01-31 14:42:46,732 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:46,734 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:46,736 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:42:46,762 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:46,763 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:46,765 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:46,767 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:42:46,802 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:46,803 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:46,804 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:46,806 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:46,808 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:42:46,812 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:42:46,847 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:46,867 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:46,882 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:46,895 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:46,925 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:42:46,926 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 4 variables, input treesize:31, output treesize:38 [2019-01-31 14:42:46,936 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:42:46,936 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_30|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store (store |v_#memory_int_30| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:42:46,936 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:42:47,011 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:47,012 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:47,013 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:47,014 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:47,014 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:47,047 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:47,061 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:47,063 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:47,066 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:47,067 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:47,068 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:47,069 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 72 [2019-01-31 14:42:47,080 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:42:47,157 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:42:47,158 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:48, output treesize:38 [2019-01-31 14:42:47,202 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:42:47,202 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_31|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_31| ULTIMATE.start_main_p5))) (and (= (select |v_#memory_int_31| ULTIMATE.start_main_p2) 0) (= 0 (select |v_#memory_int_31| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_31| ULTIMATE.start_main_p4) 0) (= .cse0 0) (= (store |v_#memory_int_31| ULTIMATE.start_main_p5 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_31| ULTIMATE.start_main_p1) 0))) [2019-01-31 14:42:47,202 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:42:47,254 INFO L273 TraceCheckUtils]: 0: Hoare triple {262#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {269#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-01-31 14:42:47,258 INFO L273 TraceCheckUtils]: 1: Hoare triple {269#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {273#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-01-31 14:42:47,259 INFO L273 TraceCheckUtils]: 2: Hoare triple {273#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} assume !(#memory_int[main_p1] >= 0); {263#false} is VALID [2019-01-31 14:42:47,260 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:47,260 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:42:47,281 INFO L273 TraceCheckUtils]: 2: Hoare triple {277#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {263#false} is VALID [2019-01-31 14:42:47,282 INFO L273 TraceCheckUtils]: 1: Hoare triple {281#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {277#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:42:47,285 INFO L273 TraceCheckUtils]: 0: Hoare triple {262#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {281#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:42:47,286 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:47,306 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-01-31 14:42:47,306 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [2, 2] total 6 [2019-01-31 14:42:47,306 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-31 14:42:47,306 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 3 [2019-01-31 14:42:47,307 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:42:47,307 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-01-31 14:42:47,312 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 3 edges. 3 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:42:47,313 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-01-31 14:42:47,313 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-01-31 14:42:47,313 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=26, Invalid=30, Unknown=0, NotChecked=0, Total=56 [2019-01-31 14:42:47,314 INFO L87 Difference]: Start difference. First operand 16 states and 32 transitions. Second operand 4 states. [2019-01-31 14:42:47,476 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:47,476 INFO L93 Difference]: Finished difference Result 18 states and 39 transitions. [2019-01-31 14:42:47,477 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-31 14:42:47,477 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 3 [2019-01-31 14:42:47,477 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:42:47,477 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-31 14:42:47,478 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 22 transitions. [2019-01-31 14:42:47,478 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-31 14:42:47,479 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 22 transitions. [2019-01-31 14:42:47,479 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 22 transitions. [2019-01-31 14:42:47,542 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 22 edges. 22 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:42:47,544 INFO L225 Difference]: With dead ends: 18 [2019-01-31 14:42:47,544 INFO L226 Difference]: Without dead ends: 17 [2019-01-31 14:42:47,545 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 6 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 6 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=26, Invalid=30, Unknown=0, NotChecked=0, Total=56 [2019-01-31 14:42:47,545 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 17 states. [2019-01-31 14:42:47,599 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 17 to 17. [2019-01-31 14:42:47,599 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:42:47,599 INFO L82 GeneralOperation]: Start isEquivalent. First operand 17 states. Second operand 17 states. [2019-01-31 14:42:47,599 INFO L74 IsIncluded]: Start isIncluded. First operand 17 states. Second operand 17 states. [2019-01-31 14:42:47,600 INFO L87 Difference]: Start difference. First operand 17 states. Second operand 17 states. [2019-01-31 14:42:47,601 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:47,602 INFO L93 Difference]: Finished difference Result 17 states and 38 transitions. [2019-01-31 14:42:47,602 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 38 transitions. [2019-01-31 14:42:47,602 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:42:47,602 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:42:47,602 INFO L74 IsIncluded]: Start isIncluded. First operand 17 states. Second operand 17 states. [2019-01-31 14:42:47,603 INFO L87 Difference]: Start difference. First operand 17 states. Second operand 17 states. [2019-01-31 14:42:47,604 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:47,605 INFO L93 Difference]: Finished difference Result 17 states and 38 transitions. [2019-01-31 14:42:47,605 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 38 transitions. [2019-01-31 14:42:47,605 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:42:47,605 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:42:47,605 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:42:47,606 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:42:47,606 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 17 states. [2019-01-31 14:42:47,607 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 38 transitions. [2019-01-31 14:42:47,608 INFO L78 Accepts]: Start accepts. Automaton has 17 states and 38 transitions. Word has length 3 [2019-01-31 14:42:47,608 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:42:47,608 INFO L480 AbstractCegarLoop]: Abstraction has 17 states and 38 transitions. [2019-01-31 14:42:47,608 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-01-31 14:42:47,608 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 38 transitions. [2019-01-31 14:42:47,608 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-01-31 14:42:47,609 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:42:47,609 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-01-31 14:42:47,609 INFO L423 AbstractCegarLoop]: === Iteration 4 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:42:47,609 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:42:47,609 INFO L82 PathProgramCache]: Analyzing trace with hash 30560, now seen corresponding path program 1 times [2019-01-31 14:42:47,610 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:42:47,610 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:42:47,611 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:42:47,611 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:42:47,611 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:42:47,621 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:47,715 INFO L273 TraceCheckUtils]: 0: Hoare triple {361#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {363#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:42:47,724 INFO L273 TraceCheckUtils]: 1: Hoare triple {363#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {363#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:42:47,731 INFO L273 TraceCheckUtils]: 2: Hoare triple {363#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {362#false} is VALID [2019-01-31 14:42:47,732 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:47,732 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2019-01-31 14:42:47,732 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [1] imperfect sequences [] total 1 [2019-01-31 14:42:47,732 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-31 14:42:47,733 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 3 [2019-01-31 14:42:47,733 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:42:47,733 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states. [2019-01-31 14:42:47,736 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 3 edges. 3 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:42:47,736 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2019-01-31 14:42:47,737 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2019-01-31 14:42:47,737 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-01-31 14:42:47,737 INFO L87 Difference]: Start difference. First operand 17 states and 38 transitions. Second operand 3 states. [2019-01-31 14:42:47,871 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:47,871 INFO L93 Difference]: Finished difference Result 21 states and 39 transitions. [2019-01-31 14:42:47,871 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-31 14:42:47,872 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 3 [2019-01-31 14:42:47,872 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:42:47,872 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-01-31 14:42:47,873 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 27 transitions. [2019-01-31 14:42:47,873 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-01-31 14:42:47,874 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 27 transitions. [2019-01-31 14:42:47,874 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 27 transitions. [2019-01-31 14:42:47,943 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 27 edges. 27 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:42:47,947 INFO L225 Difference]: With dead ends: 21 [2019-01-31 14:42:47,947 INFO L226 Difference]: Without dead ends: 20 [2019-01-31 14:42:47,948 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 1 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 1 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-01-31 14:42:47,948 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 20 states. [2019-01-31 14:42:47,983 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 20 to 17. [2019-01-31 14:42:47,983 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:42:47,983 INFO L82 GeneralOperation]: Start isEquivalent. First operand 20 states. Second operand 17 states. [2019-01-31 14:42:47,983 INFO L74 IsIncluded]: Start isIncluded. First operand 20 states. Second operand 17 states. [2019-01-31 14:42:47,984 INFO L87 Difference]: Start difference. First operand 20 states. Second operand 17 states. [2019-01-31 14:42:47,986 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:47,986 INFO L93 Difference]: Finished difference Result 20 states and 38 transitions. [2019-01-31 14:42:47,986 INFO L276 IsEmpty]: Start isEmpty. Operand 20 states and 38 transitions. [2019-01-31 14:42:47,986 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:42:47,987 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:42:47,987 INFO L74 IsIncluded]: Start isIncluded. First operand 17 states. Second operand 20 states. [2019-01-31 14:42:47,987 INFO L87 Difference]: Start difference. First operand 17 states. Second operand 20 states. [2019-01-31 14:42:47,988 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:47,989 INFO L93 Difference]: Finished difference Result 20 states and 38 transitions. [2019-01-31 14:42:47,989 INFO L276 IsEmpty]: Start isEmpty. Operand 20 states and 38 transitions. [2019-01-31 14:42:47,989 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:42:47,989 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:42:47,989 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:42:47,989 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:42:47,990 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 17 states. [2019-01-31 14:42:47,991 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 37 transitions. [2019-01-31 14:42:47,991 INFO L78 Accepts]: Start accepts. Automaton has 17 states and 37 transitions. Word has length 3 [2019-01-31 14:42:47,991 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:42:47,991 INFO L480 AbstractCegarLoop]: Abstraction has 17 states and 37 transitions. [2019-01-31 14:42:47,991 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2019-01-31 14:42:47,991 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 37 transitions. [2019-01-31 14:42:47,992 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-01-31 14:42:47,992 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:42:47,992 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-01-31 14:42:47,992 INFO L423 AbstractCegarLoop]: === Iteration 5 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:42:47,993 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:42:47,993 INFO L82 PathProgramCache]: Analyzing trace with hash 30124, now seen corresponding path program 1 times [2019-01-31 14:42:47,993 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:42:47,994 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:42:47,994 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:42:47,994 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:42:47,994 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:42:48,003 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:48,113 INFO L273 TraceCheckUtils]: 0: Hoare triple {452#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {454#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:42:48,114 INFO L273 TraceCheckUtils]: 1: Hoare triple {454#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {455#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-31 14:42:48,115 INFO L273 TraceCheckUtils]: 2: Hoare triple {455#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {453#false} is VALID [2019-01-31 14:42:48,115 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:48,116 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:42:48,116 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:42:48,116 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 4 with the following transitions: [2019-01-31 14:42:48,116 INFO L207 CegarAbsIntRunner]: [0], [10], [23] [2019-01-31 14:42:48,119 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:42:48,119 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:42:48,135 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:42:48,135 INFO L272 AbstractInterpreter]: Visited 3 different actions 3 times. Never merged. Never widened. Performed 62 root evaluator evaluations with a maximum evaluation depth of 3. Performed 62 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-31 14:42:48,136 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:42:48,136 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:42:48,136 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:42:48,136 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:42:48,144 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:42:48,145 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:42:48,149 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:48,155 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:48,155 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:42:48,190 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 18 treesize of output 21 [2019-01-31 14:42:48,207 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:48,208 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 21 treesize of output 27 [2019-01-31 14:42:48,233 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:48,235 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:48,237 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:42:48,264 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:48,266 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:48,268 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:48,269 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:42:48,309 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:48,314 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:48,315 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:48,316 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:48,318 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:42:48,321 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:42:48,357 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:48,373 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:48,387 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:48,399 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:48,424 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:42:48,424 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 4 variables, input treesize:31, output treesize:38 [2019-01-31 14:42:48,448 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:42:48,448 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_33|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store (store |v_#memory_int_33| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:42:48,449 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:42:48,545 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:48,546 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:48,547 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:48,549 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:48,550 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:48,551 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:48,553 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:48,554 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:48,556 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:48,557 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:48,559 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:48,561 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 72 [2019-01-31 14:42:48,564 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:42:48,617 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:42:48,618 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:48, output treesize:38 [2019-01-31 14:42:52,644 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:42:52,645 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_34|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_34| ULTIMATE.start_main_p2))) (and (= |#memory_int| (store |v_#memory_int_34| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_34| ULTIMATE.start_main_p1) 0) (= .cse0 0) (= (select |v_#memory_int_34| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_34| ULTIMATE.start_main_p5) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |v_#memory_int_34| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:42:52,645 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:42:52,746 INFO L273 TraceCheckUtils]: 0: Hoare triple {452#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {459#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:42:52,750 INFO L273 TraceCheckUtils]: 1: Hoare triple {459#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {463#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-31 14:42:52,751 INFO L273 TraceCheckUtils]: 2: Hoare triple {463#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {453#false} is VALID [2019-01-31 14:42:52,751 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:52,751 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:42:52,775 INFO L273 TraceCheckUtils]: 2: Hoare triple {467#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {453#false} is VALID [2019-01-31 14:42:52,776 INFO L273 TraceCheckUtils]: 1: Hoare triple {471#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {467#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:42:52,778 INFO L273 TraceCheckUtils]: 0: Hoare triple {452#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {471#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:42:52,779 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:52,797 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:42:52,798 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-01-31 14:42:52,798 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:42:52,798 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-01-31 14:42:52,798 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:42:52,798 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-01-31 14:42:52,809 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 6 edges. 6 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:42:52,809 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-01-31 14:42:52,810 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-01-31 14:42:52,810 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-31 14:42:52,810 INFO L87 Difference]: Start difference. First operand 17 states and 37 transitions. Second operand 6 states. [2019-01-31 14:42:53,496 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:53,496 INFO L93 Difference]: Finished difference Result 39 states and 66 transitions. [2019-01-31 14:42:53,496 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-31 14:42:53,496 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-01-31 14:42:53,497 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:42:53,497 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-31 14:42:53,498 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 54 transitions. [2019-01-31 14:42:53,498 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-31 14:42:53,499 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 54 transitions. [2019-01-31 14:42:53,499 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 54 transitions. [2019-01-31 14:42:53,688 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 54 edges. 54 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:42:53,689 INFO L225 Difference]: With dead ends: 39 [2019-01-31 14:42:53,690 INFO L226 Difference]: Without dead ends: 38 [2019-01-31 14:42:53,690 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 7 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=31, Invalid=41, Unknown=0, NotChecked=0, Total=72 [2019-01-31 14:42:53,690 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 38 states. [2019-01-31 14:42:53,739 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 38 to 18. [2019-01-31 14:42:53,739 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:42:53,739 INFO L82 GeneralOperation]: Start isEquivalent. First operand 38 states. Second operand 18 states. [2019-01-31 14:42:53,740 INFO L74 IsIncluded]: Start isIncluded. First operand 38 states. Second operand 18 states. [2019-01-31 14:42:53,740 INFO L87 Difference]: Start difference. First operand 38 states. Second operand 18 states. [2019-01-31 14:42:53,742 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:53,742 INFO L93 Difference]: Finished difference Result 38 states and 64 transitions. [2019-01-31 14:42:53,742 INFO L276 IsEmpty]: Start isEmpty. Operand 38 states and 64 transitions. [2019-01-31 14:42:53,743 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:42:53,743 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:42:53,743 INFO L74 IsIncluded]: Start isIncluded. First operand 18 states. Second operand 38 states. [2019-01-31 14:42:53,743 INFO L87 Difference]: Start difference. First operand 18 states. Second operand 38 states. [2019-01-31 14:42:53,745 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:42:53,745 INFO L93 Difference]: Finished difference Result 38 states and 64 transitions. [2019-01-31 14:42:53,746 INFO L276 IsEmpty]: Start isEmpty. Operand 38 states and 64 transitions. [2019-01-31 14:42:53,746 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:42:53,746 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:42:53,746 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:42:53,747 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:42:53,747 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 18 states. [2019-01-31 14:42:53,748 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 18 states to 18 states and 43 transitions. [2019-01-31 14:42:53,748 INFO L78 Accepts]: Start accepts. Automaton has 18 states and 43 transitions. Word has length 3 [2019-01-31 14:42:53,748 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:42:53,748 INFO L480 AbstractCegarLoop]: Abstraction has 18 states and 43 transitions. [2019-01-31 14:42:53,748 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-01-31 14:42:53,749 INFO L276 IsEmpty]: Start isEmpty. Operand 18 states and 43 transitions. [2019-01-31 14:42:53,749 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-31 14:42:53,749 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:42:53,749 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-31 14:42:53,749 INFO L423 AbstractCegarLoop]: === Iteration 6 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:42:53,750 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:42:53,750 INFO L82 PathProgramCache]: Analyzing trace with hash 941462, now seen corresponding path program 1 times [2019-01-31 14:42:53,750 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:42:53,751 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:42:53,751 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:42:53,751 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:42:53,751 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:42:53,763 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:53,944 INFO L273 TraceCheckUtils]: 0: Hoare triple {620#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {622#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:42:53,945 INFO L273 TraceCheckUtils]: 1: Hoare triple {622#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {623#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:42:53,946 INFO L273 TraceCheckUtils]: 2: Hoare triple {623#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {624#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-31 14:42:53,947 INFO L273 TraceCheckUtils]: 3: Hoare triple {624#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {621#false} is VALID [2019-01-31 14:42:53,948 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:42:53,948 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:42:53,948 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:42:53,948 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-31 14:42:53,949 INFO L207 CegarAbsIntRunner]: [0], [18], [20], [23] [2019-01-31 14:42:53,950 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:42:53,950 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:42:53,969 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:42:53,969 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 64 root evaluator evaluations with a maximum evaluation depth of 3. Performed 64 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-31 14:42:53,969 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:42:53,970 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:42:53,970 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:42:53,970 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 5 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 5 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:42:53,979 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:42:53,979 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:42:53,983 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:53,987 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:42:53,987 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:42:54,111 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 18 treesize of output 21 [2019-01-31 14:42:54,119 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:54,120 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 21 treesize of output 27 [2019-01-31 14:42:54,132 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:54,133 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:54,135 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:42:54,200 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:54,220 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:54,243 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:54,245 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:42:54,284 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:54,285 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:54,285 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:54,286 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:54,288 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:42:54,291 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:42:54,321 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:54,336 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:54,350 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:54,360 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:42:54,384 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:42:54,385 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 3 variables, input treesize:31, output treesize:38 [2019-01-31 14:42:54,400 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:42:54,400 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_36|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store (store |v_#memory_int_36| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:42:54,400 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:42:54,459 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:54,460 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:54,462 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:54,463 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:54,464 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:54,466 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:54,467 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:54,469 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:54,475 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:54,476 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:54,477 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:54,481 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 66 [2019-01-31 14:42:54,490 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:42:54,561 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:42:54,561 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:48, output treesize:38 [2019-01-31 14:42:57,741 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:42:57,742 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_37|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_37| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_37| ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_37| ULTIMATE.start_main_p3)) (= 0 .cse0) (= 0 (select |v_#memory_int_37| ULTIMATE.start_main_p5)) (= (select |v_#memory_int_37| ULTIMATE.start_main_p1) 0) (= |#memory_int| (store |v_#memory_int_37| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:42:57,742 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:42:58,051 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:58,052 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:58,054 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:58,055 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:58,057 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:58,060 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:58,061 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:58,062 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:58,064 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:58,065 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:58,067 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:58,068 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:58,069 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:42:58,072 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 80 [2019-01-31 14:42:58,075 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:42:58,131 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:42:58,132 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:50, output treesize:40 [2019-01-31 14:43:08,268 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:43:08,269 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_38|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_38| ULTIMATE.start_main_p5))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_38| ULTIMATE.start_main_p4) 1)) (= 0 .cse0) (= (select |v_#memory_int_38| ULTIMATE.start_main_p2) 0) (= 0 (select |v_#memory_int_38| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 (select |v_#memory_int_38| ULTIMATE.start_main_p1)) (= |#memory_int| (store |v_#memory_int_38| ULTIMATE.start_main_p5 (+ .cse0 1))))) [2019-01-31 14:43:08,269 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:43:08,426 INFO L273 TraceCheckUtils]: 0: Hoare triple {620#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {628#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-31 14:43:08,430 INFO L273 TraceCheckUtils]: 1: Hoare triple {628#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {632#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-31 14:43:08,434 INFO L273 TraceCheckUtils]: 2: Hoare triple {632#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {636#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-01-31 14:43:08,435 INFO L273 TraceCheckUtils]: 3: Hoare triple {636#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} assume !(#memory_int[main_p1] >= 0); {621#false} is VALID [2019-01-31 14:43:08,436 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:43:08,436 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:43:08,626 INFO L273 TraceCheckUtils]: 3: Hoare triple {640#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {621#false} is VALID [2019-01-31 14:43:08,627 INFO L273 TraceCheckUtils]: 2: Hoare triple {644#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {640#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:43:08,628 INFO L273 TraceCheckUtils]: 1: Hoare triple {648#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {644#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:43:08,630 INFO L273 TraceCheckUtils]: 0: Hoare triple {620#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {648#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:43:08,630 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:43:08,649 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:43:08,649 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:43:08,649 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:43:08,650 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:43:08,650 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:43:08,650 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:43:08,665 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:43:08,666 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:43:08,666 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:43:08,666 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:43:08,667 INFO L87 Difference]: Start difference. First operand 18 states and 43 transitions. Second operand 8 states. [2019-01-31 14:43:09,820 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:43:09,820 INFO L93 Difference]: Finished difference Result 49 states and 91 transitions. [2019-01-31 14:43:09,820 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-31 14:43:09,820 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:43:09,821 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:43:09,821 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:43:09,821 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 67 transitions. [2019-01-31 14:43:09,822 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:43:09,822 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 67 transitions. [2019-01-31 14:43:09,823 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 67 transitions. [2019-01-31 14:43:10,012 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 67 edges. 67 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:43:10,015 INFO L225 Difference]: With dead ends: 49 [2019-01-31 14:43:10,015 INFO L226 Difference]: Without dead ends: 44 [2019-01-31 14:43:10,015 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:43:10,016 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 44 states. [2019-01-31 14:43:10,061 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 44 to 22. [2019-01-31 14:43:10,061 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:43:10,062 INFO L82 GeneralOperation]: Start isEquivalent. First operand 44 states. Second operand 22 states. [2019-01-31 14:43:10,062 INFO L74 IsIncluded]: Start isIncluded. First operand 44 states. Second operand 22 states. [2019-01-31 14:43:10,062 INFO L87 Difference]: Start difference. First operand 44 states. Second operand 22 states. [2019-01-31 14:43:10,064 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:43:10,064 INFO L93 Difference]: Finished difference Result 44 states and 84 transitions. [2019-01-31 14:43:10,065 INFO L276 IsEmpty]: Start isEmpty. Operand 44 states and 84 transitions. [2019-01-31 14:43:10,065 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:43:10,065 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:43:10,065 INFO L74 IsIncluded]: Start isIncluded. First operand 22 states. Second operand 44 states. [2019-01-31 14:43:10,065 INFO L87 Difference]: Start difference. First operand 22 states. Second operand 44 states. [2019-01-31 14:43:10,067 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:43:10,068 INFO L93 Difference]: Finished difference Result 44 states and 84 transitions. [2019-01-31 14:43:10,068 INFO L276 IsEmpty]: Start isEmpty. Operand 44 states and 84 transitions. [2019-01-31 14:43:10,068 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:43:10,068 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:43:10,069 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:43:10,069 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:43:10,069 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 22 states. [2019-01-31 14:43:10,070 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 22 states to 22 states and 58 transitions. [2019-01-31 14:43:10,070 INFO L78 Accepts]: Start accepts. Automaton has 22 states and 58 transitions. Word has length 4 [2019-01-31 14:43:10,070 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:43:10,071 INFO L480 AbstractCegarLoop]: Abstraction has 22 states and 58 transitions. [2019-01-31 14:43:10,071 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:43:10,071 INFO L276 IsEmpty]: Start isEmpty. Operand 22 states and 58 transitions. [2019-01-31 14:43:10,071 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-31 14:43:10,071 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:43:10,071 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-31 14:43:10,072 INFO L423 AbstractCegarLoop]: === Iteration 7 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:43:10,072 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:43:10,072 INFO L82 PathProgramCache]: Analyzing trace with hash 941028, now seen corresponding path program 1 times [2019-01-31 14:43:10,072 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:43:10,073 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:43:10,073 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:43:10,073 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:43:10,073 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:43:10,081 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:43:10,389 WARN L181 SmtUtils]: Spent 119.00 ms on a formula simplification. DAG size of input: 19 DAG size of output: 13 [2019-01-31 14:43:10,409 INFO L273 TraceCheckUtils]: 0: Hoare triple {830#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {832#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:43:10,411 INFO L273 TraceCheckUtils]: 1: Hoare triple {832#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {833#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-31 14:43:10,412 INFO L273 TraceCheckUtils]: 2: Hoare triple {833#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {834#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:43:10,413 INFO L273 TraceCheckUtils]: 3: Hoare triple {834#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {831#false} is VALID [2019-01-31 14:43:10,413 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:43:10,413 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:43:10,413 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:43:10,414 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-31 14:43:10,414 INFO L207 CegarAbsIntRunner]: [0], [6], [18], [23] [2019-01-31 14:43:10,415 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:43:10,416 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:43:10,434 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:43:10,434 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 64 root evaluator evaluations with a maximum evaluation depth of 3. Performed 64 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-31 14:43:10,434 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:43:10,435 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:43:10,435 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:43:10,435 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 6 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 6 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:43:10,443 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:43:10,444 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:43:10,448 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:43:10,452 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:43:10,455 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:43:10,517 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 18 treesize of output 21 [2019-01-31 14:43:10,525 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,526 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 21 treesize of output 27 [2019-01-31 14:43:10,536 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,537 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,538 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:43:10,553 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,554 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,554 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,556 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:43:10,574 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,575 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,577 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,578 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,580 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:43:10,582 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:43:10,613 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:10,631 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:10,645 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:10,657 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:10,684 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:43:10,685 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 4 variables, input treesize:31, output treesize:38 [2019-01-31 14:43:10,696 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:43:10,696 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_41|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store (store |v_#memory_int_41| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:43:10,696 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:43:10,755 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,757 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,758 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,759 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,761 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,763 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,764 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,765 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,766 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,767 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,767 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:10,769 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 66 [2019-01-31 14:43:10,773 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:43:10,830 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:43:10,830 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:48, output treesize:38 [2019-01-31 14:43:20,869 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:43:20,869 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_42|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_42| ULTIMATE.start_main_p4))) (and (= (select |v_#memory_int_42| ULTIMATE.start_main_p1) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_42| ULTIMATE.start_main_p3) 0) (= (store |v_#memory_int_42| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_42| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_42| ULTIMATE.start_main_p5) 0))) [2019-01-31 14:43:20,869 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:43:21,151 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:21,152 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:21,154 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:21,155 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:21,156 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:21,158 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:21,159 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:21,160 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:21,162 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:21,163 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:21,164 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:21,165 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:21,167 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:21,169 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 88 [2019-01-31 14:43:21,177 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:43:21,233 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:43:21,233 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:50, output treesize:40 [2019-01-31 14:43:21,254 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:43:21,254 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_43|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_43| ULTIMATE.start_main_p1))) (and (= (select |v_#memory_int_43| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (store |v_#memory_int_43| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= (select |v_#memory_int_43| ULTIMATE.start_main_p3) 0) (= (+ (select |v_#memory_int_43| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_43| ULTIMATE.start_main_p5) 0))) [2019-01-31 14:43:21,254 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:43:21,288 INFO L273 TraceCheckUtils]: 0: Hoare triple {830#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {838#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-31 14:43:21,293 INFO L273 TraceCheckUtils]: 1: Hoare triple {838#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {842#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-01-31 14:43:21,301 INFO L273 TraceCheckUtils]: 2: Hoare triple {842#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {846#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 1))} is VALID [2019-01-31 14:43:21,302 INFO L273 TraceCheckUtils]: 3: Hoare triple {846#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 1))} assume !(#memory_int[main_p1] >= 0); {831#false} is VALID [2019-01-31 14:43:21,302 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:43:21,302 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:43:21,344 INFO L273 TraceCheckUtils]: 3: Hoare triple {834#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {831#false} is VALID [2019-01-31 14:43:21,345 INFO L273 TraceCheckUtils]: 2: Hoare triple {853#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {834#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:43:21,346 INFO L273 TraceCheckUtils]: 1: Hoare triple {857#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {853#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} is VALID [2019-01-31 14:43:21,349 INFO L273 TraceCheckUtils]: 0: Hoare triple {830#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {857#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1))} is VALID [2019-01-31 14:43:21,349 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:43:21,368 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:43:21,369 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 8 [2019-01-31 14:43:21,369 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:43:21,369 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:43:21,369 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:43:21,369 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:43:21,392 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:43:21,392 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:43:21,392 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:43:21,392 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=39, Invalid=51, Unknown=0, NotChecked=0, Total=90 [2019-01-31 14:43:21,392 INFO L87 Difference]: Start difference. First operand 22 states and 58 transitions. Second operand 8 states. [2019-01-31 14:43:22,509 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:43:22,510 INFO L93 Difference]: Finished difference Result 47 states and 98 transitions. [2019-01-31 14:43:22,510 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-31 14:43:22,510 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:43:22,510 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:43:22,511 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:43:22,512 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 68 transitions. [2019-01-31 14:43:22,512 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:43:22,513 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 68 transitions. [2019-01-31 14:43:22,513 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 68 transitions. [2019-01-31 14:43:22,778 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 68 edges. 68 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:43:22,779 INFO L225 Difference]: With dead ends: 47 [2019-01-31 14:43:22,780 INFO L226 Difference]: Without dead ends: 46 [2019-01-31 14:43:22,780 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 10 GetRequests, 1 SyntacticMatches, 0 SemanticMatches, 9 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 24 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=47, Invalid=63, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:43:22,780 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 46 states. [2019-01-31 14:43:22,915 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 46 to 24. [2019-01-31 14:43:22,915 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:43:22,916 INFO L82 GeneralOperation]: Start isEquivalent. First operand 46 states. Second operand 24 states. [2019-01-31 14:43:22,916 INFO L74 IsIncluded]: Start isIncluded. First operand 46 states. Second operand 24 states. [2019-01-31 14:43:22,916 INFO L87 Difference]: Start difference. First operand 46 states. Second operand 24 states. [2019-01-31 14:43:22,919 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:43:22,919 INFO L93 Difference]: Finished difference Result 46 states and 96 transitions. [2019-01-31 14:43:22,919 INFO L276 IsEmpty]: Start isEmpty. Operand 46 states and 96 transitions. [2019-01-31 14:43:22,920 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:43:22,920 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:43:22,920 INFO L74 IsIncluded]: Start isIncluded. First operand 24 states. Second operand 46 states. [2019-01-31 14:43:22,920 INFO L87 Difference]: Start difference. First operand 24 states. Second operand 46 states. [2019-01-31 14:43:22,922 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:43:22,923 INFO L93 Difference]: Finished difference Result 46 states and 96 transitions. [2019-01-31 14:43:22,923 INFO L276 IsEmpty]: Start isEmpty. Operand 46 states and 96 transitions. [2019-01-31 14:43:22,923 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:43:22,924 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:43:22,924 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:43:22,924 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:43:22,924 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 24 states. [2019-01-31 14:43:22,925 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 24 states to 24 states and 70 transitions. [2019-01-31 14:43:22,926 INFO L78 Accepts]: Start accepts. Automaton has 24 states and 70 transitions. Word has length 4 [2019-01-31 14:43:22,926 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:43:22,926 INFO L480 AbstractCegarLoop]: Abstraction has 24 states and 70 transitions. [2019-01-31 14:43:22,926 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:43:22,926 INFO L276 IsEmpty]: Start isEmpty. Operand 24 states and 70 transitions. [2019-01-31 14:43:22,927 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-31 14:43:22,927 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:43:22,927 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-31 14:43:22,927 INFO L423 AbstractCegarLoop]: === Iteration 8 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:43:22,927 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:43:22,928 INFO L82 PathProgramCache]: Analyzing trace with hash 941588, now seen corresponding path program 1 times [2019-01-31 14:43:22,928 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:43:22,928 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:43:22,929 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:43:22,929 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:43:22,929 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:43:22,937 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:43:23,028 INFO L273 TraceCheckUtils]: 0: Hoare triple {1045#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {1047#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:43:23,030 INFO L273 TraceCheckUtils]: 1: Hoare triple {1047#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1048#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:43:23,030 INFO L273 TraceCheckUtils]: 2: Hoare triple {1048#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {1048#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:43:23,031 INFO L273 TraceCheckUtils]: 3: Hoare triple {1048#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {1046#false} is VALID [2019-01-31 14:43:23,032 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:43:23,032 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:43:23,032 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:43:23,032 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-31 14:43:23,032 INFO L207 CegarAbsIntRunner]: [0], [18], [24], [25] [2019-01-31 14:43:23,034 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:43:23,034 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:43:23,059 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:43:23,059 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 64 root evaluator evaluations with a maximum evaluation depth of 3. Performed 64 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-31 14:43:23,059 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:43:23,060 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:43:23,060 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:43:23,060 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 7 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 7 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:43:23,068 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:43:23,068 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:43:23,073 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:43:23,077 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:43:23,077 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:43:23,115 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 18 treesize of output 21 [2019-01-31 14:43:23,142 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 23 [2019-01-31 14:43:23,162 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:23,163 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 23 treesize of output 29 [2019-01-31 14:43:23,194 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:23,196 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:23,197 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 39 [2019-01-31 14:43:23,239 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:23,251 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:23,253 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:23,254 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 50 [2019-01-31 14:43:23,257 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:43:23,290 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:23,315 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:23,329 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:23,343 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:23,372 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:43:23,373 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 4 variables, input treesize:28, output treesize:35 [2019-01-31 14:43:23,380 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:43:23,380 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_46|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store (store |v_#memory_int_46| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:43:23,381 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p5, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:43:23,454 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:23,455 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:23,457 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:23,458 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:23,459 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:23,461 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:23,462 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:23,464 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-31 14:43:23,467 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:43:23,496 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:43:23,496 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-31 14:43:33,506 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:43:33,507 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_47|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_47| ULTIMATE.start_main_p4))) (and (= (select |v_#memory_int_47| ULTIMATE.start_main_p3) 0) (= .cse0 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_47| ULTIMATE.start_main_p5) 0) (= (select |v_#memory_int_47| ULTIMATE.start_main_p2) 0) (= |#memory_int| (store |v_#memory_int_47| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-31 14:43:33,507 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:43:33,605 INFO L273 TraceCheckUtils]: 0: Hoare triple {1045#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {1052#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-31 14:43:33,608 INFO L273 TraceCheckUtils]: 1: Hoare triple {1052#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1056#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:43:33,609 INFO L273 TraceCheckUtils]: 2: Hoare triple {1056#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume #memory_int[main_p1] >= 0; {1056#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:43:33,618 INFO L273 TraceCheckUtils]: 3: Hoare triple {1056#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume !(#memory_int[main_p2] <= 0); {1046#false} is VALID [2019-01-31 14:43:33,618 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:43:33,619 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:43:33,722 INFO L273 TraceCheckUtils]: 3: Hoare triple {1063#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {1046#false} is VALID [2019-01-31 14:43:33,723 INFO L273 TraceCheckUtils]: 2: Hoare triple {1063#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {1063#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:43:33,724 INFO L273 TraceCheckUtils]: 1: Hoare triple {1070#(<= (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1063#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:43:33,727 INFO L273 TraceCheckUtils]: 0: Hoare triple {1045#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {1070#(<= (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:43:33,727 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:43:33,748 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-01-31 14:43:33,748 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [2, 2] total 6 [2019-01-31 14:43:33,748 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-31 14:43:33,749 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 4 [2019-01-31 14:43:33,749 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:43:33,749 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-01-31 14:43:33,756 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 4 edges. 4 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:43:33,756 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-01-31 14:43:33,756 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-01-31 14:43:33,756 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=26, Invalid=30, Unknown=0, NotChecked=0, Total=56 [2019-01-31 14:43:33,756 INFO L87 Difference]: Start difference. First operand 24 states and 70 transitions. Second operand 4 states. [2019-01-31 14:43:34,127 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:43:34,127 INFO L93 Difference]: Finished difference Result 28 states and 79 transitions. [2019-01-31 14:43:34,127 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-31 14:43:34,128 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 4 [2019-01-31 14:43:34,128 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:43:34,128 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-31 14:43:34,129 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 24 transitions. [2019-01-31 14:43:34,129 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-31 14:43:34,130 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 24 transitions. [2019-01-31 14:43:34,130 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 24 transitions. [2019-01-31 14:43:34,157 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 24 edges. 24 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:43:34,159 INFO L225 Difference]: With dead ends: 28 [2019-01-31 14:43:34,159 INFO L226 Difference]: Without dead ends: 27 [2019-01-31 14:43:34,159 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 8 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 6 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=26, Invalid=30, Unknown=0, NotChecked=0, Total=56 [2019-01-31 14:43:34,160 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 27 states. [2019-01-31 14:43:34,248 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 27 to 26. [2019-01-31 14:43:34,249 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:43:34,249 INFO L82 GeneralOperation]: Start isEquivalent. First operand 27 states. Second operand 26 states. [2019-01-31 14:43:34,249 INFO L74 IsIncluded]: Start isIncluded. First operand 27 states. Second operand 26 states. [2019-01-31 14:43:34,249 INFO L87 Difference]: Start difference. First operand 27 states. Second operand 26 states. [2019-01-31 14:43:34,253 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:43:34,253 INFO L93 Difference]: Finished difference Result 27 states and 77 transitions. [2019-01-31 14:43:34,253 INFO L276 IsEmpty]: Start isEmpty. Operand 27 states and 77 transitions. [2019-01-31 14:43:34,254 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:43:34,254 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:43:34,254 INFO L74 IsIncluded]: Start isIncluded. First operand 26 states. Second operand 27 states. [2019-01-31 14:43:34,254 INFO L87 Difference]: Start difference. First operand 26 states. Second operand 27 states. [2019-01-31 14:43:34,256 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:43:34,257 INFO L93 Difference]: Finished difference Result 27 states and 77 transitions. [2019-01-31 14:43:34,257 INFO L276 IsEmpty]: Start isEmpty. Operand 27 states and 77 transitions. [2019-01-31 14:43:34,257 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:43:34,257 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:43:34,257 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:43:34,258 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:43:34,258 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 26 states. [2019-01-31 14:43:34,259 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 26 states to 26 states and 77 transitions. [2019-01-31 14:43:34,260 INFO L78 Accepts]: Start accepts. Automaton has 26 states and 77 transitions. Word has length 4 [2019-01-31 14:43:34,260 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:43:34,260 INFO L480 AbstractCegarLoop]: Abstraction has 26 states and 77 transitions. [2019-01-31 14:43:34,260 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-01-31 14:43:34,260 INFO L276 IsEmpty]: Start isEmpty. Operand 26 states and 77 transitions. [2019-01-31 14:43:34,261 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-31 14:43:34,261 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:43:34,261 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-31 14:43:34,261 INFO L423 AbstractCegarLoop]: === Iteration 9 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:43:34,261 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:43:34,262 INFO L82 PathProgramCache]: Analyzing trace with hash 941152, now seen corresponding path program 1 times [2019-01-31 14:43:34,262 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:43:34,262 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:43:34,263 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:43:34,263 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:43:34,263 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:43:34,273 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:43:34,423 INFO L273 TraceCheckUtils]: 0: Hoare triple {1201#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {1203#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:43:34,424 INFO L273 TraceCheckUtils]: 1: Hoare triple {1203#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1204#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:43:34,425 INFO L273 TraceCheckUtils]: 2: Hoare triple {1204#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {1205#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-31 14:43:34,426 INFO L273 TraceCheckUtils]: 3: Hoare triple {1205#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {1202#false} is VALID [2019-01-31 14:43:34,426 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:43:34,427 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:43:34,427 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:43:34,427 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-31 14:43:34,427 INFO L207 CegarAbsIntRunner]: [0], [10], [18], [23] [2019-01-31 14:43:34,429 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:43:34,429 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:43:34,442 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:43:34,442 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 64 root evaluator evaluations with a maximum evaluation depth of 3. Performed 64 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-31 14:43:34,443 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:43:34,443 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:43:34,443 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:43:34,443 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 8 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 8 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:43:34,452 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:43:34,453 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:43:34,462 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:43:34,466 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:43:34,467 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:43:34,499 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 18 treesize of output 21 [2019-01-31 14:43:34,519 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:34,520 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 21 treesize of output 27 [2019-01-31 14:43:34,530 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:34,532 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:34,533 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:43:34,546 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:34,548 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:34,549 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:34,551 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:43:34,568 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:34,570 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:34,572 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:34,573 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:34,575 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:43:34,581 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:43:34,609 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:34,625 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:34,638 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:34,649 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:34,670 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:43:34,670 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 3 variables, input treesize:31, output treesize:38 [2019-01-31 14:43:34,677 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:43:34,678 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_49|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store (store |v_#memory_int_49| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:43:34,678 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:43:34,735 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:34,736 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:34,738 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:34,739 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:34,741 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:34,742 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:34,744 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:34,745 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:34,747 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:34,748 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:34,750 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:34,751 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 66 [2019-01-31 14:43:34,754 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:43:34,805 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:43:34,805 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:48, output treesize:38 [2019-01-31 14:43:34,842 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:43:34,843 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_50|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_50| ULTIMATE.start_main_p4))) (and (= 0 (select |v_#memory_int_50| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_50| ULTIMATE.start_main_p5)) (= 0 (select |v_#memory_int_50| ULTIMATE.start_main_p2)) (= |#memory_int| (store |v_#memory_int_50| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= 0 (select |v_#memory_int_50| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 .cse0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:43:34,843 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:43:35,045 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:35,046 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:35,048 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:35,049 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:35,050 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:35,052 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:35,053 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:35,055 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:35,056 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:35,057 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:35,059 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:35,059 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:43:35,061 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 38 treesize of output 81 [2019-01-31 14:43:35,064 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:43:35,130 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:43:35,131 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:50, output treesize:38 [2019-01-31 14:43:35,197 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:43:35,198 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_51|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_51| ULTIMATE.start_main_p2))) (and (= (select |v_#memory_int_51| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (select |v_#memory_int_51| ULTIMATE.start_main_p5) 0) (= 0 (+ (select |v_#memory_int_51| ULTIMATE.start_main_p4) 1)) (= (store |v_#memory_int_51| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_51| ULTIMATE.start_main_p1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:43:35,198 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:43:35,265 INFO L273 TraceCheckUtils]: 0: Hoare triple {1201#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {1209#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:43:35,269 INFO L273 TraceCheckUtils]: 1: Hoare triple {1209#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1213#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:43:35,280 INFO L273 TraceCheckUtils]: 2: Hoare triple {1213#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {1217#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-31 14:43:35,281 INFO L273 TraceCheckUtils]: 3: Hoare triple {1217#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {1202#false} is VALID [2019-01-31 14:43:35,281 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:43:35,281 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:43:35,324 INFO L273 TraceCheckUtils]: 3: Hoare triple {1221#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1202#false} is VALID [2019-01-31 14:43:35,326 INFO L273 TraceCheckUtils]: 2: Hoare triple {1225#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {1221#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:43:35,327 INFO L273 TraceCheckUtils]: 1: Hoare triple {1229#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1225#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:43:35,330 INFO L273 TraceCheckUtils]: 0: Hoare triple {1201#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {1229#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:43:35,330 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:43:35,351 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:43:35,352 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:43:35,352 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:43:35,352 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:43:35,352 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:43:35,352 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:43:35,375 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:43:35,375 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:43:35,376 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:43:35,376 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=43, Invalid=67, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:43:35,376 INFO L87 Difference]: Start difference. First operand 26 states and 77 transitions. Second operand 8 states. [2019-01-31 14:43:36,860 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:43:36,860 INFO L93 Difference]: Finished difference Result 44 states and 95 transitions. [2019-01-31 14:43:36,860 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-31 14:43:36,861 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:43:36,861 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:43:36,861 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:43:36,862 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 59 transitions. [2019-01-31 14:43:36,862 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:43:36,863 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 59 transitions. [2019-01-31 14:43:36,863 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 59 transitions. [2019-01-31 14:43:37,025 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 59 edges. 59 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:43:37,026 INFO L225 Difference]: With dead ends: 44 [2019-01-31 14:43:37,026 INFO L226 Difference]: Without dead ends: 43 [2019-01-31 14:43:37,027 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=61, Invalid=95, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:43:37,027 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 43 states. [2019-01-31 14:43:37,117 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 43 to 25. [2019-01-31 14:43:37,117 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:43:37,117 INFO L82 GeneralOperation]: Start isEquivalent. First operand 43 states. Second operand 25 states. [2019-01-31 14:43:37,117 INFO L74 IsIncluded]: Start isIncluded. First operand 43 states. Second operand 25 states. [2019-01-31 14:43:37,118 INFO L87 Difference]: Start difference. First operand 43 states. Second operand 25 states. [2019-01-31 14:43:37,120 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:43:37,121 INFO L93 Difference]: Finished difference Result 43 states and 93 transitions. [2019-01-31 14:43:37,121 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 93 transitions. [2019-01-31 14:43:37,121 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:43:37,121 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:43:37,122 INFO L74 IsIncluded]: Start isIncluded. First operand 25 states. Second operand 43 states. [2019-01-31 14:43:37,122 INFO L87 Difference]: Start difference. First operand 25 states. Second operand 43 states. [2019-01-31 14:43:37,124 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:43:37,124 INFO L93 Difference]: Finished difference Result 43 states and 93 transitions. [2019-01-31 14:43:37,124 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 93 transitions. [2019-01-31 14:43:37,124 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:43:37,124 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:43:37,125 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:43:37,125 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:43:37,125 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 25 states. [2019-01-31 14:43:37,126 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 25 states to 25 states and 70 transitions. [2019-01-31 14:43:37,126 INFO L78 Accepts]: Start accepts. Automaton has 25 states and 70 transitions. Word has length 4 [2019-01-31 14:43:37,127 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:43:37,127 INFO L480 AbstractCegarLoop]: Abstraction has 25 states and 70 transitions. [2019-01-31 14:43:37,127 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:43:37,127 INFO L276 IsEmpty]: Start isEmpty. Operand 25 states and 70 transitions. [2019-01-31 14:43:37,127 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-31 14:43:37,127 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:43:37,127 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-31 14:43:37,128 INFO L423 AbstractCegarLoop]: === Iteration 10 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:43:37,128 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:43:37,128 INFO L82 PathProgramCache]: Analyzing trace with hash 943510, now seen corresponding path program 1 times [2019-01-31 14:43:37,128 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:43:37,129 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:43:37,129 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:43:37,129 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:43:37,130 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:43:37,136 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:43:37,281 INFO L273 TraceCheckUtils]: 0: Hoare triple {1411#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {1413#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:43:37,282 INFO L273 TraceCheckUtils]: 1: Hoare triple {1413#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {1414#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:43:37,283 INFO L273 TraceCheckUtils]: 2: Hoare triple {1414#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {1414#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:43:37,284 INFO L273 TraceCheckUtils]: 3: Hoare triple {1414#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {1412#false} is VALID [2019-01-31 14:43:37,284 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:43:37,285 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:43:37,285 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:43:37,285 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-31 14:43:37,286 INFO L207 CegarAbsIntRunner]: [0], [20], [24], [25] [2019-01-31 14:43:37,289 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:43:37,289 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:43:37,305 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:43:37,305 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 64 root evaluator evaluations with a maximum evaluation depth of 3. Performed 64 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-31 14:43:37,306 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:43:37,306 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:43:37,306 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:43:37,306 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 9 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 9 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:43:37,316 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:43:37,316 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:43:37,321 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:43:37,325 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:43:37,325 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:43:37,341 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 18 treesize of output 21 [2019-01-31 14:43:37,350 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 23 [2019-01-31 14:43:37,373 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:37,374 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 23 treesize of output 29 [2019-01-31 14:43:37,418 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:37,420 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:37,422 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 39 [2019-01-31 14:43:37,441 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:37,446 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:37,447 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:37,449 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 50 [2019-01-31 14:43:37,452 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:43:37,472 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:37,486 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:37,498 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:37,513 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:37,535 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:43:37,536 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 4 variables, input treesize:28, output treesize:35 [2019-01-31 14:43:37,550 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:43:37,551 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_54|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store (store |v_#memory_int_54| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:43:37,551 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:43:37,649 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:37,650 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:37,651 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:37,653 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:37,654 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:37,655 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:37,657 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:37,658 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-31 14:43:37,669 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:43:37,703 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:43:37,704 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-31 14:43:47,714 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:43:47,714 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_55|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_55| ULTIMATE.start_main_p5))) (and (= (select |v_#memory_int_55| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (select |v_#memory_int_55| ULTIMATE.start_main_p3) 0) (= 0 (select |v_#memory_int_55| ULTIMATE.start_main_p4)) (= (store |v_#memory_int_55| ULTIMATE.start_main_p5 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-31 14:43:47,714 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:43:47,799 INFO L273 TraceCheckUtils]: 0: Hoare triple {1411#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {1418#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:43:47,802 INFO L273 TraceCheckUtils]: 1: Hoare triple {1418#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {1422#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-31 14:43:47,803 INFO L273 TraceCheckUtils]: 2: Hoare triple {1422#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p1] >= 0; {1422#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-31 14:43:47,804 INFO L273 TraceCheckUtils]: 3: Hoare triple {1422#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume !(#memory_int[main_p2] <= 0); {1412#false} is VALID [2019-01-31 14:43:47,805 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:43:47,805 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:43:47,834 INFO L273 TraceCheckUtils]: 3: Hoare triple {1429#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {1412#false} is VALID [2019-01-31 14:43:47,835 INFO L273 TraceCheckUtils]: 2: Hoare triple {1429#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {1429#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:43:47,836 INFO L273 TraceCheckUtils]: 1: Hoare triple {1436#(<= (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {1429#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:43:47,838 INFO L273 TraceCheckUtils]: 0: Hoare triple {1411#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {1436#(<= (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:43:47,838 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:43:47,859 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:43:47,860 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-01-31 14:43:47,860 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:43:47,860 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-01-31 14:43:47,860 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:43:47,860 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-01-31 14:43:47,899 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:43:47,899 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-01-31 14:43:47,900 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-01-31 14:43:47,900 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-31 14:43:47,900 INFO L87 Difference]: Start difference. First operand 25 states and 70 transitions. Second operand 6 states. [2019-01-31 14:43:48,450 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:43:48,451 INFO L93 Difference]: Finished difference Result 43 states and 96 transitions. [2019-01-31 14:43:48,451 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-31 14:43:48,451 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-01-31 14:43:48,451 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:43:48,451 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-31 14:43:48,452 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 49 transitions. [2019-01-31 14:43:48,452 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-31 14:43:48,453 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 49 transitions. [2019-01-31 14:43:48,453 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 49 transitions. [2019-01-31 14:43:48,552 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 49 edges. 49 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:43:48,553 INFO L225 Difference]: With dead ends: 43 [2019-01-31 14:43:48,553 INFO L226 Difference]: Without dead ends: 42 [2019-01-31 14:43:48,554 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 9 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=31, Invalid=41, Unknown=0, NotChecked=0, Total=72 [2019-01-31 14:43:48,554 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 42 states. [2019-01-31 14:43:48,749 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 42 to 26. [2019-01-31 14:43:48,749 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:43:48,749 INFO L82 GeneralOperation]: Start isEquivalent. First operand 42 states. Second operand 26 states. [2019-01-31 14:43:48,749 INFO L74 IsIncluded]: Start isIncluded. First operand 42 states. Second operand 26 states. [2019-01-31 14:43:48,749 INFO L87 Difference]: Start difference. First operand 42 states. Second operand 26 states. [2019-01-31 14:43:48,750 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:43:48,751 INFO L93 Difference]: Finished difference Result 42 states and 94 transitions. [2019-01-31 14:43:48,751 INFO L276 IsEmpty]: Start isEmpty. Operand 42 states and 94 transitions. [2019-01-31 14:43:48,751 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:43:48,751 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:43:48,751 INFO L74 IsIncluded]: Start isIncluded. First operand 26 states. Second operand 42 states. [2019-01-31 14:43:48,751 INFO L87 Difference]: Start difference. First operand 26 states. Second operand 42 states. [2019-01-31 14:43:48,752 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:43:48,753 INFO L93 Difference]: Finished difference Result 42 states and 94 transitions. [2019-01-31 14:43:48,753 INFO L276 IsEmpty]: Start isEmpty. Operand 42 states and 94 transitions. [2019-01-31 14:43:48,754 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:43:48,754 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:43:48,754 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:43:48,754 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:43:48,754 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 26 states. [2019-01-31 14:43:48,755 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 26 states to 26 states and 76 transitions. [2019-01-31 14:43:48,756 INFO L78 Accepts]: Start accepts. Automaton has 26 states and 76 transitions. Word has length 4 [2019-01-31 14:43:48,756 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:43:48,756 INFO L480 AbstractCegarLoop]: Abstraction has 26 states and 76 transitions. [2019-01-31 14:43:48,756 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-01-31 14:43:48,756 INFO L276 IsEmpty]: Start isEmpty. Operand 26 states and 76 transitions. [2019-01-31 14:43:48,757 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-31 14:43:48,757 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:43:48,757 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-31 14:43:48,757 INFO L423 AbstractCegarLoop]: === Iteration 11 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:43:48,757 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:43:48,758 INFO L82 PathProgramCache]: Analyzing trace with hash 943074, now seen corresponding path program 1 times [2019-01-31 14:43:48,758 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:43:48,759 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:43:48,759 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:43:48,759 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:43:48,759 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:43:48,768 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:43:48,959 INFO L273 TraceCheckUtils]: 0: Hoare triple {1615#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {1617#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:43:48,960 INFO L273 TraceCheckUtils]: 1: Hoare triple {1617#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {1618#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:43:48,961 INFO L273 TraceCheckUtils]: 2: Hoare triple {1618#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {1619#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-31 14:43:48,962 INFO L273 TraceCheckUtils]: 3: Hoare triple {1619#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {1616#false} is VALID [2019-01-31 14:43:48,963 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:43:48,963 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:43:48,964 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:43:48,964 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-31 14:43:48,964 INFO L207 CegarAbsIntRunner]: [0], [10], [20], [23] [2019-01-31 14:43:48,965 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:43:48,965 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:43:48,988 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:43:48,988 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 64 root evaluator evaluations with a maximum evaluation depth of 3. Performed 64 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-31 14:43:48,989 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:43:48,989 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:43:48,989 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:43:48,989 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 10 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 10 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:43:49,005 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:43:49,005 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:43:49,010 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:43:49,013 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:43:49,014 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:43:49,049 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 18 treesize of output 21 [2019-01-31 14:43:49,056 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:49,057 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 21 treesize of output 27 [2019-01-31 14:43:49,071 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:49,075 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:49,076 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:43:49,126 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:49,127 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:49,129 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:49,130 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:43:49,152 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:49,153 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:49,155 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:49,156 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:49,158 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:43:49,172 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:43:49,202 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:49,220 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:49,234 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:49,247 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:43:49,273 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:43:49,273 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 3 variables, input treesize:31, output treesize:38 [2019-01-31 14:43:49,281 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:43:49,282 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_57|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store (store |v_#memory_int_57| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:43:49,282 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:43:49,331 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:49,333 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:49,334 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:49,335 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:49,337 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:49,338 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:49,340 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:49,341 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:49,342 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:49,344 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:49,345 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:49,347 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 72 [2019-01-31 14:43:49,350 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:43:49,400 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:43:49,400 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:48, output treesize:38 [2019-01-31 14:43:58,594 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:43:58,595 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_58|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_58| ULTIMATE.start_main_p5))) (and (= (select |v_#memory_int_58| ULTIMATE.start_main_p3) 0) (= 0 (select |v_#memory_int_58| ULTIMATE.start_main_p4)) (= (store |v_#memory_int_58| ULTIMATE.start_main_p5 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_58| ULTIMATE.start_main_p1) 0) (= .cse0 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |v_#memory_int_58| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:43:58,595 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:43:58,672 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:58,674 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:58,675 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:58,676 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:58,678 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:58,679 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:58,680 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:58,682 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:58,683 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:58,684 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:58,686 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:58,687 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:58,688 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:43:58,690 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 86 [2019-01-31 14:43:58,694 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:43:58,751 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:43:58,751 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:48, output treesize:38 [2019-01-31 14:43:58,862 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:43:58,862 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_59|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_59| ULTIMATE.start_main_p2))) (and (= 1 (select |v_#memory_int_59| ULTIMATE.start_main_p5)) (= 0 (select |v_#memory_int_59| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_59| ULTIMATE.start_main_p1)) (= (store |v_#memory_int_59| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= 0 .cse0) (= 0 (select |v_#memory_int_59| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:43:58,862 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:43:58,920 INFO L273 TraceCheckUtils]: 0: Hoare triple {1615#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {1623#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:43:58,923 INFO L273 TraceCheckUtils]: 1: Hoare triple {1623#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {1627#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:43:58,927 INFO L273 TraceCheckUtils]: 2: Hoare triple {1627#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {1631#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-31 14:43:58,928 INFO L273 TraceCheckUtils]: 3: Hoare triple {1631#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {1616#false} is VALID [2019-01-31 14:43:58,929 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:43:58,929 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:43:58,988 INFO L273 TraceCheckUtils]: 3: Hoare triple {1635#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1616#false} is VALID [2019-01-31 14:43:58,989 INFO L273 TraceCheckUtils]: 2: Hoare triple {1639#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {1635#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:43:58,991 INFO L273 TraceCheckUtils]: 1: Hoare triple {1643#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {1639#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:43:58,993 INFO L273 TraceCheckUtils]: 0: Hoare triple {1615#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {1643#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:43:58,994 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:43:59,014 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:43:59,015 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:43:59,015 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:43:59,015 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:43:59,015 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:43:59,015 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:43:59,033 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:43:59,033 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:43:59,033 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:43:59,034 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:43:59,034 INFO L87 Difference]: Start difference. First operand 26 states and 76 transitions. Second operand 8 states. [2019-01-31 14:44:00,422 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:00,423 INFO L93 Difference]: Finished difference Result 56 states and 123 transitions. [2019-01-31 14:44:00,423 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-31 14:44:00,423 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:44:00,423 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:44:00,423 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:44:00,424 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 63 transitions. [2019-01-31 14:44:00,424 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:44:00,424 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 63 transitions. [2019-01-31 14:44:00,425 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 63 transitions. [2019-01-31 14:44:00,593 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 63 edges. 63 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:44:00,594 INFO L225 Difference]: With dead ends: 56 [2019-01-31 14:44:00,594 INFO L226 Difference]: Without dead ends: 55 [2019-01-31 14:44:00,595 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:44:00,595 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 55 states. [2019-01-31 14:44:00,730 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 55 to 28. [2019-01-31 14:44:00,730 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:44:00,731 INFO L82 GeneralOperation]: Start isEquivalent. First operand 55 states. Second operand 28 states. [2019-01-31 14:44:00,731 INFO L74 IsIncluded]: Start isIncluded. First operand 55 states. Second operand 28 states. [2019-01-31 14:44:00,731 INFO L87 Difference]: Start difference. First operand 55 states. Second operand 28 states. [2019-01-31 14:44:00,733 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:00,733 INFO L93 Difference]: Finished difference Result 55 states and 121 transitions. [2019-01-31 14:44:00,734 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 121 transitions. [2019-01-31 14:44:00,734 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:00,734 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:00,734 INFO L74 IsIncluded]: Start isIncluded. First operand 28 states. Second operand 55 states. [2019-01-31 14:44:00,734 INFO L87 Difference]: Start difference. First operand 28 states. Second operand 55 states. [2019-01-31 14:44:00,736 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:00,736 INFO L93 Difference]: Finished difference Result 55 states and 121 transitions. [2019-01-31 14:44:00,736 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 121 transitions. [2019-01-31 14:44:00,737 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:00,737 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:00,737 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:44:00,737 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:44:00,737 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 28 states. [2019-01-31 14:44:00,738 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 28 states to 28 states and 88 transitions. [2019-01-31 14:44:00,738 INFO L78 Accepts]: Start accepts. Automaton has 28 states and 88 transitions. Word has length 4 [2019-01-31 14:44:00,739 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:44:00,739 INFO L480 AbstractCegarLoop]: Abstraction has 28 states and 88 transitions. [2019-01-31 14:44:00,739 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:44:00,739 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 88 transitions. [2019-01-31 14:44:00,739 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-31 14:44:00,739 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:44:00,739 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-31 14:44:00,740 INFO L423 AbstractCegarLoop]: === Iteration 12 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:44:00,740 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:00,740 INFO L82 PathProgramCache]: Analyzing trace with hash 929868, now seen corresponding path program 2 times [2019-01-31 14:44:00,740 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:44:00,741 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:00,741 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:00,741 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:00,742 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:44:00,747 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:00,915 INFO L273 TraceCheckUtils]: 0: Hoare triple {1870#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {1872#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:44:00,916 INFO L273 TraceCheckUtils]: 1: Hoare triple {1872#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1873#(and (<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:44:00,918 INFO L273 TraceCheckUtils]: 2: Hoare triple {1873#(and (<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1874#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:44:00,923 INFO L273 TraceCheckUtils]: 3: Hoare triple {1874#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1871#false} is VALID [2019-01-31 14:44:00,923 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:00,924 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:00,924 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:44:00,924 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-31 14:44:00,924 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-31 14:44:00,924 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:00,924 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 11 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 11 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:44:00,933 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-31 14:44:00,933 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-31 14:44:00,941 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 2 check-sat command(s) [2019-01-31 14:44:00,942 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-31 14:44:00,947 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:00,947 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:44:00,964 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 18 treesize of output 21 [2019-01-31 14:44:00,974 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:00,975 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 21 treesize of output 27 [2019-01-31 14:44:00,991 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:00,992 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:00,994 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:44:01,008 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,009 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,011 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,012 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:44:01,035 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,036 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,038 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,040 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,041 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:44:01,047 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:01,079 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:01,097 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:01,112 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:01,125 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:01,149 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:01,149 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 4 variables, input treesize:31, output treesize:38 [2019-01-31 14:44:01,161 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:01,161 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_62|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store (store |v_#memory_int_62| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:44:01,161 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:44:01,239 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,243 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,244 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,245 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,246 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,247 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,248 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,249 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,250 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,251 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,253 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,254 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 72 [2019-01-31 14:44:01,271 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:01,325 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:01,325 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:48, output treesize:38 [2019-01-31 14:44:01,333 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:01,333 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_63|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_63| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_63| ULTIMATE.start_main_p3) 0) (= (store |v_#memory_int_63| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= .cse0 0) (= (select |v_#memory_int_63| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |v_#memory_int_63| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_63| ULTIMATE.start_main_p5) 0))) [2019-01-31 14:44:01,333 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:44:01,395 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,396 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,398 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,399 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,400 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,401 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,403 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,404 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,405 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,411 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,411 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,412 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,413 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:01,415 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 78 [2019-01-31 14:44:01,425 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:01,477 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:01,478 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:48, output treesize:38 [2019-01-31 14:44:11,546 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:11,547 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_64|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_64| ULTIMATE.start_main_p4))) (and (= (select |v_#memory_int_64| ULTIMATE.start_main_p5) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_64| ULTIMATE.start_main_p2) 0) (= .cse0 0) (= (select |v_#memory_int_64| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (store |v_#memory_int_64| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_64| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:44:11,547 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:44:11,624 INFO L273 TraceCheckUtils]: 0: Hoare triple {1870#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {1878#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-31 14:44:11,627 INFO L273 TraceCheckUtils]: 1: Hoare triple {1878#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1882#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-31 14:44:11,632 INFO L273 TraceCheckUtils]: 2: Hoare triple {1882#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1886#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 1))} is VALID [2019-01-31 14:44:11,633 INFO L273 TraceCheckUtils]: 3: Hoare triple {1886#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 1))} assume !(#memory_int[main_p1] >= 0); {1871#false} is VALID [2019-01-31 14:44:11,633 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:11,633 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:44:11,662 INFO L273 TraceCheckUtils]: 3: Hoare triple {1874#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1871#false} is VALID [2019-01-31 14:44:11,663 INFO L273 TraceCheckUtils]: 2: Hoare triple {1893#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1874#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:44:11,664 INFO L273 TraceCheckUtils]: 1: Hoare triple {1897#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1893#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:44:11,667 INFO L273 TraceCheckUtils]: 0: Hoare triple {1870#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {1897#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:44:11,668 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:11,689 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:44:11,689 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 8 [2019-01-31 14:44:11,689 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:44:11,690 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:44:11,690 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:44:11,690 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:44:11,708 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:44:11,708 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:44:11,708 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:44:11,708 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=39, Invalid=51, Unknown=0, NotChecked=0, Total=90 [2019-01-31 14:44:11,709 INFO L87 Difference]: Start difference. First operand 28 states and 88 transitions. Second operand 8 states. [2019-01-31 14:44:12,966 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:12,966 INFO L93 Difference]: Finished difference Result 66 states and 142 transitions. [2019-01-31 14:44:12,966 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-31 14:44:12,966 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:44:12,966 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:44:12,966 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:44:12,967 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 76 transitions. [2019-01-31 14:44:12,967 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:44:12,968 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 76 transitions. [2019-01-31 14:44:12,968 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 76 transitions. [2019-01-31 14:44:13,148 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 76 edges. 76 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:44:13,150 INFO L225 Difference]: With dead ends: 66 [2019-01-31 14:44:13,150 INFO L226 Difference]: Without dead ends: 64 [2019-01-31 14:44:13,151 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 10 GetRequests, 1 SyntacticMatches, 0 SemanticMatches, 9 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 25 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=46, Invalid=64, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:44:13,151 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 64 states. [2019-01-31 14:44:13,303 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 64 to 32. [2019-01-31 14:44:13,303 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:44:13,303 INFO L82 GeneralOperation]: Start isEquivalent. First operand 64 states. Second operand 32 states. [2019-01-31 14:44:13,303 INFO L74 IsIncluded]: Start isIncluded. First operand 64 states. Second operand 32 states. [2019-01-31 14:44:13,304 INFO L87 Difference]: Start difference. First operand 64 states. Second operand 32 states. [2019-01-31 14:44:13,305 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:13,306 INFO L93 Difference]: Finished difference Result 64 states and 139 transitions. [2019-01-31 14:44:13,306 INFO L276 IsEmpty]: Start isEmpty. Operand 64 states and 139 transitions. [2019-01-31 14:44:13,306 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:13,306 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:13,306 INFO L74 IsIncluded]: Start isIncluded. First operand 32 states. Second operand 64 states. [2019-01-31 14:44:13,306 INFO L87 Difference]: Start difference. First operand 32 states. Second operand 64 states. [2019-01-31 14:44:13,308 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:13,308 INFO L93 Difference]: Finished difference Result 64 states and 139 transitions. [2019-01-31 14:44:13,308 INFO L276 IsEmpty]: Start isEmpty. Operand 64 states and 139 transitions. [2019-01-31 14:44:13,308 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:13,308 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:13,309 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:44:13,309 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:44:13,309 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 32 states. [2019-01-31 14:44:13,310 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 32 states to 32 states and 99 transitions. [2019-01-31 14:44:13,310 INFO L78 Accepts]: Start accepts. Automaton has 32 states and 99 transitions. Word has length 4 [2019-01-31 14:44:13,310 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:44:13,310 INFO L480 AbstractCegarLoop]: Abstraction has 32 states and 99 transitions. [2019-01-31 14:44:13,310 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:44:13,311 INFO L276 IsEmpty]: Start isEmpty. Operand 32 states and 99 transitions. [2019-01-31 14:44:13,311 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-31 14:44:13,311 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:44:13,311 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-31 14:44:13,312 INFO L423 AbstractCegarLoop]: === Iteration 13 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:44:13,312 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:13,312 INFO L82 PathProgramCache]: Analyzing trace with hash 930056, now seen corresponding path program 1 times [2019-01-31 14:44:13,312 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:44:13,313 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:13,313 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-31 14:44:13,313 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:13,313 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:44:13,319 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:13,404 INFO L273 TraceCheckUtils]: 0: Hoare triple {2157#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {2159#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:44:13,405 INFO L273 TraceCheckUtils]: 1: Hoare triple {2159#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {2160#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:44:13,406 INFO L273 TraceCheckUtils]: 2: Hoare triple {2160#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {2160#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:44:13,406 INFO L273 TraceCheckUtils]: 3: Hoare triple {2160#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {2158#false} is VALID [2019-01-31 14:44:13,407 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:13,407 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:13,407 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:44:13,407 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-31 14:44:13,407 INFO L207 CegarAbsIntRunner]: [0], [6], [24], [25] [2019-01-31 14:44:13,408 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:44:13,408 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:44:13,425 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:44:13,425 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 64 root evaluator evaluations with a maximum evaluation depth of 3. Performed 64 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-31 14:44:13,426 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:13,426 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:44:13,426 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:13,426 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 12 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 12 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:44:13,441 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:13,442 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:44:13,447 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:13,450 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:13,450 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:44:13,493 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 18 treesize of output 21 [2019-01-31 14:44:13,549 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:13,550 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 21 treesize of output 27 [2019-01-31 14:44:13,619 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:13,620 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:13,621 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:44:13,635 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:13,637 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:13,638 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:13,639 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:44:13,659 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:13,661 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:13,662 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:13,664 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:13,665 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:44:13,671 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:13,698 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:13,715 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:13,729 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:13,741 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:13,765 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:13,766 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 4 variables, input treesize:31, output treesize:38 [2019-01-31 14:44:13,773 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:13,774 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_67|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store (store |v_#memory_int_67| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:44:13,774 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:44:13,854 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:13,856 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:13,857 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:13,858 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:13,860 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:13,861 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:13,862 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:13,864 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:13,865 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:13,866 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:13,868 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:13,869 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 72 [2019-01-31 14:44:13,873 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:13,925 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:13,925 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:48, output treesize:38 [2019-01-31 14:44:14,024 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:14,024 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_68|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_68| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_68| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= (select |v_#memory_int_68| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_68| ULTIMATE.start_main_p5) 0) (= (select |v_#memory_int_68| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_68| ULTIMATE.start_main_p4) 0) (= .cse0 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:44:14,025 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:44:14,098 INFO L273 TraceCheckUtils]: 0: Hoare triple {2157#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {2164#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:44:14,101 INFO L273 TraceCheckUtils]: 1: Hoare triple {2164#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {2168#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:44:14,116 INFO L273 TraceCheckUtils]: 2: Hoare triple {2168#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume #memory_int[main_p1] >= 0; {2168#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:44:14,117 INFO L273 TraceCheckUtils]: 3: Hoare triple {2168#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume !(#memory_int[main_p2] <= 0); {2158#false} is VALID [2019-01-31 14:44:14,117 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:14,117 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:44:14,139 INFO L273 TraceCheckUtils]: 3: Hoare triple {2175#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {2158#false} is VALID [2019-01-31 14:44:14,140 INFO L273 TraceCheckUtils]: 2: Hoare triple {2175#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {2175#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:44:14,141 INFO L273 TraceCheckUtils]: 1: Hoare triple {2182#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {2175#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:44:14,144 INFO L273 TraceCheckUtils]: 0: Hoare triple {2157#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {2182#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:44:14,145 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:14,166 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:44:14,166 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-01-31 14:44:14,166 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:44:14,166 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-01-31 14:44:14,166 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:44:14,167 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-01-31 14:44:14,181 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:44:14,181 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-01-31 14:44:14,182 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-01-31 14:44:14,182 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-31 14:44:14,182 INFO L87 Difference]: Start difference. First operand 32 states and 99 transitions. Second operand 6 states. [2019-01-31 14:44:14,731 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:14,731 INFO L93 Difference]: Finished difference Result 45 states and 113 transitions. [2019-01-31 14:44:14,731 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-31 14:44:14,731 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-01-31 14:44:14,732 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:44:14,732 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-31 14:44:14,732 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 48 transitions. [2019-01-31 14:44:14,732 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-31 14:44:14,733 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 48 transitions. [2019-01-31 14:44:14,733 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 48 transitions. [2019-01-31 14:44:14,812 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 48 edges. 48 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:44:14,813 INFO L225 Difference]: With dead ends: 45 [2019-01-31 14:44:14,814 INFO L226 Difference]: Without dead ends: 44 [2019-01-31 14:44:14,814 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 10 GetRequests, 3 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=31, Invalid=41, Unknown=0, NotChecked=0, Total=72 [2019-01-31 14:44:14,815 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 44 states. [2019-01-31 14:44:15,064 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 44 to 33. [2019-01-31 14:44:15,065 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:44:15,065 INFO L82 GeneralOperation]: Start isEquivalent. First operand 44 states. Second operand 33 states. [2019-01-31 14:44:15,065 INFO L74 IsIncluded]: Start isIncluded. First operand 44 states. Second operand 33 states. [2019-01-31 14:44:15,065 INFO L87 Difference]: Start difference. First operand 44 states. Second operand 33 states. [2019-01-31 14:44:15,067 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:15,067 INFO L93 Difference]: Finished difference Result 44 states and 111 transitions. [2019-01-31 14:44:15,067 INFO L276 IsEmpty]: Start isEmpty. Operand 44 states and 111 transitions. [2019-01-31 14:44:15,067 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:15,068 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:15,068 INFO L74 IsIncluded]: Start isIncluded. First operand 33 states. Second operand 44 states. [2019-01-31 14:44:15,068 INFO L87 Difference]: Start difference. First operand 33 states. Second operand 44 states. [2019-01-31 14:44:15,069 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:15,069 INFO L93 Difference]: Finished difference Result 44 states and 111 transitions. [2019-01-31 14:44:15,070 INFO L276 IsEmpty]: Start isEmpty. Operand 44 states and 111 transitions. [2019-01-31 14:44:15,070 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:15,070 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:15,070 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:44:15,070 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:44:15,070 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 33 states. [2019-01-31 14:44:15,072 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 33 states to 33 states and 104 transitions. [2019-01-31 14:44:15,072 INFO L78 Accepts]: Start accepts. Automaton has 33 states and 104 transitions. Word has length 4 [2019-01-31 14:44:15,072 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:44:15,072 INFO L480 AbstractCegarLoop]: Abstraction has 33 states and 104 transitions. [2019-01-31 14:44:15,072 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-01-31 14:44:15,072 INFO L276 IsEmpty]: Start isEmpty. Operand 33 states and 104 transitions. [2019-01-31 14:44:15,073 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-31 14:44:15,073 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:44:15,073 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-31 14:44:15,073 INFO L423 AbstractCegarLoop]: === Iteration 14 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:44:15,073 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:15,073 INFO L82 PathProgramCache]: Analyzing trace with hash 947418, now seen corresponding path program 1 times [2019-01-31 14:44:15,073 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:44:15,074 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:15,074 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:15,074 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:15,075 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:44:15,080 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:15,135 INFO L273 TraceCheckUtils]: 0: Hoare triple {2381#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {2383#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-31 14:44:15,136 INFO L273 TraceCheckUtils]: 1: Hoare triple {2383#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p1] >= 0; {2383#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-31 14:44:15,138 INFO L273 TraceCheckUtils]: 2: Hoare triple {2383#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p2] <= 0; {2383#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-31 14:44:15,138 INFO L273 TraceCheckUtils]: 3: Hoare triple {2383#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume !(#memory_int[main_p3] >= 0); {2382#false} is VALID [2019-01-31 14:44:15,139 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:15,139 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2019-01-31 14:44:15,139 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [1] imperfect sequences [] total 1 [2019-01-31 14:44:15,139 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-31 14:44:15,139 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 4 [2019-01-31 14:44:15,139 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:44:15,139 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states. [2019-01-31 14:44:15,143 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 4 edges. 4 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:44:15,143 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2019-01-31 14:44:15,144 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2019-01-31 14:44:15,144 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-01-31 14:44:15,144 INFO L87 Difference]: Start difference. First operand 33 states and 104 transitions. Second operand 3 states. [2019-01-31 14:44:15,362 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:15,362 INFO L93 Difference]: Finished difference Result 34 states and 104 transitions. [2019-01-31 14:44:15,363 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-31 14:44:15,363 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 4 [2019-01-31 14:44:15,363 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:44:15,363 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-01-31 14:44:15,364 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 23 transitions. [2019-01-31 14:44:15,364 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-01-31 14:44:15,364 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 23 transitions. [2019-01-31 14:44:15,365 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 23 transitions. [2019-01-31 14:44:15,680 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 23 edges. 23 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:44:15,681 INFO L225 Difference]: With dead ends: 34 [2019-01-31 14:44:15,682 INFO L226 Difference]: Without dead ends: 31 [2019-01-31 14:44:15,682 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 1 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 1 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-01-31 14:44:15,682 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 31 states. [2019-01-31 14:44:16,057 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 31 to 31. [2019-01-31 14:44:16,057 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:44:16,057 INFO L82 GeneralOperation]: Start isEquivalent. First operand 31 states. Second operand 31 states. [2019-01-31 14:44:16,058 INFO L74 IsIncluded]: Start isIncluded. First operand 31 states. Second operand 31 states. [2019-01-31 14:44:16,058 INFO L87 Difference]: Start difference. First operand 31 states. Second operand 31 states. [2019-01-31 14:44:16,059 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:16,059 INFO L93 Difference]: Finished difference Result 31 states and 101 transitions. [2019-01-31 14:44:16,059 INFO L276 IsEmpty]: Start isEmpty. Operand 31 states and 101 transitions. [2019-01-31 14:44:16,059 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:16,060 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:16,060 INFO L74 IsIncluded]: Start isIncluded. First operand 31 states. Second operand 31 states. [2019-01-31 14:44:16,060 INFO L87 Difference]: Start difference. First operand 31 states. Second operand 31 states. [2019-01-31 14:44:16,061 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:16,061 INFO L93 Difference]: Finished difference Result 31 states and 101 transitions. [2019-01-31 14:44:16,061 INFO L276 IsEmpty]: Start isEmpty. Operand 31 states and 101 transitions. [2019-01-31 14:44:16,062 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:16,062 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:16,062 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:44:16,062 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:44:16,062 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 31 states. [2019-01-31 14:44:16,063 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 31 states to 31 states and 101 transitions. [2019-01-31 14:44:16,063 INFO L78 Accepts]: Start accepts. Automaton has 31 states and 101 transitions. Word has length 4 [2019-01-31 14:44:16,063 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:44:16,063 INFO L480 AbstractCegarLoop]: Abstraction has 31 states and 101 transitions. [2019-01-31 14:44:16,064 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2019-01-31 14:44:16,064 INFO L276 IsEmpty]: Start isEmpty. Operand 31 states and 101 transitions. [2019-01-31 14:44:16,064 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-31 14:44:16,064 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:44:16,064 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-31 14:44:16,064 INFO L423 AbstractCegarLoop]: === Iteration 15 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:44:16,065 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:16,065 INFO L82 PathProgramCache]: Analyzing trace with hash 933340, now seen corresponding path program 1 times [2019-01-31 14:44:16,065 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:44:16,065 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:16,066 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:16,066 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:16,066 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:44:16,070 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:16,153 INFO L273 TraceCheckUtils]: 0: Hoare triple {2541#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {2543#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:44:16,155 INFO L273 TraceCheckUtils]: 1: Hoare triple {2543#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {2544#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-31 14:44:16,156 INFO L273 TraceCheckUtils]: 2: Hoare triple {2544#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {2545#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:44:16,156 INFO L273 TraceCheckUtils]: 3: Hoare triple {2545#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {2542#false} is VALID [2019-01-31 14:44:16,157 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:16,157 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:16,157 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:44:16,157 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-31 14:44:16,158 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [23] [2019-01-31 14:44:16,159 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:44:16,159 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:44:16,169 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:44:16,169 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 64 root evaluator evaluations with a maximum evaluation depth of 3. Performed 64 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-31 14:44:16,169 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:16,169 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:44:16,169 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:16,169 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 13 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 13 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:44:16,177 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:16,177 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:44:16,183 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:16,185 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:16,186 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:44:16,211 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 18 treesize of output 21 [2019-01-31 14:44:16,221 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:16,222 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 21 treesize of output 27 [2019-01-31 14:44:16,233 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:16,234 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:16,235 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:44:16,250 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:16,251 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:16,253 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:16,254 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:44:16,273 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:16,275 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:16,276 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:16,278 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:16,279 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:44:16,283 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:16,314 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:16,332 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:16,347 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:16,358 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:16,384 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:16,385 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 4 variables, input treesize:31, output treesize:38 [2019-01-31 14:44:16,395 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:16,395 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_70|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store (store |v_#memory_int_70| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:44:16,395 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:44:16,457 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:16,458 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:16,460 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:16,461 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:16,462 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:16,464 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:16,465 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:16,466 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:16,468 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:16,469 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:16,470 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:16,471 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 72 [2019-01-31 14:44:16,477 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:16,530 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:16,531 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:48, output treesize:38 [2019-01-31 14:44:26,540 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:26,541 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_71|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_71| ULTIMATE.start_main_p2))) (and (= (select |v_#memory_int_71| ULTIMATE.start_main_p4) 0) (= 0 (select |v_#memory_int_71| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_71| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= 0 (select |v_#memory_int_71| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 (select |v_#memory_int_71| ULTIMATE.start_main_p1)) (= 0 .cse0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:44:26,541 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:44:26,747 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:26,749 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:26,753 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:26,754 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:26,755 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:26,756 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:26,757 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:26,758 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:26,760 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:26,761 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:26,762 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:26,764 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:26,765 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:26,766 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 88 [2019-01-31 14:44:26,769 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:26,826 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:26,827 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:50, output treesize:40 [2019-01-31 14:44:26,855 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:26,856 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_72|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_72| ULTIMATE.start_main_p1))) (and (= (store |v_#memory_int_72| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_72| ULTIMATE.start_main_p3)) (= 0 (select |v_#memory_int_72| ULTIMATE.start_main_p4)) (= (select |v_#memory_int_72| ULTIMATE.start_main_p5) 0) (= (+ (select |v_#memory_int_72| ULTIMATE.start_main_p2) 1) 0) (= 0 .cse0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:44:26,856 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-31 14:44:26,907 INFO L273 TraceCheckUtils]: 0: Hoare triple {2541#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {2549#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:44:26,911 INFO L273 TraceCheckUtils]: 1: Hoare triple {2549#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {2553#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-31 14:44:26,920 INFO L273 TraceCheckUtils]: 2: Hoare triple {2553#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {2557#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-31 14:44:26,921 INFO L273 TraceCheckUtils]: 3: Hoare triple {2557#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume !(#memory_int[main_p1] >= 0); {2542#false} is VALID [2019-01-31 14:44:26,921 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:26,921 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:44:26,946 INFO L273 TraceCheckUtils]: 3: Hoare triple {2545#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {2542#false} is VALID [2019-01-31 14:44:26,947 INFO L273 TraceCheckUtils]: 2: Hoare triple {2564#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {2545#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:44:26,948 INFO L273 TraceCheckUtils]: 1: Hoare triple {2568#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {2564#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} is VALID [2019-01-31 14:44:26,950 INFO L273 TraceCheckUtils]: 0: Hoare triple {2541#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {2568#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1))} is VALID [2019-01-31 14:44:26,951 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:26,971 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:44:26,972 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 8 [2019-01-31 14:44:26,972 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:44:26,972 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:44:26,972 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:44:26,972 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:44:26,992 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:44:26,993 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:44:26,993 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:44:26,993 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=39, Invalid=51, Unknown=0, NotChecked=0, Total=90 [2019-01-31 14:44:26,993 INFO L87 Difference]: Start difference. First operand 31 states and 101 transitions. Second operand 8 states. [2019-01-31 14:44:27,831 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:27,831 INFO L93 Difference]: Finished difference Result 59 states and 152 transitions. [2019-01-31 14:44:27,831 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-31 14:44:27,831 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:44:27,831 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:44:27,832 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:44:27,832 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 65 transitions. [2019-01-31 14:44:27,832 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:44:27,833 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 65 transitions. [2019-01-31 14:44:27,833 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 65 transitions. [2019-01-31 14:44:28,045 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 65 edges. 65 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:44:28,046 INFO L225 Difference]: With dead ends: 59 [2019-01-31 14:44:28,046 INFO L226 Difference]: Without dead ends: 58 [2019-01-31 14:44:28,047 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 10 GetRequests, 1 SyntacticMatches, 0 SemanticMatches, 9 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 24 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=47, Invalid=63, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:44:28,047 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 58 states. [2019-01-31 14:44:28,237 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 58 to 34. [2019-01-31 14:44:28,238 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:44:28,238 INFO L82 GeneralOperation]: Start isEquivalent. First operand 58 states. Second operand 34 states. [2019-01-31 14:44:28,238 INFO L74 IsIncluded]: Start isIncluded. First operand 58 states. Second operand 34 states. [2019-01-31 14:44:28,238 INFO L87 Difference]: Start difference. First operand 58 states. Second operand 34 states. [2019-01-31 14:44:28,241 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:28,241 INFO L93 Difference]: Finished difference Result 58 states and 150 transitions. [2019-01-31 14:44:28,241 INFO L276 IsEmpty]: Start isEmpty. Operand 58 states and 150 transitions. [2019-01-31 14:44:28,242 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:28,242 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:28,242 INFO L74 IsIncluded]: Start isIncluded. First operand 34 states. Second operand 58 states. [2019-01-31 14:44:28,242 INFO L87 Difference]: Start difference. First operand 34 states. Second operand 58 states. [2019-01-31 14:44:28,244 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:28,244 INFO L93 Difference]: Finished difference Result 58 states and 150 transitions. [2019-01-31 14:44:28,244 INFO L276 IsEmpty]: Start isEmpty. Operand 58 states and 150 transitions. [2019-01-31 14:44:28,245 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:28,245 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:28,245 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:44:28,245 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:44:28,245 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 34 states. [2019-01-31 14:44:28,246 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 34 states to 34 states and 119 transitions. [2019-01-31 14:44:28,247 INFO L78 Accepts]: Start accepts. Automaton has 34 states and 119 transitions. Word has length 4 [2019-01-31 14:44:28,247 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:44:28,247 INFO L480 AbstractCegarLoop]: Abstraction has 34 states and 119 transitions. [2019-01-31 14:44:28,247 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:44:28,247 INFO L276 IsEmpty]: Start isEmpty. Operand 34 states and 119 transitions. [2019-01-31 14:44:28,247 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-31 14:44:28,247 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:44:28,247 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-31 14:44:28,248 INFO L423 AbstractCegarLoop]: === Iteration 16 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:44:28,248 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:28,248 INFO L82 PathProgramCache]: Analyzing trace with hash 937744, now seen corresponding path program 1 times [2019-01-31 14:44:28,248 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:44:28,249 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:28,249 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:28,249 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:28,249 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:44:28,254 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:28,404 INFO L273 TraceCheckUtils]: 0: Hoare triple {2818#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {2820#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:44:28,405 INFO L273 TraceCheckUtils]: 1: Hoare triple {2820#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {2821#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:44:28,406 INFO L273 TraceCheckUtils]: 2: Hoare triple {2821#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {2821#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:44:28,407 INFO L273 TraceCheckUtils]: 3: Hoare triple {2821#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {2819#false} is VALID [2019-01-31 14:44:28,407 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:28,408 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:28,408 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:44:28,408 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-31 14:44:28,408 INFO L207 CegarAbsIntRunner]: [0], [14], [24], [25] [2019-01-31 14:44:28,410 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:44:28,410 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:44:28,426 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:44:28,426 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 64 root evaluator evaluations with a maximum evaluation depth of 3. Performed 64 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-31 14:44:28,426 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:28,427 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:44:28,427 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:28,427 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 14 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 14 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:44:28,438 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:28,438 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:44:28,442 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:28,446 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:28,446 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:44:28,465 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 18 treesize of output 21 [2019-01-31 14:44:28,472 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 23 [2019-01-31 14:44:28,482 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:28,483 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 23 treesize of output 29 [2019-01-31 14:44:28,499 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:28,500 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:28,501 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 39 [2019-01-31 14:44:28,517 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:28,521 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:28,523 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:28,524 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 50 [2019-01-31 14:44:28,529 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:28,551 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:28,563 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:28,575 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:28,587 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:28,611 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:28,611 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 4 variables, input treesize:28, output treesize:35 [2019-01-31 14:44:28,618 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:28,619 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_75|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store (store |v_#memory_int_75| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:44:28,619 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:44:28,675 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:28,676 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:28,678 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:28,679 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:28,680 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:28,682 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:28,683 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:28,684 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-31 14:44:28,690 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:28,723 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:28,724 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-31 14:44:28,737 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:28,737 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_76|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_76| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_76| ULTIMATE.start_main_p4)) (= (store |v_#memory_int_76| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= 0 (select |v_#memory_int_76| ULTIMATE.start_main_p2)) (= (select |v_#memory_int_76| ULTIMATE.start_main_p5) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-31 14:44:28,738 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:44:28,781 INFO L273 TraceCheckUtils]: 0: Hoare triple {2818#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {2825#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:44:28,784 INFO L273 TraceCheckUtils]: 1: Hoare triple {2825#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {2829#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:44:28,785 INFO L273 TraceCheckUtils]: 2: Hoare triple {2829#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume #memory_int[main_p1] >= 0; {2829#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:44:28,786 INFO L273 TraceCheckUtils]: 3: Hoare triple {2829#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume !(#memory_int[main_p2] <= 0); {2819#false} is VALID [2019-01-31 14:44:28,787 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:28,787 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:44:28,809 INFO L273 TraceCheckUtils]: 3: Hoare triple {2836#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {2819#false} is VALID [2019-01-31 14:44:28,809 INFO L273 TraceCheckUtils]: 2: Hoare triple {2836#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {2836#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:44:28,810 INFO L273 TraceCheckUtils]: 1: Hoare triple {2843#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {2836#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:44:28,813 INFO L273 TraceCheckUtils]: 0: Hoare triple {2818#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {2843#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:44:28,813 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:28,834 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:44:28,834 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-01-31 14:44:28,834 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:44:28,834 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-01-31 14:44:28,835 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:44:28,835 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-01-31 14:44:28,849 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:44:28,849 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-01-31 14:44:28,849 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-01-31 14:44:28,849 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-31 14:44:28,850 INFO L87 Difference]: Start difference. First operand 34 states and 119 transitions. Second operand 6 states. [2019-01-31 14:44:29,784 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:29,785 INFO L93 Difference]: Finished difference Result 51 states and 145 transitions. [2019-01-31 14:44:29,785 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-31 14:44:29,785 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-01-31 14:44:29,785 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:44:29,785 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-31 14:44:29,786 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 46 transitions. [2019-01-31 14:44:29,786 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-31 14:44:29,786 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 46 transitions. [2019-01-31 14:44:29,786 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 46 transitions. [2019-01-31 14:44:29,852 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 46 edges. 46 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:44:29,853 INFO L225 Difference]: With dead ends: 51 [2019-01-31 14:44:29,854 INFO L226 Difference]: Without dead ends: 50 [2019-01-31 14:44:29,854 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 9 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=31, Invalid=41, Unknown=0, NotChecked=0, Total=72 [2019-01-31 14:44:29,854 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 50 states. [2019-01-31 14:44:30,126 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 50 to 35. [2019-01-31 14:44:30,126 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:44:30,126 INFO L82 GeneralOperation]: Start isEquivalent. First operand 50 states. Second operand 35 states. [2019-01-31 14:44:30,126 INFO L74 IsIncluded]: Start isIncluded. First operand 50 states. Second operand 35 states. [2019-01-31 14:44:30,126 INFO L87 Difference]: Start difference. First operand 50 states. Second operand 35 states. [2019-01-31 14:44:30,129 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:30,129 INFO L93 Difference]: Finished difference Result 50 states and 143 transitions. [2019-01-31 14:44:30,130 INFO L276 IsEmpty]: Start isEmpty. Operand 50 states and 143 transitions. [2019-01-31 14:44:30,130 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:30,130 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:30,130 INFO L74 IsIncluded]: Start isIncluded. First operand 35 states. Second operand 50 states. [2019-01-31 14:44:30,130 INFO L87 Difference]: Start difference. First operand 35 states. Second operand 50 states. [2019-01-31 14:44:30,132 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:30,132 INFO L93 Difference]: Finished difference Result 50 states and 143 transitions. [2019-01-31 14:44:30,132 INFO L276 IsEmpty]: Start isEmpty. Operand 50 states and 143 transitions. [2019-01-31 14:44:30,133 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:30,133 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:30,133 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:44:30,133 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:44:30,133 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 35 states. [2019-01-31 14:44:30,134 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 35 states to 35 states and 125 transitions. [2019-01-31 14:44:30,135 INFO L78 Accepts]: Start accepts. Automaton has 35 states and 125 transitions. Word has length 4 [2019-01-31 14:44:30,135 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:44:30,135 INFO L480 AbstractCegarLoop]: Abstraction has 35 states and 125 transitions. [2019-01-31 14:44:30,135 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-01-31 14:44:30,135 INFO L276 IsEmpty]: Start isEmpty. Operand 35 states and 125 transitions. [2019-01-31 14:44:30,135 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-31 14:44:30,135 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:44:30,136 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-31 14:44:30,136 INFO L423 AbstractCegarLoop]: === Iteration 17 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:44:30,136 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:30,136 INFO L82 PathProgramCache]: Analyzing trace with hash 937308, now seen corresponding path program 1 times [2019-01-31 14:44:30,136 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:44:30,137 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:30,137 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:30,137 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:30,137 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:44:30,142 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:30,258 INFO L273 TraceCheckUtils]: 0: Hoare triple {3071#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {3073#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:44:30,259 INFO L273 TraceCheckUtils]: 1: Hoare triple {3073#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {3074#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:44:30,260 INFO L273 TraceCheckUtils]: 2: Hoare triple {3074#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {3075#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-31 14:44:30,261 INFO L273 TraceCheckUtils]: 3: Hoare triple {3075#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {3072#false} is VALID [2019-01-31 14:44:30,262 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:30,262 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:30,262 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:44:30,262 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-31 14:44:30,262 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [23] [2019-01-31 14:44:30,265 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:44:30,265 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:44:30,289 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:44:30,289 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 64 root evaluator evaluations with a maximum evaluation depth of 3. Performed 64 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-31 14:44:30,290 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:30,290 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:44:30,290 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:30,290 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 15 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 15 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:44:30,299 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:30,300 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:44:30,304 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:30,309 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:30,309 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:44:30,335 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 18 treesize of output 21 [2019-01-31 14:44:30,345 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:30,346 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 21 treesize of output 27 [2019-01-31 14:44:30,367 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:30,368 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:30,369 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:44:30,412 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:30,416 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:30,417 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:30,418 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:44:30,436 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:30,438 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:30,439 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:30,440 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:30,441 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:44:30,445 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:30,473 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:30,489 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:30,503 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:30,515 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:30,537 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:30,538 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 3 variables, input treesize:31, output treesize:38 [2019-01-31 14:44:30,546 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:30,546 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_78|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store (store |v_#memory_int_78| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:44:30,546 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:44:30,635 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:30,636 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:30,637 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:30,639 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:30,640 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:30,641 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:30,643 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:30,644 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:30,645 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:30,647 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:30,648 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:30,649 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 72 [2019-01-31 14:44:30,684 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:30,735 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:30,736 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:48, output treesize:38 [2019-01-31 14:44:30,751 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:30,752 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_79|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_79| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_79| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_79| ULTIMATE.start_main_p5) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |v_#memory_int_79| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_79| ULTIMATE.start_main_p2) 0) (= (store |v_#memory_int_79| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:44:30,752 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:44:30,816 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:30,817 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:30,818 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:30,820 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:30,821 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:30,822 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:30,824 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:30,825 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:30,826 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:30,828 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:30,829 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:30,830 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:30,831 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:30,832 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 86 [2019-01-31 14:44:30,838 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:31,326 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:31,326 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:48, output treesize:38 [2019-01-31 14:44:31,843 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:31,843 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_80|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_80| ULTIMATE.start_main_p2))) (and (= 0 (select |v_#memory_int_80| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_80| ULTIMATE.start_main_p5)) (= 0 .cse0) (= (store |v_#memory_int_80| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= 1 (select |v_#memory_int_80| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= 0 (select |v_#memory_int_80| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:44:31,844 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:44:31,908 INFO L273 TraceCheckUtils]: 0: Hoare triple {3071#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {3079#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:44:31,911 INFO L273 TraceCheckUtils]: 1: Hoare triple {3079#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {3083#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:44:31,918 INFO L273 TraceCheckUtils]: 2: Hoare triple {3083#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {3087#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-31 14:44:31,919 INFO L273 TraceCheckUtils]: 3: Hoare triple {3087#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {3072#false} is VALID [2019-01-31 14:44:31,919 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:31,919 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:44:31,958 INFO L273 TraceCheckUtils]: 3: Hoare triple {3091#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {3072#false} is VALID [2019-01-31 14:44:31,959 INFO L273 TraceCheckUtils]: 2: Hoare triple {3095#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {3091#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:44:31,961 INFO L273 TraceCheckUtils]: 1: Hoare triple {3099#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {3095#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:44:31,964 INFO L273 TraceCheckUtils]: 0: Hoare triple {3071#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {3099#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:44:31,964 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:31,984 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:44:31,985 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:44:31,985 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:44:31,985 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:44:31,985 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:44:31,985 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:44:32,000 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:44:32,000 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:44:32,001 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:44:32,001 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:44:32,001 INFO L87 Difference]: Start difference. First operand 35 states and 125 transitions. Second operand 8 states. [2019-01-31 14:44:33,209 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:33,210 INFO L93 Difference]: Finished difference Result 64 states and 172 transitions. [2019-01-31 14:44:33,210 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-31 14:44:33,210 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-31 14:44:33,211 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:44:33,211 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:44:33,211 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 60 transitions. [2019-01-31 14:44:33,211 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:44:33,212 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 60 transitions. [2019-01-31 14:44:33,212 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 60 transitions. [2019-01-31 14:44:33,449 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 60 edges. 60 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:44:33,451 INFO L225 Difference]: With dead ends: 64 [2019-01-31 14:44:33,451 INFO L226 Difference]: Without dead ends: 63 [2019-01-31 14:44:33,451 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:44:33,452 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 63 states. [2019-01-31 14:44:33,668 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 63 to 37. [2019-01-31 14:44:33,668 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:44:33,668 INFO L82 GeneralOperation]: Start isEquivalent. First operand 63 states. Second operand 37 states. [2019-01-31 14:44:33,668 INFO L74 IsIncluded]: Start isIncluded. First operand 63 states. Second operand 37 states. [2019-01-31 14:44:33,668 INFO L87 Difference]: Start difference. First operand 63 states. Second operand 37 states. [2019-01-31 14:44:33,670 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:33,671 INFO L93 Difference]: Finished difference Result 63 states and 170 transitions. [2019-01-31 14:44:33,671 INFO L276 IsEmpty]: Start isEmpty. Operand 63 states and 170 transitions. [2019-01-31 14:44:33,672 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:33,672 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:33,672 INFO L74 IsIncluded]: Start isIncluded. First operand 37 states. Second operand 63 states. [2019-01-31 14:44:33,672 INFO L87 Difference]: Start difference. First operand 37 states. Second operand 63 states. [2019-01-31 14:44:33,674 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:33,674 INFO L93 Difference]: Finished difference Result 63 states and 170 transitions. [2019-01-31 14:44:33,674 INFO L276 IsEmpty]: Start isEmpty. Operand 63 states and 170 transitions. [2019-01-31 14:44:33,674 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:33,675 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:33,675 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:44:33,675 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:44:33,675 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 37 states. [2019-01-31 14:44:33,676 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 37 states to 37 states and 137 transitions. [2019-01-31 14:44:33,676 INFO L78 Accepts]: Start accepts. Automaton has 37 states and 137 transitions. Word has length 4 [2019-01-31 14:44:33,677 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:44:33,677 INFO L480 AbstractCegarLoop]: Abstraction has 37 states and 137 transitions. [2019-01-31 14:44:33,677 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:44:33,677 INFO L276 IsEmpty]: Start isEmpty. Operand 37 states and 137 transitions. [2019-01-31 14:44:33,677 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:44:33,677 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:44:33,678 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:44:33,678 INFO L423 AbstractCegarLoop]: === Iteration 18 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:44:33,678 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:33,678 INFO L82 PathProgramCache]: Analyzing trace with hash 29185378, now seen corresponding path program 1 times [2019-01-31 14:44:33,678 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:44:33,679 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:33,679 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:33,679 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:33,679 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:44:33,686 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:34,157 WARN L181 SmtUtils]: Spent 179.00 ms on a formula simplification. DAG size of input: 28 DAG size of output: 17 [2019-01-31 14:44:34,201 INFO L273 TraceCheckUtils]: 0: Hoare triple {3375#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {3377#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:44:34,203 INFO L273 TraceCheckUtils]: 1: Hoare triple {3377#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {3378#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:44:34,204 INFO L273 TraceCheckUtils]: 2: Hoare triple {3378#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {3379#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:44:34,204 INFO L273 TraceCheckUtils]: 3: Hoare triple {3379#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {3379#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:44:34,205 INFO L273 TraceCheckUtils]: 4: Hoare triple {3379#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {3376#false} is VALID [2019-01-31 14:44:34,206 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:34,206 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:34,206 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:44:34,206 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-31 14:44:34,206 INFO L207 CegarAbsIntRunner]: [0], [18], [20], [24], [25] [2019-01-31 14:44:34,208 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:44:34,208 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:44:34,243 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:44:34,243 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 66 root evaluator evaluations with a maximum evaluation depth of 3. Performed 66 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-31 14:44:34,244 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:34,244 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:44:34,244 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:34,244 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 16 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 16 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:44:34,257 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:34,257 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:44:34,262 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:34,265 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:34,265 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:44:34,281 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 18 treesize of output 21 [2019-01-31 14:44:34,288 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 23 [2019-01-31 14:44:34,297 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:34,298 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 23 treesize of output 29 [2019-01-31 14:44:34,313 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:34,314 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:34,315 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 39 [2019-01-31 14:44:34,338 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:34,345 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:34,346 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:34,347 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 50 [2019-01-31 14:44:34,358 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:34,380 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:34,396 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:34,407 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:34,419 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:34,438 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:34,439 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 3 variables, input treesize:28, output treesize:35 [2019-01-31 14:44:34,446 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:34,447 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_83|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3]. (and (= (store (store (store (store (store |v_#memory_int_83| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:44:34,447 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:44:34,509 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:34,509 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:34,510 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:34,511 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:34,513 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:34,514 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:34,534 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:34,535 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-31 14:44:34,537 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:34,568 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:34,569 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-31 14:44:35,267 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:35,268 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_84|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_84| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_84| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_84| ULTIMATE.start_main_p3) 0) (= .cse0 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= |#memory_int| (store |v_#memory_int_84| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= 0 (select |v_#memory_int_84| ULTIMATE.start_main_p5)))) [2019-01-31 14:44:35,268 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:44:35,317 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:35,318 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:35,319 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:35,321 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:35,322 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:35,323 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:35,324 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:35,325 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:35,326 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:35,328 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 59 [2019-01-31 14:44:35,330 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:35,365 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:35,365 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-31 14:44:35,374 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:35,374 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_85|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_85| ULTIMATE.start_main_p5))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_85| ULTIMATE.start_main_p5 (+ .cse0 1)) |#memory_int|) (= (select |v_#memory_int_85| ULTIMATE.start_main_p3) 0) (= .cse0 0) (= 0 (+ (select |v_#memory_int_85| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |v_#memory_int_85| ULTIMATE.start_main_p2) 0))) [2019-01-31 14:44:35,374 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:44:35,415 INFO L273 TraceCheckUtils]: 0: Hoare triple {3375#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {3383#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-31 14:44:35,417 INFO L273 TraceCheckUtils]: 1: Hoare triple {3383#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {3387#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-31 14:44:35,419 INFO L273 TraceCheckUtils]: 2: Hoare triple {3387#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {3391#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:44:35,420 INFO L273 TraceCheckUtils]: 3: Hoare triple {3391#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume #memory_int[main_p1] >= 0; {3391#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:44:35,421 INFO L273 TraceCheckUtils]: 4: Hoare triple {3391#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume !(#memory_int[main_p2] <= 0); {3376#false} is VALID [2019-01-31 14:44:35,422 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:35,422 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:44:35,463 INFO L273 TraceCheckUtils]: 4: Hoare triple {3398#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {3376#false} is VALID [2019-01-31 14:44:35,464 INFO L273 TraceCheckUtils]: 3: Hoare triple {3398#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {3398#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:44:35,465 INFO L273 TraceCheckUtils]: 2: Hoare triple {3405#(<= (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {3398#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:44:35,467 INFO L273 TraceCheckUtils]: 1: Hoare triple {3409#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {3405#(<= (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:44:35,469 INFO L273 TraceCheckUtils]: 0: Hoare triple {3375#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {3409#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:44:35,470 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:35,490 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:44:35,490 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:44:35,491 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:44:35,491 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:44:35,491 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:44:35,491 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:44:35,507 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:44:35,507 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:44:35,507 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:44:35,507 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:44:35,507 INFO L87 Difference]: Start difference. First operand 37 states and 137 transitions. Second operand 8 states. [2019-01-31 14:44:36,391 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:36,392 INFO L93 Difference]: Finished difference Result 57 states and 164 transitions. [2019-01-31 14:44:36,392 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-31 14:44:36,392 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:44:36,392 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:44:36,392 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:44:36,393 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 56 transitions. [2019-01-31 14:44:36,393 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:44:36,394 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 56 transitions. [2019-01-31 14:44:36,394 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 56 transitions. [2019-01-31 14:44:36,786 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 56 edges. 56 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:44:36,787 INFO L225 Difference]: With dead ends: 57 [2019-01-31 14:44:36,788 INFO L226 Difference]: Without dead ends: 56 [2019-01-31 14:44:36,788 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 13 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:44:36,789 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 56 states. [2019-01-31 14:44:37,158 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 56 to 38. [2019-01-31 14:44:37,159 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:44:37,159 INFO L82 GeneralOperation]: Start isEquivalent. First operand 56 states. Second operand 38 states. [2019-01-31 14:44:37,159 INFO L74 IsIncluded]: Start isIncluded. First operand 56 states. Second operand 38 states. [2019-01-31 14:44:37,159 INFO L87 Difference]: Start difference. First operand 56 states. Second operand 38 states. [2019-01-31 14:44:37,161 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:37,161 INFO L93 Difference]: Finished difference Result 56 states and 162 transitions. [2019-01-31 14:44:37,161 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 162 transitions. [2019-01-31 14:44:37,162 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:37,162 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:37,162 INFO L74 IsIncluded]: Start isIncluded. First operand 38 states. Second operand 56 states. [2019-01-31 14:44:37,162 INFO L87 Difference]: Start difference. First operand 38 states. Second operand 56 states. [2019-01-31 14:44:37,164 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:37,164 INFO L93 Difference]: Finished difference Result 56 states and 162 transitions. [2019-01-31 14:44:37,165 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 162 transitions. [2019-01-31 14:44:37,165 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:37,165 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:37,165 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:44:37,165 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:44:37,166 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 38 states. [2019-01-31 14:44:37,167 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 38 states to 38 states and 143 transitions. [2019-01-31 14:44:37,167 INFO L78 Accepts]: Start accepts. Automaton has 38 states and 143 transitions. Word has length 5 [2019-01-31 14:44:37,167 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:44:37,168 INFO L480 AbstractCegarLoop]: Abstraction has 38 states and 143 transitions. [2019-01-31 14:44:37,168 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:44:37,168 INFO L276 IsEmpty]: Start isEmpty. Operand 38 states and 143 transitions. [2019-01-31 14:44:37,168 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:44:37,168 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:44:37,169 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:44:37,169 INFO L423 AbstractCegarLoop]: === Iteration 19 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:44:37,169 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:37,169 INFO L82 PathProgramCache]: Analyzing trace with hash 29184942, now seen corresponding path program 1 times [2019-01-31 14:44:37,170 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:44:37,170 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:37,170 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:37,171 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:37,171 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:44:37,186 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:37,722 WARN L181 SmtUtils]: Spent 156.00 ms on a formula simplification. DAG size of input: 39 DAG size of output: 21 [2019-01-31 14:44:37,821 INFO L273 TraceCheckUtils]: 0: Hoare triple {3666#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {3668#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:44:37,823 INFO L273 TraceCheckUtils]: 1: Hoare triple {3668#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {3669#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:44:37,824 INFO L273 TraceCheckUtils]: 2: Hoare triple {3669#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {3670#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:44:37,824 INFO L273 TraceCheckUtils]: 3: Hoare triple {3670#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {3671#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-31 14:44:37,825 INFO L273 TraceCheckUtils]: 4: Hoare triple {3671#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {3667#false} is VALID [2019-01-31 14:44:37,825 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:37,825 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:37,825 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:44:37,825 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-31 14:44:37,826 INFO L207 CegarAbsIntRunner]: [0], [10], [18], [20], [23] [2019-01-31 14:44:37,829 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:44:37,829 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:44:37,838 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:44:37,839 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 66 root evaluator evaluations with a maximum evaluation depth of 3. Performed 66 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-31 14:44:37,839 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:37,839 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:44:37,839 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:37,840 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 17 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 17 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:44:37,849 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:37,849 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:44:37,854 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:37,857 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:37,858 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:44:37,925 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 18 treesize of output 21 [2019-01-31 14:44:37,930 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:37,931 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 21 treesize of output 27 [2019-01-31 14:44:37,939 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:37,941 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:37,942 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:44:37,964 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:37,965 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:37,967 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:37,968 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:44:37,995 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:37,997 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:37,998 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:37,999 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,001 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:44:38,011 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:38,041 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:38,061 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:38,075 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:38,087 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:38,110 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:38,111 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 2 variables, input treesize:31, output treesize:38 [2019-01-31 14:44:38,120 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:38,120 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_88|, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store (store |v_#memory_int_88| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:44:38,120 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:44:38,185 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,186 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,187 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,189 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,190 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,192 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,193 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,194 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,196 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,197 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,199 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,200 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 66 [2019-01-31 14:44:38,203 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:38,253 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:38,253 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:48, output treesize:38 [2019-01-31 14:44:38,263 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:38,264 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_89|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_89| ULTIMATE.start_main_p4))) (and (= (select |v_#memory_int_89| ULTIMATE.start_main_p5) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_89| ULTIMATE.start_main_p3) 0) (= |#memory_int| (store |v_#memory_int_89| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= (select |v_#memory_int_89| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_89| ULTIMATE.start_main_p1) 0) (= .cse0 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:44:38,264 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:44:38,323 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,324 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,325 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,327 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,328 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,330 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,331 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,333 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,334 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,335 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,337 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,338 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,339 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:38,341 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 80 [2019-01-31 14:44:38,346 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:38,395 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:38,396 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:50, output treesize:40 [2019-01-31 14:44:40,104 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:40,105 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_90|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_90| ULTIMATE.start_main_p5))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_90| ULTIMATE.start_main_p5 (+ .cse0 1))) (= 0 (+ (select |v_#memory_int_90| ULTIMATE.start_main_p4) 1)) (= 0 .cse0) (= (select |v_#memory_int_90| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |v_#memory_int_90| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |v_#memory_int_90| ULTIMATE.start_main_p1) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:44:40,105 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:44:40,182 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:40,183 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:40,185 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:40,186 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:40,187 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:40,188 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:40,190 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:40,191 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:40,193 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:40,194 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:40,195 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:40,196 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:40,197 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:44:40,198 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:40,199 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 97 [2019-01-31 14:44:40,204 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:40,258 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:40,258 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:50, output treesize:38 [2019-01-31 14:44:51,101 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:51,102 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_91|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_91| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_91| ULTIMATE.start_main_p5) 1) (= (select |v_#memory_int_91| ULTIMATE.start_main_p3) 0) (= (+ (select |v_#memory_int_91| ULTIMATE.start_main_p4) 1) 0) (= .cse0 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (store |v_#memory_int_91| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_91| ULTIMATE.start_main_p1) 0))) [2019-01-31 14:44:51,102 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:44:51,323 INFO L273 TraceCheckUtils]: 0: Hoare triple {3666#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {3675#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:44:51,326 INFO L273 TraceCheckUtils]: 1: Hoare triple {3675#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {3679#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-31 14:44:51,329 INFO L273 TraceCheckUtils]: 2: Hoare triple {3679#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {3683#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:44:51,337 INFO L273 TraceCheckUtils]: 3: Hoare triple {3683#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {3687#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-31 14:44:51,340 INFO L273 TraceCheckUtils]: 4: Hoare triple {3687#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {3667#false} is VALID [2019-01-31 14:44:51,340 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:51,340 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:44:51,406 INFO L273 TraceCheckUtils]: 4: Hoare triple {3691#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {3667#false} is VALID [2019-01-31 14:44:51,407 INFO L273 TraceCheckUtils]: 3: Hoare triple {3695#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {3691#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:44:51,409 INFO L273 TraceCheckUtils]: 2: Hoare triple {3699#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {3695#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:44:51,411 INFO L273 TraceCheckUtils]: 1: Hoare triple {3703#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {3699#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:44:51,414 INFO L273 TraceCheckUtils]: 0: Hoare triple {3666#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {3703#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:44:51,414 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 1 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:51,435 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:44:51,436 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-31 14:44:51,436 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:44:51,436 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-31 14:44:51,436 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:44:51,436 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-31 14:44:51,457 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:44:51,457 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-31 14:44:51,457 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-31 14:44:51,457 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=66, Invalid=116, Unknown=0, NotChecked=0, Total=182 [2019-01-31 14:44:51,458 INFO L87 Difference]: Start difference. First operand 38 states and 143 transitions. Second operand 10 states. [2019-01-31 14:44:53,973 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:53,973 INFO L93 Difference]: Finished difference Result 68 states and 184 transitions. [2019-01-31 14:44:53,973 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-31 14:44:53,973 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-31 14:44:53,973 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:44:53,973 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:44:53,974 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 70 transitions. [2019-01-31 14:44:53,974 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:44:53,974 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 70 transitions. [2019-01-31 14:44:53,974 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 70 transitions. [2019-01-31 14:44:54,162 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 70 edges. 70 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:44:54,164 INFO L225 Difference]: With dead ends: 68 [2019-01-31 14:44:54,164 INFO L226 Difference]: Without dead ends: 67 [2019-01-31 14:44:54,165 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 15 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 63 ImplicationChecksByTransitivity, 0.9s TimeCoverageRelationStatistics Valid=99, Invalid=173, Unknown=0, NotChecked=0, Total=272 [2019-01-31 14:44:54,165 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 67 states. [2019-01-31 14:44:54,399 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 67 to 37. [2019-01-31 14:44:54,399 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:44:54,399 INFO L82 GeneralOperation]: Start isEquivalent. First operand 67 states. Second operand 37 states. [2019-01-31 14:44:54,399 INFO L74 IsIncluded]: Start isIncluded. First operand 67 states. Second operand 37 states. [2019-01-31 14:44:54,399 INFO L87 Difference]: Start difference. First operand 67 states. Second operand 37 states. [2019-01-31 14:44:54,401 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:54,402 INFO L93 Difference]: Finished difference Result 67 states and 182 transitions. [2019-01-31 14:44:54,402 INFO L276 IsEmpty]: Start isEmpty. Operand 67 states and 182 transitions. [2019-01-31 14:44:54,402 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:54,402 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:54,402 INFO L74 IsIncluded]: Start isIncluded. First operand 37 states. Second operand 67 states. [2019-01-31 14:44:54,402 INFO L87 Difference]: Start difference. First operand 37 states. Second operand 67 states. [2019-01-31 14:44:54,404 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:54,404 INFO L93 Difference]: Finished difference Result 67 states and 182 transitions. [2019-01-31 14:44:54,404 INFO L276 IsEmpty]: Start isEmpty. Operand 67 states and 182 transitions. [2019-01-31 14:44:54,405 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:54,405 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:54,405 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:44:54,405 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:44:54,405 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 37 states. [2019-01-31 14:44:54,406 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 37 states to 37 states and 137 transitions. [2019-01-31 14:44:54,406 INFO L78 Accepts]: Start accepts. Automaton has 37 states and 137 transitions. Word has length 5 [2019-01-31 14:44:54,406 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:44:54,407 INFO L480 AbstractCegarLoop]: Abstraction has 37 states and 137 transitions. [2019-01-31 14:44:54,407 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-31 14:44:54,407 INFO L276 IsEmpty]: Start isEmpty. Operand 37 states and 137 transitions. [2019-01-31 14:44:54,407 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:44:54,407 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:44:54,407 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:44:54,407 INFO L423 AbstractCegarLoop]: === Iteration 20 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:44:54,408 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:54,408 INFO L82 PathProgramCache]: Analyzing trace with hash 29171924, now seen corresponding path program 1 times [2019-01-31 14:44:54,408 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:44:54,410 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:54,410 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:54,410 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:54,410 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:44:54,415 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:54,588 INFO L273 TraceCheckUtils]: 0: Hoare triple {3995#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {3997#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:44:54,589 INFO L273 TraceCheckUtils]: 1: Hoare triple {3997#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {3998#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:44:54,590 INFO L273 TraceCheckUtils]: 2: Hoare triple {3998#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {3999#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:44:54,591 INFO L273 TraceCheckUtils]: 3: Hoare triple {3999#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {3999#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:44:54,592 INFO L273 TraceCheckUtils]: 4: Hoare triple {3999#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {3996#false} is VALID [2019-01-31 14:44:54,592 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:54,592 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:54,593 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:44:54,593 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-31 14:44:54,593 INFO L207 CegarAbsIntRunner]: [0], [6], [18], [24], [25] [2019-01-31 14:44:54,594 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:44:54,595 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:44:54,608 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:44:54,609 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 66 root evaluator evaluations with a maximum evaluation depth of 3. Performed 66 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-31 14:44:54,609 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:54,609 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:44:54,609 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:54,609 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 18 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 18 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:44:54,618 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:54,618 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:44:54,622 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:54,625 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:54,626 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:44:54,643 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 18 treesize of output 21 [2019-01-31 14:44:54,651 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:54,652 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 21 treesize of output 27 [2019-01-31 14:44:54,664 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:54,666 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:54,667 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:44:54,680 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:54,681 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:54,682 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:54,683 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:44:54,902 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:54,903 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:54,905 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:54,907 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:54,908 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:44:54,911 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:54,944 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:54,960 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:54,974 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:54,987 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:55,009 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:55,009 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 3 variables, input treesize:31, output treesize:38 [2019-01-31 14:44:55,018 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:55,018 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_95|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store (store |v_#memory_int_95| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:44:55,018 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:44:55,076 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:55,077 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:55,078 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:55,079 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:55,081 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:55,082 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:55,084 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:55,085 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:55,087 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:55,088 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:55,090 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:55,091 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 66 [2019-01-31 14:44:55,094 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:55,141 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:55,142 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:48, output treesize:38 [2019-01-31 14:44:55,164 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:55,164 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_96|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_96| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= 0 (select |v_#memory_int_96| ULTIMATE.start_main_p5)) (= 0 (select |v_#memory_int_96| ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_96| ULTIMATE.start_main_p2)) (= |#memory_int| (store |v_#memory_int_96| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= 0 (select |v_#memory_int_96| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:44:55,165 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:44:55,225 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:55,227 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:55,228 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:55,230 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:55,231 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:55,232 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:55,234 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:55,235 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:55,236 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:55,238 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:55,239 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:55,240 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:55,241 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:55,243 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 88 [2019-01-31 14:44:55,247 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:55,304 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:55,304 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:50, output treesize:40 [2019-01-31 14:44:55,355 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:55,355 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_97|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_97| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_97| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= (+ (select |v_#memory_int_97| ULTIMATE.start_main_p4) 1) 0) (= (select |v_#memory_int_97| ULTIMATE.start_main_p3) 0) (= 0 (select |v_#memory_int_97| ULTIMATE.start_main_p5)) (= 0 .cse0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= 0 (select |v_#memory_int_97| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:44:55,355 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:44:55,413 INFO L273 TraceCheckUtils]: 0: Hoare triple {3995#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {4003#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:44:55,417 INFO L273 TraceCheckUtils]: 1: Hoare triple {4003#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {4007#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:44:55,424 INFO L273 TraceCheckUtils]: 2: Hoare triple {4007#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {4011#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:44:55,425 INFO L273 TraceCheckUtils]: 3: Hoare triple {4011#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume #memory_int[main_p1] >= 0; {4011#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:44:55,426 INFO L273 TraceCheckUtils]: 4: Hoare triple {4011#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume !(#memory_int[main_p2] <= 0); {3996#false} is VALID [2019-01-31 14:44:55,426 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:55,426 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:44:55,477 INFO L273 TraceCheckUtils]: 4: Hoare triple {4018#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {3996#false} is VALID [2019-01-31 14:44:55,478 INFO L273 TraceCheckUtils]: 3: Hoare triple {4018#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {4018#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:44:55,479 INFO L273 TraceCheckUtils]: 2: Hoare triple {4025#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {4018#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:44:55,481 INFO L273 TraceCheckUtils]: 1: Hoare triple {4029#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {4025#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:44:55,483 INFO L273 TraceCheckUtils]: 0: Hoare triple {3995#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {4029#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:44:55,484 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:55,505 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:44:55,505 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:44:55,505 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:44:55,505 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:44:55,505 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:44:55,505 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:44:55,530 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:44:55,531 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:44:55,531 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:44:55,531 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:44:55,531 INFO L87 Difference]: Start difference. First operand 37 states and 137 transitions. Second operand 8 states. [2019-01-31 14:44:56,822 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:56,823 INFO L93 Difference]: Finished difference Result 56 states and 158 transitions. [2019-01-31 14:44:56,823 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-31 14:44:56,823 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:44:56,823 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:44:56,823 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:44:56,824 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 56 transitions. [2019-01-31 14:44:56,824 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:44:56,825 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 56 transitions. [2019-01-31 14:44:56,825 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 56 transitions. [2019-01-31 14:44:56,921 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 56 edges. 56 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:44:56,923 INFO L225 Difference]: With dead ends: 56 [2019-01-31 14:44:56,923 INFO L226 Difference]: Without dead ends: 55 [2019-01-31 14:44:56,923 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 3 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:44:56,924 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 55 states. [2019-01-31 14:44:57,146 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 55 to 37. [2019-01-31 14:44:57,146 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:44:57,147 INFO L82 GeneralOperation]: Start isEquivalent. First operand 55 states. Second operand 37 states. [2019-01-31 14:44:57,147 INFO L74 IsIncluded]: Start isIncluded. First operand 55 states. Second operand 37 states. [2019-01-31 14:44:57,147 INFO L87 Difference]: Start difference. First operand 55 states. Second operand 37 states. [2019-01-31 14:44:57,149 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:57,149 INFO L93 Difference]: Finished difference Result 55 states and 156 transitions. [2019-01-31 14:44:57,149 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 156 transitions. [2019-01-31 14:44:57,149 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:57,149 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:57,150 INFO L74 IsIncluded]: Start isIncluded. First operand 37 states. Second operand 55 states. [2019-01-31 14:44:57,150 INFO L87 Difference]: Start difference. First operand 37 states. Second operand 55 states. [2019-01-31 14:44:57,151 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:44:57,151 INFO L93 Difference]: Finished difference Result 55 states and 156 transitions. [2019-01-31 14:44:57,151 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 156 transitions. [2019-01-31 14:44:57,151 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:44:57,151 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:44:57,151 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:44:57,152 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:44:57,152 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 37 states. [2019-01-31 14:44:57,152 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 37 states to 37 states and 137 transitions. [2019-01-31 14:44:57,152 INFO L78 Accepts]: Start accepts. Automaton has 37 states and 137 transitions. Word has length 5 [2019-01-31 14:44:57,153 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:44:57,153 INFO L480 AbstractCegarLoop]: Abstraction has 37 states and 137 transitions. [2019-01-31 14:44:57,153 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:44:57,153 INFO L276 IsEmpty]: Start isEmpty. Operand 37 states and 137 transitions. [2019-01-31 14:44:57,153 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:44:57,153 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:44:57,153 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:44:57,153 INFO L423 AbstractCegarLoop]: === Iteration 21 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:44:57,154 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:57,154 INFO L82 PathProgramCache]: Analyzing trace with hash 29189286, now seen corresponding path program 1 times [2019-01-31 14:44:57,154 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:44:57,155 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:57,155 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:57,155 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:44:57,155 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:44:57,160 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:57,281 INFO L273 TraceCheckUtils]: 0: Hoare triple {4280#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {4282#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:44:57,282 INFO L273 TraceCheckUtils]: 1: Hoare triple {4282#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {4283#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-31 14:44:57,283 INFO L273 TraceCheckUtils]: 2: Hoare triple {4283#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p1] >= 0; {4283#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-31 14:44:57,283 INFO L273 TraceCheckUtils]: 3: Hoare triple {4283#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p2] <= 0; {4283#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-31 14:44:57,284 INFO L273 TraceCheckUtils]: 4: Hoare triple {4283#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume !(#memory_int[main_p3] >= 0); {4281#false} is VALID [2019-01-31 14:44:57,285 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:57,285 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:57,285 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:44:57,285 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-31 14:44:57,285 INFO L207 CegarAbsIntRunner]: [0], [18], [24], [26], [27] [2019-01-31 14:44:57,287 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:44:57,287 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:44:57,300 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:44:57,300 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 66 root evaluator evaluations with a maximum evaluation depth of 3. Performed 66 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-31 14:44:57,300 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:44:57,300 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:44:57,300 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:44:57,301 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 19 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 19 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:44:57,311 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:44:57,311 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:44:57,318 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:57,323 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:44:57,324 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:44:57,336 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 18 treesize of output 21 [2019-01-31 14:44:57,343 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 23 [2019-01-31 14:44:57,352 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 25 [2019-01-31 14:44:57,365 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:57,366 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 1 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 31 [2019-01-31 14:44:57,387 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:57,395 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:57,396 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 3 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 38 [2019-01-31 14:44:57,399 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:57,415 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:57,428 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:57,440 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:57,452 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:44:57,470 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:57,470 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 4 variables, input treesize:25, output treesize:32 [2019-01-31 14:44:57,475 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:57,476 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_100|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store (store |v_#memory_int_100| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5)) [2019-01-31 14:44:57,476 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p5, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:44:57,534 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:57,536 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:57,537 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:57,538 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:44:57,539 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 28 [2019-01-31 14:44:57,542 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:44:57,561 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:44:57,562 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:32, output treesize:22 [2019-01-31 14:44:59,572 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:44:59,572 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_101|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_101| ULTIMATE.start_main_p4))) (and (= (store |v_#memory_int_101| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_101| ULTIMATE.start_main_p5)) (= 0 (select |v_#memory_int_101| ULTIMATE.start_main_p3)) (= 0 .cse0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) [2019-01-31 14:44:59,573 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5)) [2019-01-31 14:44:59,693 INFO L273 TraceCheckUtils]: 0: Hoare triple {4280#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {4287#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-31 14:44:59,695 INFO L273 TraceCheckUtils]: 1: Hoare triple {4287#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {4291#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} is VALID [2019-01-31 14:44:59,697 INFO L273 TraceCheckUtils]: 2: Hoare triple {4291#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} assume #memory_int[main_p1] >= 0; {4291#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} is VALID [2019-01-31 14:44:59,698 INFO L273 TraceCheckUtils]: 3: Hoare triple {4291#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} assume #memory_int[main_p2] <= 0; {4291#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} is VALID [2019-01-31 14:44:59,699 INFO L273 TraceCheckUtils]: 4: Hoare triple {4291#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} assume !(#memory_int[main_p3] >= 0); {4281#false} is VALID [2019-01-31 14:44:59,699 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:59,699 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:44:59,729 INFO L273 TraceCheckUtils]: 4: Hoare triple {4301#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {4281#false} is VALID [2019-01-31 14:44:59,729 INFO L273 TraceCheckUtils]: 3: Hoare triple {4301#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {4301#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:44:59,729 INFO L273 TraceCheckUtils]: 2: Hoare triple {4301#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {4301#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:44:59,730 INFO L273 TraceCheckUtils]: 1: Hoare triple {4311#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {4301#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:44:59,733 INFO L273 TraceCheckUtils]: 0: Hoare triple {4280#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {4311#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:44:59,733 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:44:59,752 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:44:59,752 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-01-31 14:44:59,752 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:44:59,753 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 5 [2019-01-31 14:44:59,753 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:44:59,753 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-01-31 14:44:59,767 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:44:59,767 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-01-31 14:44:59,767 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-01-31 14:44:59,768 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-31 14:44:59,768 INFO L87 Difference]: Start difference. First operand 37 states and 137 transitions. Second operand 6 states. [2019-01-31 14:45:00,521 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:00,521 INFO L93 Difference]: Finished difference Result 45 states and 143 transitions. [2019-01-31 14:45:00,521 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-31 14:45:00,522 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 5 [2019-01-31 14:45:00,522 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:45:00,522 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-31 14:45:00,523 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 42 transitions. [2019-01-31 14:45:00,523 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-31 14:45:00,524 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 42 transitions. [2019-01-31 14:45:00,524 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 42 transitions. [2019-01-31 14:45:00,579 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 42 edges. 42 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:45:00,580 INFO L225 Difference]: With dead ends: 45 [2019-01-31 14:45:00,580 INFO L226 Difference]: Without dead ends: 44 [2019-01-31 14:45:00,580 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 4 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=31, Invalid=41, Unknown=0, NotChecked=0, Total=72 [2019-01-31 14:45:00,581 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 44 states. [2019-01-31 14:45:00,822 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 44 to 39. [2019-01-31 14:45:00,822 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:45:00,822 INFO L82 GeneralOperation]: Start isEquivalent. First operand 44 states. Second operand 39 states. [2019-01-31 14:45:00,822 INFO L74 IsIncluded]: Start isIncluded. First operand 44 states. Second operand 39 states. [2019-01-31 14:45:00,823 INFO L87 Difference]: Start difference. First operand 44 states. Second operand 39 states. [2019-01-31 14:45:00,824 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:00,825 INFO L93 Difference]: Finished difference Result 44 states and 141 transitions. [2019-01-31 14:45:00,825 INFO L276 IsEmpty]: Start isEmpty. Operand 44 states and 141 transitions. [2019-01-31 14:45:00,825 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:45:00,826 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:45:00,826 INFO L74 IsIncluded]: Start isIncluded. First operand 39 states. Second operand 44 states. [2019-01-31 14:45:00,826 INFO L87 Difference]: Start difference. First operand 39 states. Second operand 44 states. [2019-01-31 14:45:00,827 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:00,828 INFO L93 Difference]: Finished difference Result 44 states and 141 transitions. [2019-01-31 14:45:00,828 INFO L276 IsEmpty]: Start isEmpty. Operand 44 states and 141 transitions. [2019-01-31 14:45:00,828 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:45:00,828 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:45:00,828 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:45:00,828 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:45:00,829 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 39 states. [2019-01-31 14:45:00,829 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 39 states to 39 states and 138 transitions. [2019-01-31 14:45:00,830 INFO L78 Accepts]: Start accepts. Automaton has 39 states and 138 transitions. Word has length 5 [2019-01-31 14:45:00,830 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:45:00,830 INFO L480 AbstractCegarLoop]: Abstraction has 39 states and 138 transitions. [2019-01-31 14:45:00,830 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-01-31 14:45:00,830 INFO L276 IsEmpty]: Start isEmpty. Operand 39 states and 138 transitions. [2019-01-31 14:45:00,830 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:45:00,830 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:45:00,830 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:45:00,831 INFO L423 AbstractCegarLoop]: === Iteration 22 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:45:00,831 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:45:00,831 INFO L82 PathProgramCache]: Analyzing trace with hash 29175208, now seen corresponding path program 1 times [2019-01-31 14:45:00,831 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:45:00,831 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:45:00,832 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:45:00,832 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:45:00,832 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:45:00,836 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:01,222 INFO L273 TraceCheckUtils]: 0: Hoare triple {4528#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {4530#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:45:01,224 INFO L273 TraceCheckUtils]: 1: Hoare triple {4530#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {4531#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:45:01,225 INFO L273 TraceCheckUtils]: 2: Hoare triple {4531#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {4532#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-31 14:45:01,225 INFO L273 TraceCheckUtils]: 3: Hoare triple {4532#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {4533#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:45:01,226 INFO L273 TraceCheckUtils]: 4: Hoare triple {4533#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {4529#false} is VALID [2019-01-31 14:45:01,226 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:01,226 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:45:01,226 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:45:01,226 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-31 14:45:01,227 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [18], [23] [2019-01-31 14:45:01,229 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:45:01,229 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:45:01,239 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:45:01,239 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 66 root evaluator evaluations with a maximum evaluation depth of 3. Performed 66 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-31 14:45:01,240 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:45:01,240 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:45:01,240 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:45:01,240 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 20 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 20 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:45:01,249 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:45:01,249 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:45:01,254 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:01,258 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:01,258 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:45:01,297 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 18 treesize of output 21 [2019-01-31 14:45:01,305 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,306 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 21 treesize of output 27 [2019-01-31 14:45:01,324 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,325 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,326 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:45:01,341 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,342 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,343 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,345 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:45:01,362 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,364 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,365 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,367 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,368 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:45:01,372 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:01,404 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:01,421 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:01,435 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:01,452 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:01,475 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:01,475 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 3 variables, input treesize:31, output treesize:38 [2019-01-31 14:45:01,486 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:01,486 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_103|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (store (store (store (store (store |v_#memory_int_103| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|)) [2019-01-31 14:45:01,487 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:45:01,572 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,574 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,575 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,577 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,578 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,579 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,581 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,582 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,583 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,585 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,591 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:01,591 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 66 [2019-01-31 14:45:01,594 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:01,642 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:01,643 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:48, output treesize:38 [2019-01-31 14:45:11,792 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:11,792 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_104|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_104| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_104| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= 0 (select |v_#memory_int_104| ULTIMATE.start_main_p3)) (= 0 .cse0) (= 0 (select |v_#memory_int_104| ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_104| ULTIMATE.start_main_p5)) (= (select |v_#memory_int_104| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:45:11,792 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:45:12,004 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:12,005 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:12,007 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:12,008 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:12,010 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:12,011 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:12,013 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:12,014 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:12,016 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:12,017 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:12,018 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:12,019 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:45:12,020 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 38 treesize of output 81 [2019-01-31 14:45:12,023 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:12,079 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:12,080 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:50, output treesize:38 [2019-01-31 14:45:12,120 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:12,121 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_105|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_105| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_105| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= 0 (select |v_#memory_int_105| ULTIMATE.start_main_p3)) (= (+ (select |v_#memory_int_105| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |v_#memory_int_105| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |v_#memory_int_105| ULTIMATE.start_main_p1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= .cse0 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:45:12,121 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:45:12,209 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:12,211 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:12,212 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:12,213 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:12,215 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:12,216 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:12,217 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:12,219 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:12,220 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:12,221 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:12,222 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:12,224 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:12,225 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:12,226 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 40 treesize of output 90 [2019-01-31 14:45:12,229 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:12,289 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:12,289 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:52, output treesize:42 [2019-01-31 14:45:12,307 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:12,307 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_106|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_106| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_106| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= 0 (select |v_#memory_int_106| ULTIMATE.start_main_p5)) (= (+ (select |v_#memory_int_106| ULTIMATE.start_main_p2) 1) 0) (= 0 (select |v_#memory_int_106| ULTIMATE.start_main_p3)) (= 0 .cse0) (= (+ (select |v_#memory_int_106| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:45:12,308 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-31 14:45:12,337 INFO L273 TraceCheckUtils]: 0: Hoare triple {4528#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {4537#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:45:12,341 INFO L273 TraceCheckUtils]: 1: Hoare triple {4537#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {4541#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:45:12,349 INFO L273 TraceCheckUtils]: 2: Hoare triple {4541#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {4545#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-31 14:45:12,357 INFO L273 TraceCheckUtils]: 3: Hoare triple {4545#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {4549#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-31 14:45:12,358 INFO L273 TraceCheckUtils]: 4: Hoare triple {4549#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume !(#memory_int[main_p1] >= 0); {4529#false} is VALID [2019-01-31 14:45:12,359 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:12,359 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:45:12,407 INFO L273 TraceCheckUtils]: 4: Hoare triple {4533#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {4529#false} is VALID [2019-01-31 14:45:12,408 INFO L273 TraceCheckUtils]: 3: Hoare triple {4556#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {4533#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:45:12,409 INFO L273 TraceCheckUtils]: 2: Hoare triple {4560#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {4556#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} is VALID [2019-01-31 14:45:12,410 INFO L273 TraceCheckUtils]: 1: Hoare triple {4564#(<= 0 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {4560#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1))} is VALID [2019-01-31 14:45:12,412 INFO L273 TraceCheckUtils]: 0: Hoare triple {4528#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {4564#(<= 0 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1))} is VALID [2019-01-31 14:45:12,412 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 2 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:12,432 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:45:12,432 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-31 14:45:12,432 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:45:12,433 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-31 14:45:12,433 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:45:12,433 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-31 14:45:12,464 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:45:12,464 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-31 14:45:12,464 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-31 14:45:12,465 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=63, Invalid=93, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:45:12,465 INFO L87 Difference]: Start difference. First operand 39 states and 138 transitions. Second operand 10 states. [2019-01-31 14:45:14,319 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:14,319 INFO L93 Difference]: Finished difference Result 71 states and 207 transitions. [2019-01-31 14:45:14,319 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-31 14:45:14,320 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-31 14:45:14,320 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:45:14,320 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:45:14,320 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 74 transitions. [2019-01-31 14:45:14,320 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:45:14,321 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 74 transitions. [2019-01-31 14:45:14,321 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 74 transitions. [2019-01-31 14:45:14,578 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 74 edges. 74 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:45:14,579 INFO L225 Difference]: With dead ends: 71 [2019-01-31 14:45:14,579 INFO L226 Difference]: Without dead ends: 70 [2019-01-31 14:45:14,579 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 1 SyntacticMatches, 0 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 50 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=83, Invalid=127, Unknown=0, NotChecked=0, Total=210 [2019-01-31 14:45:14,580 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 70 states. [2019-01-31 14:45:14,862 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 70 to 40. [2019-01-31 14:45:14,862 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:45:14,863 INFO L82 GeneralOperation]: Start isEquivalent. First operand 70 states. Second operand 40 states. [2019-01-31 14:45:14,863 INFO L74 IsIncluded]: Start isIncluded. First operand 70 states. Second operand 40 states. [2019-01-31 14:45:14,863 INFO L87 Difference]: Start difference. First operand 70 states. Second operand 40 states. [2019-01-31 14:45:14,865 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:14,865 INFO L93 Difference]: Finished difference Result 70 states and 205 transitions. [2019-01-31 14:45:14,865 INFO L276 IsEmpty]: Start isEmpty. Operand 70 states and 205 transitions. [2019-01-31 14:45:14,866 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:45:14,866 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:45:14,866 INFO L74 IsIncluded]: Start isIncluded. First operand 40 states. Second operand 70 states. [2019-01-31 14:45:14,866 INFO L87 Difference]: Start difference. First operand 40 states. Second operand 70 states. [2019-01-31 14:45:14,867 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:14,867 INFO L93 Difference]: Finished difference Result 70 states and 205 transitions. [2019-01-31 14:45:14,867 INFO L276 IsEmpty]: Start isEmpty. Operand 70 states and 205 transitions. [2019-01-31 14:45:14,868 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:45:14,868 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:45:14,868 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:45:14,868 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:45:14,868 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 40 states. [2019-01-31 14:45:14,869 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 40 states to 40 states and 144 transitions. [2019-01-31 14:45:14,869 INFO L78 Accepts]: Start accepts. Automaton has 40 states and 144 transitions. Word has length 5 [2019-01-31 14:45:14,869 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:45:14,869 INFO L480 AbstractCegarLoop]: Abstraction has 40 states and 144 transitions. [2019-01-31 14:45:14,869 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-31 14:45:14,869 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 144 transitions. [2019-01-31 14:45:14,869 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:45:14,869 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:45:14,870 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:45:14,870 INFO L423 AbstractCegarLoop]: === Iteration 23 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:45:14,870 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:45:14,870 INFO L82 PathProgramCache]: Analyzing trace with hash 29179612, now seen corresponding path program 1 times [2019-01-31 14:45:14,870 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:45:14,871 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:45:14,871 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:45:14,871 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:45:14,871 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:45:14,876 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:14,994 INFO L273 TraceCheckUtils]: 0: Hoare triple {4871#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {4873#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:45:14,996 INFO L273 TraceCheckUtils]: 1: Hoare triple {4873#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {4874#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:45:14,997 INFO L273 TraceCheckUtils]: 2: Hoare triple {4874#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {4875#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:45:14,997 INFO L273 TraceCheckUtils]: 3: Hoare triple {4875#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {4875#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:45:14,998 INFO L273 TraceCheckUtils]: 4: Hoare triple {4875#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {4872#false} is VALID [2019-01-31 14:45:14,998 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:14,999 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:45:14,999 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:45:14,999 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-31 14:45:14,999 INFO L207 CegarAbsIntRunner]: [0], [14], [18], [24], [25] [2019-01-31 14:45:15,001 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:45:15,001 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:45:15,016 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:45:15,016 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 66 root evaluator evaluations with a maximum evaluation depth of 3. Performed 66 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-31 14:45:15,017 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:45:15,017 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:45:15,017 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:45:15,017 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 21 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 21 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:45:15,026 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:45:15,026 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:45:15,032 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:15,036 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:15,037 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:45:15,056 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 18 treesize of output 21 [2019-01-31 14:45:15,067 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 23 [2019-01-31 14:45:15,083 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:15,084 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 23 treesize of output 29 [2019-01-31 14:45:15,099 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:15,100 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:15,101 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 39 [2019-01-31 14:45:15,116 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:15,121 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:15,123 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:15,124 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 50 [2019-01-31 14:45:15,127 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:15,150 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:15,164 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:15,176 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:15,189 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:15,210 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:15,211 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 3 variables, input treesize:28, output treesize:35 [2019-01-31 14:45:15,217 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:15,217 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_110|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store (store |v_#memory_int_110| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:45:15,217 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p5, ULTIMATE.start_main_p1]. (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:45:15,281 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:15,282 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:15,284 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:15,285 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:15,287 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:15,288 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:15,289 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:15,290 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-31 14:45:15,293 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:15,323 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:15,323 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-31 14:45:15,371 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:15,372 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_111|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_111| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_111| ULTIMATE.start_main_p5) 0) (= (select |v_#memory_int_111| ULTIMATE.start_main_p3) 0) (= .cse0 0) (= |#memory_int| (store |v_#memory_int_111| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= 0 (select |v_#memory_int_111| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-31 14:45:15,372 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:45:15,473 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:15,474 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:15,476 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:15,477 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:15,478 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:15,479 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:15,481 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:15,482 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:15,483 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:15,484 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 67 [2019-01-31 14:45:15,487 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:15,527 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:15,527 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-31 14:45:27,021 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:27,022 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_112|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_112| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_112| ULTIMATE.start_main_p2) 0) (= 0 (+ (select |v_#memory_int_112| ULTIMATE.start_main_p4) 1)) (= (select |v_#memory_int_112| ULTIMATE.start_main_p5) 0) (= .cse0 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (store |v_#memory_int_112| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-31 14:45:27,022 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:45:27,082 INFO L273 TraceCheckUtils]: 0: Hoare triple {4871#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {4879#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-31 14:45:27,085 INFO L273 TraceCheckUtils]: 1: Hoare triple {4879#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {4883#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:45:27,088 INFO L273 TraceCheckUtils]: 2: Hoare triple {4883#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {4887#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:45:27,089 INFO L273 TraceCheckUtils]: 3: Hoare triple {4887#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume #memory_int[main_p1] >= 0; {4887#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:45:27,089 INFO L273 TraceCheckUtils]: 4: Hoare triple {4887#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume !(#memory_int[main_p2] <= 0); {4872#false} is VALID [2019-01-31 14:45:27,090 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:27,090 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:45:27,138 INFO L273 TraceCheckUtils]: 4: Hoare triple {4894#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {4872#false} is VALID [2019-01-31 14:45:27,140 INFO L273 TraceCheckUtils]: 3: Hoare triple {4894#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {4894#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:45:27,143 INFO L273 TraceCheckUtils]: 2: Hoare triple {4901#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {4894#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:45:27,145 INFO L273 TraceCheckUtils]: 1: Hoare triple {4905#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {4901#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:45:27,147 INFO L273 TraceCheckUtils]: 0: Hoare triple {4871#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {4905#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:45:27,147 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:27,165 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:45:27,166 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:45:27,166 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:45:27,166 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:45:27,166 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:45:27,166 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:45:27,182 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:45:27,183 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:45:27,183 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:45:27,183 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:45:27,183 INFO L87 Difference]: Start difference. First operand 40 states and 144 transitions. Second operand 8 states. [2019-01-31 14:45:29,151 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:29,152 INFO L93 Difference]: Finished difference Result 59 states and 171 transitions. [2019-01-31 14:45:29,152 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-31 14:45:29,152 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:45:29,152 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:45:29,152 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:45:29,152 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 55 transitions. [2019-01-31 14:45:29,153 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:45:29,153 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 55 transitions. [2019-01-31 14:45:29,153 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 55 transitions. [2019-01-31 14:45:29,238 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 55 edges. 55 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:45:29,239 INFO L225 Difference]: With dead ends: 59 [2019-01-31 14:45:29,239 INFO L226 Difference]: Without dead ends: 58 [2019-01-31 14:45:29,240 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 13 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:45:29,240 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 58 states. [2019-01-31 14:45:29,544 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 58 to 41. [2019-01-31 14:45:29,544 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:45:29,544 INFO L82 GeneralOperation]: Start isEquivalent. First operand 58 states. Second operand 41 states. [2019-01-31 14:45:29,544 INFO L74 IsIncluded]: Start isIncluded. First operand 58 states. Second operand 41 states. [2019-01-31 14:45:29,544 INFO L87 Difference]: Start difference. First operand 58 states. Second operand 41 states. [2019-01-31 14:45:29,547 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:29,547 INFO L93 Difference]: Finished difference Result 58 states and 169 transitions. [2019-01-31 14:45:29,547 INFO L276 IsEmpty]: Start isEmpty. Operand 58 states and 169 transitions. [2019-01-31 14:45:29,548 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:45:29,548 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:45:29,548 INFO L74 IsIncluded]: Start isIncluded. First operand 41 states. Second operand 58 states. [2019-01-31 14:45:29,548 INFO L87 Difference]: Start difference. First operand 41 states. Second operand 58 states. [2019-01-31 14:45:29,549 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:29,549 INFO L93 Difference]: Finished difference Result 58 states and 169 transitions. [2019-01-31 14:45:29,550 INFO L276 IsEmpty]: Start isEmpty. Operand 58 states and 169 transitions. [2019-01-31 14:45:29,550 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:45:29,550 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:45:29,550 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:45:29,550 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:45:29,551 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 41 states. [2019-01-31 14:45:29,552 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 41 states to 41 states and 150 transitions. [2019-01-31 14:45:29,552 INFO L78 Accepts]: Start accepts. Automaton has 41 states and 150 transitions. Word has length 5 [2019-01-31 14:45:29,552 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:45:29,552 INFO L480 AbstractCegarLoop]: Abstraction has 41 states and 150 transitions. [2019-01-31 14:45:29,552 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:45:29,552 INFO L276 IsEmpty]: Start isEmpty. Operand 41 states and 150 transitions. [2019-01-31 14:45:29,553 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:45:29,553 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:45:29,553 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:45:29,553 INFO L423 AbstractCegarLoop]: === Iteration 24 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:45:29,553 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:45:29,553 INFO L82 PathProgramCache]: Analyzing trace with hash 29179176, now seen corresponding path program 1 times [2019-01-31 14:45:29,553 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:45:29,554 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:45:29,554 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:45:29,554 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:45:29,554 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:45:29,560 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:30,127 INFO L273 TraceCheckUtils]: 0: Hoare triple {5173#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {5175#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:45:30,129 INFO L273 TraceCheckUtils]: 1: Hoare triple {5175#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {5176#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:45:30,129 INFO L273 TraceCheckUtils]: 2: Hoare triple {5176#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {5177#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:45:30,130 INFO L273 TraceCheckUtils]: 3: Hoare triple {5177#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {5178#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-31 14:45:30,130 INFO L273 TraceCheckUtils]: 4: Hoare triple {5178#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {5174#false} is VALID [2019-01-31 14:45:30,131 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:30,131 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:45:30,131 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:45:30,132 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-31 14:45:30,132 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [18], [23] [2019-01-31 14:45:30,133 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:45:30,133 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:45:30,144 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:45:30,144 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 66 root evaluator evaluations with a maximum evaluation depth of 3. Performed 66 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-31 14:45:30,145 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:45:30,145 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:45:30,145 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:45:30,145 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 22 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 22 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:45:30,154 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:45:30,154 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:45:30,158 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:30,161 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:30,162 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:45:30,177 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 18 treesize of output 21 [2019-01-31 14:45:30,185 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:30,186 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 21 treesize of output 27 [2019-01-31 14:45:30,196 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:30,198 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:30,199 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:45:30,213 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:30,215 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:30,216 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:30,217 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:45:30,235 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:30,237 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:30,238 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:30,240 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:30,241 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:45:30,247 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:30,283 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:30,301 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:30,315 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:30,327 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:30,347 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:30,347 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 2 variables, input treesize:31, output treesize:38 [2019-01-31 14:45:30,353 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:30,353 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_115|, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store (store |v_#memory_int_115| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:45:30,353 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p5]. (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:45:30,412 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:30,413 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:30,414 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:30,415 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:30,417 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:30,418 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:30,420 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:30,421 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:30,423 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:30,424 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:30,425 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:30,427 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 66 [2019-01-31 14:45:30,429 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:30,493 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:30,493 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:48, output treesize:38 [2019-01-31 14:45:32,581 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:32,581 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_116|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_116| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= 0 (select |v_#memory_int_116| ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_116| ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_116| ULTIMATE.start_main_p3)) (= (select |v_#memory_int_116| ULTIMATE.start_main_p5) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= |#memory_int| (store |v_#memory_int_116| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))))) [2019-01-31 14:45:32,582 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:45:32,654 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:32,655 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:32,657 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:32,658 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:32,659 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:32,661 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:32,662 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:32,663 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:32,665 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:32,666 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:32,667 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:32,668 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:32,669 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:32,671 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 88 [2019-01-31 14:45:32,674 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:32,726 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:32,727 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:50, output treesize:40 [2019-01-31 14:45:32,748 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:32,749 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_117|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_117| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= (store |v_#memory_int_117| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= (+ (select |v_#memory_int_117| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |v_#memory_int_117| ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_117| ULTIMATE.start_main_p1)) (= (select |v_#memory_int_117| ULTIMATE.start_main_p5) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:45:32,749 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:45:32,926 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:32,927 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:32,929 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:32,930 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:32,931 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:32,933 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:32,934 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:32,936 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:32,937 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:32,938 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:32,940 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:32,941 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:32,942 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:45:32,943 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:32,944 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 97 [2019-01-31 14:45:32,948 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:33,029 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:33,030 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:50, output treesize:38 [2019-01-31 14:45:43,966 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:43,967 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_118|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_118| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= 0 (+ (select |v_#memory_int_118| ULTIMATE.start_main_p4) 1)) (= 0 (select |v_#memory_int_118| ULTIMATE.start_main_p5)) (= 1 (select |v_#memory_int_118| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |v_#memory_int_118| ULTIMATE.start_main_p1) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= |#memory_int| (store |v_#memory_int_118| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))))) [2019-01-31 14:45:43,967 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:45:44,229 INFO L273 TraceCheckUtils]: 0: Hoare triple {5173#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {5182#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:45:44,232 INFO L273 TraceCheckUtils]: 1: Hoare triple {5182#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {5186#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:45:44,235 INFO L273 TraceCheckUtils]: 2: Hoare triple {5186#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {5190#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:45:44,243 INFO L273 TraceCheckUtils]: 3: Hoare triple {5190#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {5194#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-31 14:45:44,244 INFO L273 TraceCheckUtils]: 4: Hoare triple {5194#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {5174#false} is VALID [2019-01-31 14:45:44,244 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:44,245 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:45:44,314 INFO L273 TraceCheckUtils]: 4: Hoare triple {5198#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {5174#false} is VALID [2019-01-31 14:45:44,315 INFO L273 TraceCheckUtils]: 3: Hoare triple {5202#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {5198#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:45:44,317 INFO L273 TraceCheckUtils]: 2: Hoare triple {5206#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {5202#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:45:44,319 INFO L273 TraceCheckUtils]: 1: Hoare triple {5210#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {5206#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:45:44,320 INFO L273 TraceCheckUtils]: 0: Hoare triple {5173#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {5210#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:45:44,321 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 1 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:44,341 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:45:44,341 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-31 14:45:44,341 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:45:44,341 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-31 14:45:44,341 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:45:44,341 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-31 14:45:44,364 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:45:44,364 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-31 14:45:44,365 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-31 14:45:44,365 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=66, Invalid=116, Unknown=0, NotChecked=0, Total=182 [2019-01-31 14:45:44,365 INFO L87 Difference]: Start difference. First operand 41 states and 150 transitions. Second operand 10 states. [2019-01-31 14:45:46,585 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:46,585 INFO L93 Difference]: Finished difference Result 71 states and 197 transitions. [2019-01-31 14:45:46,585 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-31 14:45:46,585 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-31 14:45:46,586 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:45:46,586 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:45:46,586 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 69 transitions. [2019-01-31 14:45:46,587 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:45:46,587 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 69 transitions. [2019-01-31 14:45:46,587 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 69 transitions. [2019-01-31 14:45:46,786 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 69 edges. 69 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:45:46,788 INFO L225 Difference]: With dead ends: 71 [2019-01-31 14:45:46,788 INFO L226 Difference]: Without dead ends: 70 [2019-01-31 14:45:46,788 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 15 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 63 ImplicationChecksByTransitivity, 1.0s TimeCoverageRelationStatistics Valid=99, Invalid=173, Unknown=0, NotChecked=0, Total=272 [2019-01-31 14:45:46,788 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 70 states. [2019-01-31 14:45:47,026 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 70 to 38. [2019-01-31 14:45:47,026 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:45:47,026 INFO L82 GeneralOperation]: Start isEquivalent. First operand 70 states. Second operand 38 states. [2019-01-31 14:45:47,027 INFO L74 IsIncluded]: Start isIncluded. First operand 70 states. Second operand 38 states. [2019-01-31 14:45:47,027 INFO L87 Difference]: Start difference. First operand 70 states. Second operand 38 states. [2019-01-31 14:45:47,029 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:47,029 INFO L93 Difference]: Finished difference Result 70 states and 195 transitions. [2019-01-31 14:45:47,029 INFO L276 IsEmpty]: Start isEmpty. Operand 70 states and 195 transitions. [2019-01-31 14:45:47,029 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:45:47,029 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:45:47,029 INFO L74 IsIncluded]: Start isIncluded. First operand 38 states. Second operand 70 states. [2019-01-31 14:45:47,029 INFO L87 Difference]: Start difference. First operand 38 states. Second operand 70 states. [2019-01-31 14:45:47,031 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:47,031 INFO L93 Difference]: Finished difference Result 70 states and 195 transitions. [2019-01-31 14:45:47,031 INFO L276 IsEmpty]: Start isEmpty. Operand 70 states and 195 transitions. [2019-01-31 14:45:47,031 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:45:47,031 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:45:47,032 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:45:47,032 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:45:47,032 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 38 states. [2019-01-31 14:45:47,033 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 38 states to 38 states and 132 transitions. [2019-01-31 14:45:47,033 INFO L78 Accepts]: Start accepts. Automaton has 38 states and 132 transitions. Word has length 5 [2019-01-31 14:45:47,033 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:45:47,033 INFO L480 AbstractCegarLoop]: Abstraction has 38 states and 132 transitions. [2019-01-31 14:45:47,033 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-31 14:45:47,033 INFO L276 IsEmpty]: Start isEmpty. Operand 38 states and 132 transitions. [2019-01-31 14:45:47,034 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:45:47,034 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:45:47,034 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:45:47,034 INFO L423 AbstractCegarLoop]: === Iteration 25 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:45:47,034 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:45:47,035 INFO L82 PathProgramCache]: Analyzing trace with hash 29231506, now seen corresponding path program 1 times [2019-01-31 14:45:47,035 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:45:47,035 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:45:47,036 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:45:47,036 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:45:47,036 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:45:47,040 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:47,226 INFO L273 TraceCheckUtils]: 0: Hoare triple {5513#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {5515#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:45:47,228 INFO L273 TraceCheckUtils]: 1: Hoare triple {5515#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {5516#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:45:47,228 INFO L273 TraceCheckUtils]: 2: Hoare triple {5516#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {5516#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:45:47,229 INFO L273 TraceCheckUtils]: 3: Hoare triple {5516#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} assume #memory_int[main_p1] >= 0; {5517#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:45:47,229 INFO L273 TraceCheckUtils]: 4: Hoare triple {5517#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {5514#false} is VALID [2019-01-31 14:45:47,230 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-31 14:45:47,230 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:45:47,230 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:45:47,230 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-31 14:45:47,231 INFO L207 CegarAbsIntRunner]: [0], [6], [20], [24], [25] [2019-01-31 14:45:47,232 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:45:47,232 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:45:47,240 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:45:47,241 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 66 root evaluator evaluations with a maximum evaluation depth of 3. Performed 66 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-31 14:45:47,241 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:45:47,241 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:45:47,241 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:45:47,241 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 23 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 23 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:45:47,251 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:45:47,252 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:45:47,257 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:47,263 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:45:47,263 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:45:47,287 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 18 treesize of output 21 [2019-01-31 14:45:47,293 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:47,294 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 21 treesize of output 27 [2019-01-31 14:45:47,304 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:47,305 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:47,306 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:45:47,320 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:47,322 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:47,323 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:47,324 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:45:47,343 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:47,344 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:47,346 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:47,347 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:47,348 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:45:47,352 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:47,383 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:47,401 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:47,415 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:47,427 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:45:47,451 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:47,452 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 3 variables, input treesize:31, output treesize:38 [2019-01-31 14:45:47,461 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:47,461 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_122|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store (store |v_#memory_int_122| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:45:47,462 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:45:47,521 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:47,522 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:47,524 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:47,525 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:47,527 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:47,529 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:47,530 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:47,531 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:47,533 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:47,534 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:47,536 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:47,537 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 72 [2019-01-31 14:45:47,540 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:47,590 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:47,590 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:48, output treesize:38 [2019-01-31 14:45:57,606 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:57,607 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_123|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_123| ULTIMATE.start_main_p5))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (select |v_#memory_int_123| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_123| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_123| ULTIMATE.start_main_p1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= |#memory_int| (store |v_#memory_int_123| ULTIMATE.start_main_p5 (+ .cse0 1))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 (select |v_#memory_int_123| ULTIMATE.start_main_p3)))) [2019-01-31 14:45:57,607 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:45:57,941 WARN L181 SmtUtils]: Spent 109.00 ms on a formula simplification that was a NOOP. DAG size: 25 [2019-01-31 14:45:58,048 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:58,049 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:58,050 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:58,051 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:58,053 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:58,054 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:58,056 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:58,057 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:58,059 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:58,060 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:58,061 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:58,063 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:45:58,064 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:45:58,065 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 80 [2019-01-31 14:45:58,067 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:45:58,125 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:45:58,125 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:48, output treesize:38 [2019-01-31 14:45:58,166 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:45:58,166 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_124|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_124| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_124| ULTIMATE.start_main_p1 (+ .cse0 1))) (= 0 (select |v_#memory_int_124| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= 0 (select |v_#memory_int_124| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |v_#memory_int_124| ULTIMATE.start_main_p4) 0) (= 0 .cse0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_124| ULTIMATE.start_main_p5) 1))) [2019-01-31 14:45:58,166 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:45:58,223 INFO L273 TraceCheckUtils]: 0: Hoare triple {5513#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {5521#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:45:58,227 INFO L273 TraceCheckUtils]: 1: Hoare triple {5521#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {5525#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:45:58,230 INFO L273 TraceCheckUtils]: 2: Hoare triple {5525#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {5529#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-31 14:45:58,231 INFO L273 TraceCheckUtils]: 3: Hoare triple {5529#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p1] >= 0; {5529#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-31 14:45:58,232 INFO L273 TraceCheckUtils]: 4: Hoare triple {5529#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume !(#memory_int[main_p2] <= 0); {5514#false} is VALID [2019-01-31 14:45:58,232 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:58,232 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:45:58,273 INFO L273 TraceCheckUtils]: 4: Hoare triple {5536#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {5514#false} is VALID [2019-01-31 14:45:58,273 INFO L273 TraceCheckUtils]: 3: Hoare triple {5536#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {5536#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:45:58,275 INFO L273 TraceCheckUtils]: 2: Hoare triple {5543#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {5536#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:45:58,276 INFO L273 TraceCheckUtils]: 1: Hoare triple {5547#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {5543#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:45:58,279 INFO L273 TraceCheckUtils]: 0: Hoare triple {5513#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {5547#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:45:58,279 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:45:58,299 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:45:58,299 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:45:58,299 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:45:58,300 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:45:58,300 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:45:58,300 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:45:58,319 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:45:58,319 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:45:58,320 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:45:58,320 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=43, Invalid=67, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:45:58,320 INFO L87 Difference]: Start difference. First operand 38 states and 132 transitions. Second operand 8 states. [2019-01-31 14:45:59,867 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:45:59,868 INFO L93 Difference]: Finished difference Result 66 states and 183 transitions. [2019-01-31 14:45:59,868 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-31 14:45:59,868 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:45:59,868 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:45:59,868 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:45:59,869 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 58 transitions. [2019-01-31 14:45:59,869 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:45:59,870 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 58 transitions. [2019-01-31 14:45:59,870 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 58 transitions. [2019-01-31 14:45:59,985 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 58 edges. 58 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:45:59,987 INFO L225 Difference]: With dead ends: 66 [2019-01-31 14:45:59,987 INFO L226 Difference]: Without dead ends: 65 [2019-01-31 14:45:59,987 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 2 SyntacticMatches, 1 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=61, Invalid=95, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:45:59,988 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 65 states. [2019-01-31 14:46:00,284 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 65 to 41. [2019-01-31 14:46:00,284 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:46:00,284 INFO L82 GeneralOperation]: Start isEquivalent. First operand 65 states. Second operand 41 states. [2019-01-31 14:46:00,284 INFO L74 IsIncluded]: Start isIncluded. First operand 65 states. Second operand 41 states. [2019-01-31 14:46:00,284 INFO L87 Difference]: Start difference. First operand 65 states. Second operand 41 states. [2019-01-31 14:46:00,286 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:46:00,287 INFO L93 Difference]: Finished difference Result 65 states and 181 transitions. [2019-01-31 14:46:00,287 INFO L276 IsEmpty]: Start isEmpty. Operand 65 states and 181 transitions. [2019-01-31 14:46:00,287 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:46:00,287 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:46:00,287 INFO L74 IsIncluded]: Start isIncluded. First operand 41 states. Second operand 65 states. [2019-01-31 14:46:00,287 INFO L87 Difference]: Start difference. First operand 41 states. Second operand 65 states. [2019-01-31 14:46:00,288 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:46:00,288 INFO L93 Difference]: Finished difference Result 65 states and 181 transitions. [2019-01-31 14:46:00,288 INFO L276 IsEmpty]: Start isEmpty. Operand 65 states and 181 transitions. [2019-01-31 14:46:00,289 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:46:00,289 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:46:00,289 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:46:00,289 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:46:00,289 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 41 states. [2019-01-31 14:46:00,290 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 41 states to 41 states and 150 transitions. [2019-01-31 14:46:00,290 INFO L78 Accepts]: Start accepts. Automaton has 41 states and 150 transitions. Word has length 5 [2019-01-31 14:46:00,290 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:46:00,290 INFO L480 AbstractCegarLoop]: Abstraction has 41 states and 150 transitions. [2019-01-31 14:46:00,290 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:46:00,290 INFO L276 IsEmpty]: Start isEmpty. Operand 41 states and 150 transitions. [2019-01-31 14:46:00,291 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:46:00,291 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:46:00,291 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:46:00,291 INFO L423 AbstractCegarLoop]: === Iteration 26 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:46:00,291 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:46:00,291 INFO L82 PathProgramCache]: Analyzing trace with hash 29231070, now seen corresponding path program 1 times [2019-01-31 14:46:00,291 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:46:00,292 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:46:00,292 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:46:00,292 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:46:00,292 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:46:00,296 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:46:00,547 INFO L273 TraceCheckUtils]: 0: Hoare triple {5837#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {5839#(and (<= (+ ULTIMATE.start_main_p1 4) ULTIMATE.start_main_p5) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:46:00,548 INFO L273 TraceCheckUtils]: 1: Hoare triple {5839#(and (<= (+ ULTIMATE.start_main_p1 4) ULTIMATE.start_main_p5) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {5840#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:46:00,549 INFO L273 TraceCheckUtils]: 2: Hoare triple {5840#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {5841#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:46:00,550 INFO L273 TraceCheckUtils]: 3: Hoare triple {5841#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {5842#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:46:00,551 INFO L273 TraceCheckUtils]: 4: Hoare triple {5842#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {5838#false} is VALID [2019-01-31 14:46:00,552 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:46:00,552 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:46:00,552 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:46:00,552 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-31 14:46:00,552 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [20], [23] [2019-01-31 14:46:00,554 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:46:00,554 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:46:00,567 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:46:00,567 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 66 root evaluator evaluations with a maximum evaluation depth of 3. Performed 66 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-31 14:46:00,567 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:46:00,567 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:46:00,568 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:46:00,568 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 24 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 24 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:46:00,577 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:46:00,578 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:46:00,582 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:46:00,588 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:46:00,588 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:46:00,614 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 18 treesize of output 21 [2019-01-31 14:46:00,627 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,628 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 21 treesize of output 27 [2019-01-31 14:46:00,638 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,639 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,640 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:46:00,661 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,662 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,664 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,665 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:46:00,683 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,684 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,686 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,687 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,688 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:46:00,691 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:00,723 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:00,741 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:00,755 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:00,768 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:00,792 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:00,792 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 3 variables, input treesize:31, output treesize:38 [2019-01-31 14:46:00,801 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:00,802 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_127|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= |#memory_int| (store (store (store (store (store |v_#memory_int_127| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:46:00,802 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:46:00,864 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,866 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,867 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,869 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,870 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,871 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,873 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,874 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,875 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,877 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,878 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:00,879 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 72 [2019-01-31 14:46:00,882 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:00,931 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:00,931 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:48, output treesize:38 [2019-01-31 14:46:10,943 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:10,943 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_128|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_128| ULTIMATE.start_main_p5))) (and (= 0 .cse0) (= (select |v_#memory_int_128| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_128| ULTIMATE.start_main_p1) 0) (= 0 (select |v_#memory_int_128| ULTIMATE.start_main_p3)) (= (store |v_#memory_int_128| ULTIMATE.start_main_p5 (+ .cse0 1)) |#memory_int|) (= (select |v_#memory_int_128| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:46:10,944 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:46:11,023 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:11,024 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:11,026 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:11,027 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:11,029 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:11,030 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:11,031 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:11,033 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:11,034 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:11,036 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:11,037 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:11,038 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:11,039 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:46:11,040 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 80 [2019-01-31 14:46:11,043 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:11,097 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:11,098 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:48, output treesize:38 [2019-01-31 14:46:11,114 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:11,114 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_129|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_129| ULTIMATE.start_main_p1))) (and (= .cse0 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_129| ULTIMATE.start_main_p2) 0) (= 1 (select |v_#memory_int_129| ULTIMATE.start_main_p5)) (= (select |v_#memory_int_129| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (store |v_#memory_int_129| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_129| ULTIMATE.start_main_p4) 0))) [2019-01-31 14:46:11,115 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:46:11,214 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:11,215 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:11,216 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:11,218 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:11,219 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:11,221 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:11,222 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:11,224 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:11,225 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:11,227 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:11,228 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:11,229 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:11,231 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:11,232 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 86 [2019-01-31 14:46:11,235 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:11,289 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:11,289 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:48, output treesize:38 [2019-01-31 14:46:11,316 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:11,317 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_130|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_130| ULTIMATE.start_main_p2))) (and (= 0 .cse0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |v_#memory_int_130| ULTIMATE.start_main_p5)) (= 0 (select |v_#memory_int_130| ULTIMATE.start_main_p4)) (= |#memory_int| (store |v_#memory_int_130| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= 1 (select |v_#memory_int_130| ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_130| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:46:11,317 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:46:11,422 INFO L273 TraceCheckUtils]: 0: Hoare triple {5837#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {5846#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:46:11,424 INFO L273 TraceCheckUtils]: 1: Hoare triple {5846#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {5850#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:46:11,427 INFO L273 TraceCheckUtils]: 2: Hoare triple {5850#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {5854#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:46:11,434 INFO L273 TraceCheckUtils]: 3: Hoare triple {5854#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {5858#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-31 14:46:11,435 INFO L273 TraceCheckUtils]: 4: Hoare triple {5858#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {5838#false} is VALID [2019-01-31 14:46:11,435 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:46:11,436 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:46:11,502 INFO L273 TraceCheckUtils]: 4: Hoare triple {5862#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {5838#false} is VALID [2019-01-31 14:46:11,503 INFO L273 TraceCheckUtils]: 3: Hoare triple {5866#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {5862#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:46:11,506 INFO L273 TraceCheckUtils]: 2: Hoare triple {5870#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {5866#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:46:11,508 INFO L273 TraceCheckUtils]: 1: Hoare triple {5874#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {5870#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:46:11,510 INFO L273 TraceCheckUtils]: 0: Hoare triple {5837#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {5874#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:46:11,510 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 5 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:46:11,531 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:46:11,532 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-31 14:46:11,532 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:46:11,532 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-31 14:46:11,532 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:46:11,532 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-31 14:46:11,554 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:46:11,555 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-31 14:46:11,555 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-31 14:46:11,555 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=71, Invalid=111, Unknown=0, NotChecked=0, Total=182 [2019-01-31 14:46:11,555 INFO L87 Difference]: Start difference. First operand 41 states and 150 transitions. Second operand 10 states. [2019-01-31 14:46:13,298 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:46:13,298 INFO L93 Difference]: Finished difference Result 93 states and 253 transitions. [2019-01-31 14:46:13,298 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-31 14:46:13,298 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-31 14:46:13,299 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:46:13,299 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:46:13,299 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 85 transitions. [2019-01-31 14:46:13,299 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:46:13,300 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 85 transitions. [2019-01-31 14:46:13,300 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 85 transitions. [2019-01-31 14:46:13,522 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 85 edges. 85 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:46:13,524 INFO L225 Difference]: With dead ends: 93 [2019-01-31 14:46:13,524 INFO L226 Difference]: Without dead ends: 92 [2019-01-31 14:46:13,524 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 59 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=89, Invalid=151, Unknown=0, NotChecked=0, Total=240 [2019-01-31 14:46:13,524 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 92 states. [2019-01-31 14:46:13,932 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 92 to 48. [2019-01-31 14:46:13,932 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:46:13,932 INFO L82 GeneralOperation]: Start isEquivalent. First operand 92 states. Second operand 48 states. [2019-01-31 14:46:13,932 INFO L74 IsIncluded]: Start isIncluded. First operand 92 states. Second operand 48 states. [2019-01-31 14:46:13,933 INFO L87 Difference]: Start difference. First operand 92 states. Second operand 48 states. [2019-01-31 14:46:13,935 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:46:13,935 INFO L93 Difference]: Finished difference Result 92 states and 251 transitions. [2019-01-31 14:46:13,935 INFO L276 IsEmpty]: Start isEmpty. Operand 92 states and 251 transitions. [2019-01-31 14:46:13,935 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:46:13,935 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:46:13,936 INFO L74 IsIncluded]: Start isIncluded. First operand 48 states. Second operand 92 states. [2019-01-31 14:46:13,936 INFO L87 Difference]: Start difference. First operand 48 states. Second operand 92 states. [2019-01-31 14:46:13,937 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:46:13,938 INFO L93 Difference]: Finished difference Result 92 states and 251 transitions. [2019-01-31 14:46:13,938 INFO L276 IsEmpty]: Start isEmpty. Operand 92 states and 251 transitions. [2019-01-31 14:46:13,938 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:46:13,938 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:46:13,938 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:46:13,938 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:46:13,938 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 48 states. [2019-01-31 14:46:13,939 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 48 states to 48 states and 192 transitions. [2019-01-31 14:46:13,939 INFO L78 Accepts]: Start accepts. Automaton has 48 states and 192 transitions. Word has length 5 [2019-01-31 14:46:13,940 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:46:13,940 INFO L480 AbstractCegarLoop]: Abstraction has 48 states and 192 transitions. [2019-01-31 14:46:13,940 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-31 14:46:13,940 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 192 transitions. [2019-01-31 14:46:13,940 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:46:13,940 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:46:13,940 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:46:13,940 INFO L423 AbstractCegarLoop]: === Iteration 27 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:46:13,940 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:46:13,941 INFO L82 PathProgramCache]: Analyzing trace with hash 29248868, now seen corresponding path program 1 times [2019-01-31 14:46:13,941 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:46:13,941 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:46:13,941 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:46:13,942 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:46:13,942 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:46:13,944 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:46:14,011 INFO L273 TraceCheckUtils]: 0: Hoare triple {6268#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {6270#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:46:14,012 INFO L273 TraceCheckUtils]: 1: Hoare triple {6270#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {6271#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-31 14:46:14,012 INFO L273 TraceCheckUtils]: 2: Hoare triple {6271#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p1] >= 0; {6271#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-31 14:46:14,013 INFO L273 TraceCheckUtils]: 3: Hoare triple {6271#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p2] <= 0; {6271#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-31 14:46:14,013 INFO L273 TraceCheckUtils]: 4: Hoare triple {6271#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume !(#memory_int[main_p3] >= 0); {6269#false} is VALID [2019-01-31 14:46:14,014 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:46:14,014 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:46:14,014 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:46:14,014 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-31 14:46:14,014 INFO L207 CegarAbsIntRunner]: [0], [20], [24], [26], [27] [2019-01-31 14:46:14,015 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:46:14,015 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:46:14,035 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:46:14,035 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 66 root evaluator evaluations with a maximum evaluation depth of 3. Performed 66 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-31 14:46:14,036 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:46:14,036 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:46:14,036 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:46:14,036 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 25 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 25 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:46:14,046 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:46:14,046 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:46:14,050 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:46:14,056 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:46:14,057 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:46:14,080 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 18 treesize of output 21 [2019-01-31 14:46:14,086 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 23 [2019-01-31 14:46:14,094 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 25 [2019-01-31 14:46:14,108 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:14,109 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 1 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 31 [2019-01-31 14:46:14,122 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:14,130 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:14,131 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 3 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 38 [2019-01-31 14:46:14,134 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:14,151 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:14,164 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:14,175 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:14,187 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:14,206 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:14,206 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 4 variables, input treesize:25, output treesize:32 [2019-01-31 14:46:14,215 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:14,215 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_134|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (and (= (store (store (store (store (store |v_#memory_int_134| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5)) [2019-01-31 14:46:14,215 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:46:14,266 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:14,267 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:14,269 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:14,270 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:14,271 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 34 [2019-01-31 14:46:14,273 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:14,300 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:14,301 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:32, output treesize:22 [2019-01-31 14:46:14,308 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:14,308 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_135|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_135| ULTIMATE.start_main_p5))) (and (= (select |v_#memory_int_135| ULTIMATE.start_main_p3) 0) (= (store |v_#memory_int_135| ULTIMATE.start_main_p5 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_135| ULTIMATE.start_main_p4)) (= 0 .cse0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) [2019-01-31 14:46:14,309 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:46:14,354 INFO L273 TraceCheckUtils]: 0: Hoare triple {6268#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {6275#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-31 14:46:14,356 INFO L273 TraceCheckUtils]: 1: Hoare triple {6275#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {6279#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-31 14:46:14,357 INFO L273 TraceCheckUtils]: 2: Hoare triple {6279#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p1] >= 0; {6279#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-31 14:46:14,358 INFO L273 TraceCheckUtils]: 3: Hoare triple {6279#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p2] <= 0; {6279#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-31 14:46:14,359 INFO L273 TraceCheckUtils]: 4: Hoare triple {6279#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume !(#memory_int[main_p3] >= 0); {6269#false} is VALID [2019-01-31 14:46:14,359 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:46:14,359 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:46:14,381 INFO L273 TraceCheckUtils]: 4: Hoare triple {6289#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {6269#false} is VALID [2019-01-31 14:46:14,382 INFO L273 TraceCheckUtils]: 3: Hoare triple {6289#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {6289#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:46:14,382 INFO L273 TraceCheckUtils]: 2: Hoare triple {6289#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {6289#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:46:14,384 INFO L273 TraceCheckUtils]: 1: Hoare triple {6299#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {6289#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:46:14,386 INFO L273 TraceCheckUtils]: 0: Hoare triple {6268#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {6299#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:46:14,386 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:46:14,406 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-01-31 14:46:14,406 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [2, 2] total 6 [2019-01-31 14:46:14,406 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-31 14:46:14,407 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 5 [2019-01-31 14:46:14,407 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:46:14,407 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-01-31 14:46:14,413 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 5 edges. 5 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:46:14,413 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-01-31 14:46:14,413 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-01-31 14:46:14,414 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=26, Invalid=30, Unknown=0, NotChecked=0, Total=56 [2019-01-31 14:46:14,414 INFO L87 Difference]: Start difference. First operand 48 states and 192 transitions. Second operand 4 states. [2019-01-31 14:46:15,023 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:46:15,023 INFO L93 Difference]: Finished difference Result 56 states and 215 transitions. [2019-01-31 14:46:15,023 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-31 14:46:15,024 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 5 [2019-01-31 14:46:15,024 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:46:15,024 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-31 14:46:15,024 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 25 transitions. [2019-01-31 14:46:15,024 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-31 14:46:15,025 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 25 transitions. [2019-01-31 14:46:15,025 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 25 transitions. [2019-01-31 14:46:15,050 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 25 edges. 25 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:46:15,051 INFO L225 Difference]: With dead ends: 56 [2019-01-31 14:46:15,052 INFO L226 Difference]: Without dead ends: 55 [2019-01-31 14:46:15,052 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 10 GetRequests, 4 SyntacticMatches, 0 SemanticMatches, 6 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=26, Invalid=30, Unknown=0, NotChecked=0, Total=56 [2019-01-31 14:46:15,053 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 55 states. [2019-01-31 14:46:15,518 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 55 to 52. [2019-01-31 14:46:15,519 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:46:15,519 INFO L82 GeneralOperation]: Start isEquivalent. First operand 55 states. Second operand 52 states. [2019-01-31 14:46:15,519 INFO L74 IsIncluded]: Start isIncluded. First operand 55 states. Second operand 52 states. [2019-01-31 14:46:15,519 INFO L87 Difference]: Start difference. First operand 55 states. Second operand 52 states. [2019-01-31 14:46:15,521 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:46:15,521 INFO L93 Difference]: Finished difference Result 55 states and 213 transitions. [2019-01-31 14:46:15,521 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 213 transitions. [2019-01-31 14:46:15,521 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:46:15,521 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:46:15,521 INFO L74 IsIncluded]: Start isIncluded. First operand 52 states. Second operand 55 states. [2019-01-31 14:46:15,522 INFO L87 Difference]: Start difference. First operand 52 states. Second operand 55 states. [2019-01-31 14:46:15,523 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:46:15,523 INFO L93 Difference]: Finished difference Result 55 states and 213 transitions. [2019-01-31 14:46:15,523 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 213 transitions. [2019-01-31 14:46:15,523 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:46:15,523 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:46:15,523 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:46:15,523 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:46:15,523 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 52 states. [2019-01-31 14:46:15,524 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 52 states to 52 states and 211 transitions. [2019-01-31 14:46:15,525 INFO L78 Accepts]: Start accepts. Automaton has 52 states and 211 transitions. Word has length 5 [2019-01-31 14:46:15,525 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:46:15,525 INFO L480 AbstractCegarLoop]: Abstraction has 52 states and 211 transitions. [2019-01-31 14:46:15,525 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-01-31 14:46:15,525 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 211 transitions. [2019-01-31 14:46:15,525 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:46:15,525 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:46:15,525 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:46:15,526 INFO L423 AbstractCegarLoop]: === Iteration 28 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:46:15,526 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:46:15,526 INFO L82 PathProgramCache]: Analyzing trace with hash 29235350, now seen corresponding path program 1 times [2019-01-31 14:46:15,526 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:46:15,527 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:46:15,527 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:46:15,527 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:46:15,527 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:46:15,530 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:46:15,602 INFO L273 TraceCheckUtils]: 0: Hoare triple {6584#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {6586#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:46:15,603 INFO L273 TraceCheckUtils]: 1: Hoare triple {6586#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {6587#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:46:15,604 INFO L273 TraceCheckUtils]: 2: Hoare triple {6587#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {6588#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-01-31 14:46:15,604 INFO L273 TraceCheckUtils]: 3: Hoare triple {6588#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume #memory_int[main_p1] >= 0; {6588#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-01-31 14:46:15,605 INFO L273 TraceCheckUtils]: 4: Hoare triple {6588#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume !(#memory_int[main_p2] <= 0); {6585#false} is VALID [2019-01-31 14:46:15,605 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:46:15,605 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:46:15,605 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:46:15,605 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-31 14:46:15,606 INFO L207 CegarAbsIntRunner]: [0], [10], [20], [24], [25] [2019-01-31 14:46:15,606 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:46:15,606 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:46:15,616 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:46:15,617 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 66 root evaluator evaluations with a maximum evaluation depth of 3. Performed 66 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-31 14:46:15,617 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:46:15,617 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:46:15,618 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:46:15,618 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 26 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 26 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:46:15,628 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:46:15,628 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:46:15,633 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:46:15,637 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:46:15,638 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:46:15,663 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 18 treesize of output 21 [2019-01-31 14:46:15,670 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 23 [2019-01-31 14:46:15,681 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:15,682 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 23 treesize of output 29 [2019-01-31 14:46:15,698 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:15,699 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:15,700 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 39 [2019-01-31 14:46:15,717 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:15,723 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:15,725 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:15,726 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 50 [2019-01-31 14:46:15,737 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:15,757 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:15,772 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:15,784 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:15,796 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:15,819 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:15,820 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 4 variables, input treesize:28, output treesize:35 [2019-01-31 14:46:15,831 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:15,832 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_137|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= |#memory_int| (store (store (store (store (store |v_#memory_int_137| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:46:15,832 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:46:15,892 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:15,894 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:15,895 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:15,896 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:15,898 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:15,899 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:15,900 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:15,901 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-31 14:46:15,936 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:15,967 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:15,968 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-31 14:46:25,973 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:25,974 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_138|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_138| ULTIMATE.start_main_p5))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_138| ULTIMATE.start_main_p3)) (= (store |v_#memory_int_138| ULTIMATE.start_main_p5 (+ .cse0 1)) |#memory_int|) (= 0 .cse0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 (select |v_#memory_int_138| ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_138| ULTIMATE.start_main_p4)))) [2019-01-31 14:46:25,974 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:46:26,030 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:26,032 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:26,033 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:26,034 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:26,036 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:26,037 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:26,038 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:26,039 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:26,041 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:26,044 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 65 [2019-01-31 14:46:26,051 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:26,087 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:26,087 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-31 14:46:26,101 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:26,101 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_139|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_139| ULTIMATE.start_main_p2))) (and (= (select |v_#memory_int_139| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_139| ULTIMATE.start_main_p5) 1) (= (select |v_#memory_int_139| ULTIMATE.start_main_p4) 0) (= .cse0 0) (= (store |v_#memory_int_139| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-31 14:46:26,101 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:46:26,155 INFO L273 TraceCheckUtils]: 0: Hoare triple {6584#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {6592#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:46:26,157 INFO L273 TraceCheckUtils]: 1: Hoare triple {6592#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {6596#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-31 14:46:26,160 INFO L273 TraceCheckUtils]: 2: Hoare triple {6596#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {6600#(and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-31 14:46:26,161 INFO L273 TraceCheckUtils]: 3: Hoare triple {6600#(and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p1] >= 0; {6600#(and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-31 14:46:26,161 INFO L273 TraceCheckUtils]: 4: Hoare triple {6600#(and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume !(#memory_int[main_p2] <= 0); {6585#false} is VALID [2019-01-31 14:46:26,162 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:46:26,162 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:46:26,198 INFO L273 TraceCheckUtils]: 4: Hoare triple {6607#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {6585#false} is VALID [2019-01-31 14:46:26,198 INFO L273 TraceCheckUtils]: 3: Hoare triple {6607#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {6607#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:46:26,199 INFO L273 TraceCheckUtils]: 2: Hoare triple {6614#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {6607#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:46:26,201 INFO L273 TraceCheckUtils]: 1: Hoare triple {6618#(<= (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {6614#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} is VALID [2019-01-31 14:46:26,203 INFO L273 TraceCheckUtils]: 0: Hoare triple {6584#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {6618#(<= (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) 1)} is VALID [2019-01-31 14:46:26,203 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:46:26,224 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:46:26,225 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:46:26,225 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:46:26,226 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:46:26,226 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:46:26,226 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:46:26,243 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:46:26,244 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:46:26,244 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:46:26,244 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:46:26,244 INFO L87 Difference]: Start difference. First operand 52 states and 211 transitions. Second operand 8 states. [2019-01-31 14:46:28,305 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:46:28,305 INFO L93 Difference]: Finished difference Result 85 states and 266 transitions. [2019-01-31 14:46:28,305 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-31 14:46:28,305 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:46:28,306 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:46:28,306 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:46:28,306 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 68 transitions. [2019-01-31 14:46:28,307 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:46:28,307 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 68 transitions. [2019-01-31 14:46:28,307 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 68 transitions. [2019-01-31 14:46:28,412 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 68 edges. 68 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:46:28,415 INFO L225 Difference]: With dead ends: 85 [2019-01-31 14:46:28,415 INFO L226 Difference]: Without dead ends: 84 [2019-01-31 14:46:28,415 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 12 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 27 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=53, Invalid=79, Unknown=0, NotChecked=0, Total=132 [2019-01-31 14:46:28,415 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 84 states. [2019-01-31 14:46:28,929 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 84 to 54. [2019-01-31 14:46:28,930 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:46:28,930 INFO L82 GeneralOperation]: Start isEquivalent. First operand 84 states. Second operand 54 states. [2019-01-31 14:46:28,930 INFO L74 IsIncluded]: Start isIncluded. First operand 84 states. Second operand 54 states. [2019-01-31 14:46:28,930 INFO L87 Difference]: Start difference. First operand 84 states. Second operand 54 states. [2019-01-31 14:46:28,932 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:46:28,932 INFO L93 Difference]: Finished difference Result 84 states and 264 transitions. [2019-01-31 14:46:28,933 INFO L276 IsEmpty]: Start isEmpty. Operand 84 states and 264 transitions. [2019-01-31 14:46:28,933 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:46:28,933 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:46:28,933 INFO L74 IsIncluded]: Start isIncluded. First operand 54 states. Second operand 84 states. [2019-01-31 14:46:28,933 INFO L87 Difference]: Start difference. First operand 54 states. Second operand 84 states. [2019-01-31 14:46:28,935 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:46:28,936 INFO L93 Difference]: Finished difference Result 84 states and 264 transitions. [2019-01-31 14:46:28,936 INFO L276 IsEmpty]: Start isEmpty. Operand 84 states and 264 transitions. [2019-01-31 14:46:28,936 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:46:28,936 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:46:28,936 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:46:28,936 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:46:28,937 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 54 states. [2019-01-31 14:46:28,938 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 54 states to 54 states and 223 transitions. [2019-01-31 14:46:28,938 INFO L78 Accepts]: Start accepts. Automaton has 54 states and 223 transitions. Word has length 5 [2019-01-31 14:46:28,938 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:46:28,938 INFO L480 AbstractCegarLoop]: Abstraction has 54 states and 223 transitions. [2019-01-31 14:46:28,939 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:46:28,939 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 223 transitions. [2019-01-31 14:46:28,939 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:46:28,939 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:46:28,939 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:46:28,939 INFO L423 AbstractCegarLoop]: === Iteration 29 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:46:28,940 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:46:28,940 INFO L82 PathProgramCache]: Analyzing trace with hash 29235038, now seen corresponding path program 1 times [2019-01-31 14:46:28,940 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:46:28,941 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:46:28,941 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:46:28,941 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:46:28,941 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:46:28,946 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:46:29,164 INFO L273 TraceCheckUtils]: 0: Hoare triple {7001#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {7003#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:46:29,166 INFO L273 TraceCheckUtils]: 1: Hoare triple {7003#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {7004#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:46:29,167 INFO L273 TraceCheckUtils]: 2: Hoare triple {7004#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {7005#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:46:29,168 INFO L273 TraceCheckUtils]: 3: Hoare triple {7005#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {7006#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-31 14:46:29,169 INFO L273 TraceCheckUtils]: 4: Hoare triple {7006#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {7002#false} is VALID [2019-01-31 14:46:29,169 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:46:29,170 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:46:29,170 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:46:29,170 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-31 14:46:29,171 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [20], [23] [2019-01-31 14:46:29,171 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:46:29,172 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:46:29,180 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:46:29,180 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 66 root evaluator evaluations with a maximum evaluation depth of 3. Performed 66 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-31 14:46:29,181 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:46:29,181 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:46:29,181 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:46:29,181 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 27 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 27 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:46:29,191 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:46:29,191 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:46:29,196 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:46:29,203 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:46:29,203 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:46:29,228 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 18 treesize of output 21 [2019-01-31 14:46:29,235 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:29,236 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 21 treesize of output 27 [2019-01-31 14:46:29,245 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:29,247 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:29,248 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:46:29,263 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:29,264 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:29,265 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:29,266 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:46:29,285 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:29,287 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:29,289 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:29,290 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:29,291 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:46:29,295 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:29,326 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:29,345 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:29,359 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:29,390 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:29,411 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:29,411 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 2 variables, input treesize:31, output treesize:38 [2019-01-31 14:46:29,422 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:29,422 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_142|, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store (store |v_#memory_int_142| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:46:29,422 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:46:29,482 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:29,484 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:29,485 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:29,486 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:29,488 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:29,489 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:29,491 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:29,492 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:29,493 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:29,495 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:29,496 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:29,497 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 72 [2019-01-31 14:46:29,500 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:29,550 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:29,550 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:48, output treesize:38 [2019-01-31 14:46:32,066 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:32,067 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_143|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_143| ULTIMATE.start_main_p5))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_143| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_143| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_143| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= 0 .cse0) (= 0 (select |v_#memory_int_143| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (store |v_#memory_int_143| ULTIMATE.start_main_p5 (+ .cse0 1)) |#memory_int|))) [2019-01-31 14:46:32,067 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:46:32,171 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:32,172 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:32,173 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:32,175 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:32,176 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:32,178 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:32,179 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:32,181 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:32,182 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:32,184 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:32,185 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:32,186 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:32,188 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:32,189 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 86 [2019-01-31 14:46:32,192 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:32,249 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:32,249 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:48, output treesize:38 [2019-01-31 14:46:32,282 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:32,282 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_144|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_144| ULTIMATE.start_main_p2))) (and (= 0 (select |v_#memory_int_144| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_144| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= (select |v_#memory_int_144| ULTIMATE.start_main_p1) 0) (= 1 (select |v_#memory_int_144| ULTIMATE.start_main_p5)) (= 0 (select |v_#memory_int_144| ULTIMATE.start_main_p4)) (= 0 .cse0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:46:32,282 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:46:32,342 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:32,343 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:32,345 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:32,346 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:32,348 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:32,349 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:32,351 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:32,352 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:32,354 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:32,355 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:32,357 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:32,358 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:32,359 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:32,360 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:32,361 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:46:32,362 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 98 [2019-01-31 14:46:32,366 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:32,464 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:32,464 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:50, output treesize:40 [2019-01-31 14:46:43,479 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:43,479 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_145|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_145| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_145| ULTIMATE.start_main_p4)) (= 0 (+ (select |v_#memory_int_145| ULTIMATE.start_main_p2) 1)) (= 0 (select |v_#memory_int_145| ULTIMATE.start_main_p1)) (= 0 .cse0) (= 1 (select |v_#memory_int_145| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= |#memory_int| (store |v_#memory_int_145| ULTIMATE.start_main_p3 (+ .cse0 1))))) [2019-01-31 14:46:43,479 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-31 14:46:43,746 INFO L273 TraceCheckUtils]: 0: Hoare triple {7001#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {7010#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:46:43,749 INFO L273 TraceCheckUtils]: 1: Hoare triple {7010#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {7014#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:46:43,752 INFO L273 TraceCheckUtils]: 2: Hoare triple {7014#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {7018#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-31 14:46:43,758 INFO L273 TraceCheckUtils]: 3: Hoare triple {7018#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {7022#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-31 14:46:43,759 INFO L273 TraceCheckUtils]: 4: Hoare triple {7022#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume !(#memory_int[main_p1] >= 0); {7002#false} is VALID [2019-01-31 14:46:43,759 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:46:43,759 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:46:43,831 INFO L273 TraceCheckUtils]: 4: Hoare triple {7026#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {7002#false} is VALID [2019-01-31 14:46:43,832 INFO L273 TraceCheckUtils]: 3: Hoare triple {7030#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {7026#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:46:43,833 INFO L273 TraceCheckUtils]: 2: Hoare triple {7034#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {7030#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:46:43,836 INFO L273 TraceCheckUtils]: 1: Hoare triple {7038#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {7034#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:46:43,838 INFO L273 TraceCheckUtils]: 0: Hoare triple {7001#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {7038#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:46:43,839 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 2 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:46:43,859 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:46:43,859 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-31 14:46:43,859 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:46:43,859 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-31 14:46:43,860 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:46:43,860 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-31 14:46:43,877 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:46:43,877 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-31 14:46:43,878 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-31 14:46:43,878 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=68, Invalid=114, Unknown=0, NotChecked=0, Total=182 [2019-01-31 14:46:43,878 INFO L87 Difference]: Start difference. First operand 54 states and 223 transitions. Second operand 10 states. [2019-01-31 14:46:46,315 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:46:46,315 INFO L93 Difference]: Finished difference Result 96 states and 303 transitions. [2019-01-31 14:46:46,316 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-31 14:46:46,316 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-31 14:46:46,316 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:46:46,316 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:46:46,316 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 71 transitions. [2019-01-31 14:46:46,316 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:46:46,317 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 71 transitions. [2019-01-31 14:46:46,317 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 71 transitions. [2019-01-31 14:46:46,517 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 71 edges. 71 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:46:46,519 INFO L225 Difference]: With dead ends: 96 [2019-01-31 14:46:46,519 INFO L226 Difference]: Without dead ends: 94 [2019-01-31 14:46:46,520 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 15 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 62 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=101, Invalid=171, Unknown=0, NotChecked=0, Total=272 [2019-01-31 14:46:46,520 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 94 states. [2019-01-31 14:46:47,188 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 94 to 61. [2019-01-31 14:46:47,189 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:46:47,189 INFO L82 GeneralOperation]: Start isEquivalent. First operand 94 states. Second operand 61 states. [2019-01-31 14:46:47,189 INFO L74 IsIncluded]: Start isIncluded. First operand 94 states. Second operand 61 states. [2019-01-31 14:46:47,189 INFO L87 Difference]: Start difference. First operand 94 states. Second operand 61 states. [2019-01-31 14:46:47,192 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:46:47,192 INFO L93 Difference]: Finished difference Result 94 states and 300 transitions. [2019-01-31 14:46:47,192 INFO L276 IsEmpty]: Start isEmpty. Operand 94 states and 300 transitions. [2019-01-31 14:46:47,192 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:46:47,193 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:46:47,193 INFO L74 IsIncluded]: Start isIncluded. First operand 61 states. Second operand 94 states. [2019-01-31 14:46:47,193 INFO L87 Difference]: Start difference. First operand 61 states. Second operand 94 states. [2019-01-31 14:46:47,195 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:46:47,196 INFO L93 Difference]: Finished difference Result 94 states and 300 transitions. [2019-01-31 14:46:47,196 INFO L276 IsEmpty]: Start isEmpty. Operand 94 states and 300 transitions. [2019-01-31 14:46:47,196 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:46:47,196 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:46:47,197 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:46:47,197 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:46:47,197 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 61 states. [2019-01-31 14:46:47,199 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 61 states to 61 states and 265 transitions. [2019-01-31 14:46:47,199 INFO L78 Accepts]: Start accepts. Automaton has 61 states and 265 transitions. Word has length 5 [2019-01-31 14:46:47,199 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:46:47,199 INFO L480 AbstractCegarLoop]: Abstraction has 61 states and 265 transitions. [2019-01-31 14:46:47,199 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-31 14:46:47,200 INFO L276 IsEmpty]: Start isEmpty. Operand 61 states and 265 transitions. [2019-01-31 14:46:47,200 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:46:47,200 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:46:47,200 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:46:47,201 INFO L423 AbstractCegarLoop]: === Iteration 30 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:46:47,201 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:46:47,201 INFO L82 PathProgramCache]: Analyzing trace with hash 29239194, now seen corresponding path program 1 times [2019-01-31 14:46:47,201 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:46:47,202 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:46:47,202 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:46:47,202 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:46:47,202 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:46:47,208 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:46:47,522 INFO L273 TraceCheckUtils]: 0: Hoare triple {7475#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {7477#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:46:47,523 INFO L273 TraceCheckUtils]: 1: Hoare triple {7477#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {7478#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:46:47,524 INFO L273 TraceCheckUtils]: 2: Hoare triple {7478#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {7479#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:46:47,525 INFO L273 TraceCheckUtils]: 3: Hoare triple {7479#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {7479#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:46:47,525 INFO L273 TraceCheckUtils]: 4: Hoare triple {7479#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {7476#false} is VALID [2019-01-31 14:46:47,526 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:46:47,526 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:46:47,526 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:46:47,527 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-31 14:46:47,527 INFO L207 CegarAbsIntRunner]: [0], [14], [20], [24], [25] [2019-01-31 14:46:47,529 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:46:47,529 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:46:47,537 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:46:47,537 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 66 root evaluator evaluations with a maximum evaluation depth of 3. Performed 66 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-31 14:46:47,537 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:46:47,538 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:46:47,538 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:46:47,538 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 28 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 28 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:46:47,549 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:46:47,549 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:46:47,554 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:46:47,556 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:46:47,557 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:46:47,580 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 18 treesize of output 21 [2019-01-31 14:46:47,591 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 23 [2019-01-31 14:46:47,603 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:47,604 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 23 treesize of output 29 [2019-01-31 14:46:47,626 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:47,628 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:47,629 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 39 [2019-01-31 14:46:47,644 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:47,649 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:47,651 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:47,652 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 50 [2019-01-31 14:46:47,682 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:47,813 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:47,827 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:47,837 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:47,848 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:47,869 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:47,870 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 3 variables, input treesize:28, output treesize:35 [2019-01-31 14:46:47,877 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:47,877 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_149|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store (store |v_#memory_int_149| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:46:47,878 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:46:47,936 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:47,938 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:47,939 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:47,940 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:47,942 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:47,943 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:47,944 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:47,945 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-31 14:46:47,948 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:47,983 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:47,983 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-31 14:46:52,733 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:52,734 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_150|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_150| ULTIMATE.start_main_p5))) (and (= (select |v_#memory_int_150| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_150| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_150| ULTIMATE.start_main_p5 (+ .cse0 1)) |#memory_int|) (= 0 (select |v_#memory_int_150| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= .cse0 0))) [2019-01-31 14:46:52,734 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:46:52,787 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:52,789 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:52,790 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:52,791 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:52,793 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:52,794 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:52,795 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:52,796 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:52,797 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:46:52,798 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 59 [2019-01-31 14:46:52,800 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:52,838 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:52,838 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-31 14:46:52,848 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:52,848 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_151|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_151| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_151| ULTIMATE.start_main_p4)) (= 0 .cse0) (= (select |v_#memory_int_151| ULTIMATE.start_main_p2) 0) (= (store |v_#memory_int_151| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= (select |v_#memory_int_151| ULTIMATE.start_main_p5) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-31 14:46:52,848 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:46:52,899 INFO L273 TraceCheckUtils]: 0: Hoare triple {7475#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {7483#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:46:52,901 INFO L273 TraceCheckUtils]: 1: Hoare triple {7483#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {7487#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:46:52,903 INFO L273 TraceCheckUtils]: 2: Hoare triple {7487#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {7491#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:46:52,904 INFO L273 TraceCheckUtils]: 3: Hoare triple {7491#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume #memory_int[main_p1] >= 0; {7491#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:46:52,905 INFO L273 TraceCheckUtils]: 4: Hoare triple {7491#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume !(#memory_int[main_p2] <= 0); {7476#false} is VALID [2019-01-31 14:46:52,905 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:46:52,905 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:46:52,943 INFO L273 TraceCheckUtils]: 4: Hoare triple {7498#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {7476#false} is VALID [2019-01-31 14:46:52,944 INFO L273 TraceCheckUtils]: 3: Hoare triple {7498#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {7498#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:46:52,945 INFO L273 TraceCheckUtils]: 2: Hoare triple {7505#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {7498#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:46:52,947 INFO L273 TraceCheckUtils]: 1: Hoare triple {7509#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {7505#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:46:52,949 INFO L273 TraceCheckUtils]: 0: Hoare triple {7475#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {7509#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:46:52,950 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:46:52,970 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:46:52,971 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:46:52,971 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:46:52,971 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:46:52,971 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:46:52,971 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:46:52,990 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:46:52,991 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:46:52,991 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:46:52,991 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=43, Invalid=67, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:46:52,991 INFO L87 Difference]: Start difference. First operand 61 states and 265 transitions. Second operand 8 states. [2019-01-31 14:46:54,303 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:46:54,303 INFO L93 Difference]: Finished difference Result 82 states and 289 transitions. [2019-01-31 14:46:54,304 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-31 14:46:54,304 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:46:54,304 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:46:54,304 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:46:54,305 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 55 transitions. [2019-01-31 14:46:54,305 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:46:54,305 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 55 transitions. [2019-01-31 14:46:54,305 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 55 transitions. [2019-01-31 14:46:54,395 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 55 edges. 55 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:46:54,397 INFO L225 Difference]: With dead ends: 82 [2019-01-31 14:46:54,397 INFO L226 Difference]: Without dead ends: 81 [2019-01-31 14:46:54,398 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 13 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=61, Invalid=95, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:46:54,398 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 81 states. [2019-01-31 14:46:54,997 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 81 to 61. [2019-01-31 14:46:54,998 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:46:54,998 INFO L82 GeneralOperation]: Start isEquivalent. First operand 81 states. Second operand 61 states. [2019-01-31 14:46:54,998 INFO L74 IsIncluded]: Start isIncluded. First operand 81 states. Second operand 61 states. [2019-01-31 14:46:54,998 INFO L87 Difference]: Start difference. First operand 81 states. Second operand 61 states. [2019-01-31 14:46:55,000 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:46:55,000 INFO L93 Difference]: Finished difference Result 81 states and 287 transitions. [2019-01-31 14:46:55,000 INFO L276 IsEmpty]: Start isEmpty. Operand 81 states and 287 transitions. [2019-01-31 14:46:55,000 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:46:55,000 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:46:55,001 INFO L74 IsIncluded]: Start isIncluded. First operand 61 states. Second operand 81 states. [2019-01-31 14:46:55,001 INFO L87 Difference]: Start difference. First operand 61 states. Second operand 81 states. [2019-01-31 14:46:55,003 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:46:55,003 INFO L93 Difference]: Finished difference Result 81 states and 287 transitions. [2019-01-31 14:46:55,003 INFO L276 IsEmpty]: Start isEmpty. Operand 81 states and 287 transitions. [2019-01-31 14:46:55,004 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:46:55,004 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:46:55,004 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:46:55,004 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:46:55,004 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 61 states. [2019-01-31 14:46:55,005 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 61 states to 61 states and 265 transitions. [2019-01-31 14:46:55,005 INFO L78 Accepts]: Start accepts. Automaton has 61 states and 265 transitions. Word has length 5 [2019-01-31 14:46:55,006 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:46:55,006 INFO L480 AbstractCegarLoop]: Abstraction has 61 states and 265 transitions. [2019-01-31 14:46:55,006 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:46:55,006 INFO L276 IsEmpty]: Start isEmpty. Operand 61 states and 265 transitions. [2019-01-31 14:46:55,006 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:46:55,006 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:46:55,006 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:46:55,006 INFO L423 AbstractCegarLoop]: === Iteration 31 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:46:55,007 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:46:55,007 INFO L82 PathProgramCache]: Analyzing trace with hash 28818276, now seen corresponding path program 1 times [2019-01-31 14:46:55,007 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:46:55,007 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:46:55,007 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:46:55,007 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:46:55,008 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:46:55,011 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:46:55,411 WARN L181 SmtUtils]: Spent 211.00 ms on a formula simplification. DAG size of input: 19 DAG size of output: 13 [2019-01-31 14:46:55,454 INFO L273 TraceCheckUtils]: 0: Hoare triple {7904#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {7906#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:46:55,455 INFO L273 TraceCheckUtils]: 1: Hoare triple {7906#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {7907#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:46:55,456 INFO L273 TraceCheckUtils]: 2: Hoare triple {7907#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {7908#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:46:55,457 INFO L273 TraceCheckUtils]: 3: Hoare triple {7908#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {7908#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:46:55,457 INFO L273 TraceCheckUtils]: 4: Hoare triple {7908#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {7905#false} is VALID [2019-01-31 14:46:55,458 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:46:55,458 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:46:55,458 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:46:55,458 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-31 14:46:55,459 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [24], [25] [2019-01-31 14:46:55,460 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:46:55,460 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:46:55,473 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:46:55,473 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 66 root evaluator evaluations with a maximum evaluation depth of 3. Performed 66 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-31 14:46:55,473 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:46:55,474 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:46:55,474 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:46:55,474 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 29 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 29 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:46:55,485 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:46:55,485 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:46:55,489 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:46:55,492 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:46:55,493 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:46:55,549 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 18 treesize of output 21 [2019-01-31 14:46:55,554 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:55,555 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 21 treesize of output 27 [2019-01-31 14:46:55,567 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:55,569 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:55,570 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:46:55,584 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:55,586 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:55,587 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:55,588 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:46:55,605 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:55,607 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:55,608 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:55,610 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:55,611 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:46:55,614 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:55,646 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:55,662 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:55,676 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:55,689 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:55,712 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:55,712 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 4 variables, input treesize:31, output treesize:38 [2019-01-31 14:46:55,723 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:55,724 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_154|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= |#memory_int| (store (store (store (store (store |v_#memory_int_154| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:46:55,724 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:46:55,785 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:55,786 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:55,787 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:55,789 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:55,790 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:55,792 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:55,793 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:55,795 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:55,796 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:55,797 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:55,799 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:55,800 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 72 [2019-01-31 14:46:55,804 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:55,856 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:55,856 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:48, output treesize:38 [2019-01-31 14:46:56,450 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:56,451 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_155|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_155| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_155| ULTIMATE.start_main_p1 (+ .cse0 1))) (= (select |v_#memory_int_155| ULTIMATE.start_main_p5) 0) (= .cse0 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |v_#memory_int_155| ULTIMATE.start_main_p4) 0) (= 0 (select |v_#memory_int_155| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |v_#memory_int_155| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:46:56,451 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:46:56,520 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:56,522 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:56,523 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:56,524 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:56,526 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:56,527 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:56,529 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:56,530 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:56,531 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:56,533 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:56,534 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:56,535 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:56,536 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:56,537 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 86 [2019-01-31 14:46:56,540 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:56,597 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:56,597 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:48, output treesize:38 [2019-01-31 14:46:56,652 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:56,652 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_156|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_156| ULTIMATE.start_main_p2))) (and (= (store |v_#memory_int_156| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= 0 .cse0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_156| ULTIMATE.start_main_p1) 1) (= (select |v_#memory_int_156| ULTIMATE.start_main_p5) 0) (= 0 (select |v_#memory_int_156| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 (select |v_#memory_int_156| ULTIMATE.start_main_p3)))) [2019-01-31 14:46:56,652 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:46:56,726 INFO L273 TraceCheckUtils]: 0: Hoare triple {7904#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {7912#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:46:56,730 INFO L273 TraceCheckUtils]: 1: Hoare triple {7912#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {7916#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:46:56,733 INFO L273 TraceCheckUtils]: 2: Hoare triple {7916#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {7920#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-31 14:46:56,734 INFO L273 TraceCheckUtils]: 3: Hoare triple {7920#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p1] >= 0; {7920#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-31 14:46:56,735 INFO L273 TraceCheckUtils]: 4: Hoare triple {7920#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume !(#memory_int[main_p2] <= 0); {7905#false} is VALID [2019-01-31 14:46:56,735 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:46:56,735 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:46:56,760 INFO L273 TraceCheckUtils]: 4: Hoare triple {7908#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {7905#false} is VALID [2019-01-31 14:46:56,761 INFO L273 TraceCheckUtils]: 3: Hoare triple {7908#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {7908#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:46:56,761 INFO L273 TraceCheckUtils]: 2: Hoare triple {7933#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {7908#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:46:56,763 INFO L273 TraceCheckUtils]: 1: Hoare triple {7937#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {7933#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} is VALID [2019-01-31 14:46:56,765 INFO L273 TraceCheckUtils]: 0: Hoare triple {7904#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {7937#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1)} is VALID [2019-01-31 14:46:56,766 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:46:56,785 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:46:56,785 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 8 [2019-01-31 14:46:56,785 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:46:56,786 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:46:56,786 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:46:56,786 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:46:56,807 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:46:56,807 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:46:56,807 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:46:56,807 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=39, Invalid=51, Unknown=0, NotChecked=0, Total=90 [2019-01-31 14:46:56,807 INFO L87 Difference]: Start difference. First operand 61 states and 265 transitions. Second operand 8 states. [2019-01-31 14:46:58,211 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:46:58,212 INFO L93 Difference]: Finished difference Result 87 states and 319 transitions. [2019-01-31 14:46:58,212 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-31 14:46:58,212 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:46:58,212 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:46:58,212 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:46:58,213 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 63 transitions. [2019-01-31 14:46:58,213 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:46:58,213 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 63 transitions. [2019-01-31 14:46:58,213 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 63 transitions. [2019-01-31 14:46:58,353 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 63 edges. 63 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:46:58,354 INFO L225 Difference]: With dead ends: 87 [2019-01-31 14:46:58,355 INFO L226 Difference]: Without dead ends: 86 [2019-01-31 14:46:58,355 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 13 GetRequests, 4 SyntacticMatches, 0 SemanticMatches, 9 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 24 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=47, Invalid=63, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:46:58,355 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 86 states. [2019-01-31 14:46:59,041 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 86 to 67. [2019-01-31 14:46:59,041 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:46:59,042 INFO L82 GeneralOperation]: Start isEquivalent. First operand 86 states. Second operand 67 states. [2019-01-31 14:46:59,042 INFO L74 IsIncluded]: Start isIncluded. First operand 86 states. Second operand 67 states. [2019-01-31 14:46:59,042 INFO L87 Difference]: Start difference. First operand 86 states. Second operand 67 states. [2019-01-31 14:46:59,045 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:46:59,045 INFO L93 Difference]: Finished difference Result 86 states and 317 transitions. [2019-01-31 14:46:59,045 INFO L276 IsEmpty]: Start isEmpty. Operand 86 states and 317 transitions. [2019-01-31 14:46:59,045 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:46:59,045 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:46:59,046 INFO L74 IsIncluded]: Start isIncluded. First operand 67 states. Second operand 86 states. [2019-01-31 14:46:59,046 INFO L87 Difference]: Start difference. First operand 67 states. Second operand 86 states. [2019-01-31 14:46:59,047 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:46:59,048 INFO L93 Difference]: Finished difference Result 86 states and 317 transitions. [2019-01-31 14:46:59,048 INFO L276 IsEmpty]: Start isEmpty. Operand 86 states and 317 transitions. [2019-01-31 14:46:59,048 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:46:59,048 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:46:59,048 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:46:59,048 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:46:59,048 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 67 states. [2019-01-31 14:46:59,050 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 67 states to 67 states and 302 transitions. [2019-01-31 14:46:59,050 INFO L78 Accepts]: Start accepts. Automaton has 67 states and 302 transitions. Word has length 5 [2019-01-31 14:46:59,050 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:46:59,050 INFO L480 AbstractCegarLoop]: Abstraction has 67 states and 302 transitions. [2019-01-31 14:46:59,050 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:46:59,050 INFO L276 IsEmpty]: Start isEmpty. Operand 67 states and 302 transitions. [2019-01-31 14:46:59,050 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:46:59,050 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:46:59,051 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:46:59,051 INFO L423 AbstractCegarLoop]: === Iteration 32 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:46:59,051 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:46:59,051 INFO L82 PathProgramCache]: Analyzing trace with hash 28822120, now seen corresponding path program 1 times [2019-01-31 14:46:59,051 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:46:59,052 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:46:59,052 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:46:59,053 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:46:59,053 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:46:59,057 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:46:59,228 INFO L273 TraceCheckUtils]: 0: Hoare triple {8362#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {8364#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:46:59,229 INFO L273 TraceCheckUtils]: 1: Hoare triple {8364#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {8364#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:46:59,231 INFO L273 TraceCheckUtils]: 2: Hoare triple {8364#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {8365#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-31 14:46:59,231 INFO L273 TraceCheckUtils]: 3: Hoare triple {8365#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} assume #memory_int[main_p1] >= 0; {8366#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:46:59,232 INFO L273 TraceCheckUtils]: 4: Hoare triple {8366#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {8363#false} is VALID [2019-01-31 14:46:59,232 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-31 14:46:59,233 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:46:59,233 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:46:59,233 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-31 14:46:59,233 INFO L207 CegarAbsIntRunner]: [0], [6], [14], [24], [25] [2019-01-31 14:46:59,234 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:46:59,235 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:46:59,244 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:46:59,244 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 66 root evaluator evaluations with a maximum evaluation depth of 3. Performed 66 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-31 14:46:59,245 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:46:59,245 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:46:59,245 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:46:59,245 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 30 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 30 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:46:59,257 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:46:59,257 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:46:59,264 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:46:59,267 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:46:59,267 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:46:59,301 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 18 treesize of output 21 [2019-01-31 14:46:59,308 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:59,308 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 21 treesize of output 27 [2019-01-31 14:46:59,319 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:59,320 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:59,321 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:46:59,334 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:59,336 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:59,338 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:59,339 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:46:59,354 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:59,356 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:59,357 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:59,359 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:59,360 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:46:59,363 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:59,411 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:59,430 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:59,443 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:59,455 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:46:59,480 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:59,480 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 3 variables, input treesize:31, output treesize:38 [2019-01-31 14:46:59,489 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:59,490 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_159|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store (store |v_#memory_int_159| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:46:59,490 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:46:59,545 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:59,546 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:59,548 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:59,549 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:59,550 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:59,552 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:59,553 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:59,554 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:59,556 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:59,557 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:59,558 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:59,559 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 72 [2019-01-31 14:46:59,562 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:59,611 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:59,611 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:48, output treesize:38 [2019-01-31 14:46:59,628 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:59,629 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_160|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_160| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_160| ULTIMATE.start_main_p4) 0) (= (store |v_#memory_int_160| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= (select |v_#memory_int_160| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_160| ULTIMATE.start_main_p5) 0) (= .cse0 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |v_#memory_int_160| ULTIMATE.start_main_p3) 0))) [2019-01-31 14:46:59,629 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:46:59,691 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:59,692 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:59,694 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:59,695 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:59,696 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:59,698 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:59,699 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:59,700 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:59,702 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:59,703 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:59,704 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:59,705 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:46:59,706 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:46:59,707 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 80 [2019-01-31 14:46:59,709 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:46:59,762 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:46:59,762 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:48, output treesize:38 [2019-01-31 14:46:59,851 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:46:59,852 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_161|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_161| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_161| ULTIMATE.start_main_p4) 0) (= 0 (select |v_#memory_int_161| ULTIMATE.start_main_p2)) (= (select |v_#memory_int_161| ULTIMATE.start_main_p5) 0) (= (store |v_#memory_int_161| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= 1 (select |v_#memory_int_161| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= .cse0 0))) [2019-01-31 14:46:59,852 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:46:59,926 INFO L273 TraceCheckUtils]: 0: Hoare triple {8362#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {8370#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:46:59,931 INFO L273 TraceCheckUtils]: 1: Hoare triple {8370#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {8374#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:46:59,934 INFO L273 TraceCheckUtils]: 2: Hoare triple {8374#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {8378#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:46:59,935 INFO L273 TraceCheckUtils]: 3: Hoare triple {8378#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume #memory_int[main_p1] >= 0; {8378#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:46:59,936 INFO L273 TraceCheckUtils]: 4: Hoare triple {8378#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume !(#memory_int[main_p2] <= 0); {8363#false} is VALID [2019-01-31 14:46:59,937 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:46:59,937 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:46:59,977 INFO L273 TraceCheckUtils]: 4: Hoare triple {8385#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {8363#false} is VALID [2019-01-31 14:46:59,978 INFO L273 TraceCheckUtils]: 3: Hoare triple {8385#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {8385#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:46:59,979 INFO L273 TraceCheckUtils]: 2: Hoare triple {8392#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {8385#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:46:59,980 INFO L273 TraceCheckUtils]: 1: Hoare triple {8396#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {8392#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:46:59,983 INFO L273 TraceCheckUtils]: 0: Hoare triple {8362#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {8396#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:46:59,983 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:47:00,002 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:47:00,003 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:47:00,003 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:47:00,003 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:47:00,003 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:47:00,003 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:47:00,022 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:47:00,022 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:47:00,023 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:47:00,023 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=41, Invalid=69, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:47:00,023 INFO L87 Difference]: Start difference. First operand 67 states and 302 transitions. Second operand 8 states. [2019-01-31 14:47:01,729 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:01,730 INFO L93 Difference]: Finished difference Result 86 states and 334 transitions. [2019-01-31 14:47:01,730 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-31 14:47:01,730 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:47:01,730 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:47:01,730 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:47:01,731 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 54 transitions. [2019-01-31 14:47:01,731 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:47:01,732 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 54 transitions. [2019-01-31 14:47:01,732 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 54 transitions. [2019-01-31 14:47:01,833 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 54 edges. 54 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:47:01,835 INFO L225 Difference]: With dead ends: 86 [2019-01-31 14:47:01,836 INFO L226 Difference]: Without dead ends: 85 [2019-01-31 14:47:01,836 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 2 SyntacticMatches, 1 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 30 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=59, Invalid=97, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:47:01,836 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 85 states. [2019-01-31 14:47:02,570 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 85 to 69. [2019-01-31 14:47:02,571 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:47:02,571 INFO L82 GeneralOperation]: Start isEquivalent. First operand 85 states. Second operand 69 states. [2019-01-31 14:47:02,571 INFO L74 IsIncluded]: Start isIncluded. First operand 85 states. Second operand 69 states. [2019-01-31 14:47:02,571 INFO L87 Difference]: Start difference. First operand 85 states. Second operand 69 states. [2019-01-31 14:47:02,574 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:02,574 INFO L93 Difference]: Finished difference Result 85 states and 332 transitions. [2019-01-31 14:47:02,574 INFO L276 IsEmpty]: Start isEmpty. Operand 85 states and 332 transitions. [2019-01-31 14:47:02,574 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:47:02,574 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:47:02,575 INFO L74 IsIncluded]: Start isIncluded. First operand 69 states. Second operand 85 states. [2019-01-31 14:47:02,575 INFO L87 Difference]: Start difference. First operand 69 states. Second operand 85 states. [2019-01-31 14:47:02,576 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:02,576 INFO L93 Difference]: Finished difference Result 85 states and 332 transitions. [2019-01-31 14:47:02,577 INFO L276 IsEmpty]: Start isEmpty. Operand 85 states and 332 transitions. [2019-01-31 14:47:02,577 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:47:02,577 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:47:02,577 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:47:02,577 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:47:02,577 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 69 states. [2019-01-31 14:47:02,579 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 69 states to 69 states and 314 transitions. [2019-01-31 14:47:02,579 INFO L78 Accepts]: Start accepts. Automaton has 69 states and 314 transitions. Word has length 5 [2019-01-31 14:47:02,579 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:47:02,579 INFO L480 AbstractCegarLoop]: Abstraction has 69 states and 314 transitions. [2019-01-31 14:47:02,579 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:47:02,579 INFO L276 IsEmpty]: Start isEmpty. Operand 69 states and 314 transitions. [2019-01-31 14:47:02,579 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:47:02,579 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:47:02,579 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:47:02,580 INFO L423 AbstractCegarLoop]: === Iteration 33 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:47:02,580 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:47:02,580 INFO L82 PathProgramCache]: Analyzing trace with hash 28947050, now seen corresponding path program 2 times [2019-01-31 14:47:02,580 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:47:02,581 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:47:02,581 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:47:02,581 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:47:02,581 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:47:02,584 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:03,011 WARN L181 SmtUtils]: Spent 245.00 ms on a formula simplification. DAG size of input: 15 DAG size of output: 9 [2019-01-31 14:47:03,558 WARN L181 SmtUtils]: Spent 304.00 ms on a formula simplification. DAG size of input: 19 DAG size of output: 13 [2019-01-31 14:47:03,811 INFO L273 TraceCheckUtils]: 0: Hoare triple {8827#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {8829#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-31 14:47:03,825 INFO L273 TraceCheckUtils]: 1: Hoare triple {8829#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {8830#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (<= (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) 0))} is VALID [2019-01-31 14:47:03,834 INFO L273 TraceCheckUtils]: 2: Hoare triple {8830#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (<= (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) 0))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {8831#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:47:03,848 INFO L273 TraceCheckUtils]: 3: Hoare triple {8831#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {8831#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:47:03,857 INFO L273 TraceCheckUtils]: 4: Hoare triple {8831#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {8828#false} is VALID [2019-01-31 14:47:03,857 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:47:03,857 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:47:03,858 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:47:03,858 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-31 14:47:03,858 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-31 14:47:03,858 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:47:03,858 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 31 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 31 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:47:03,875 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-31 14:47:03,875 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-31 14:47:03,907 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 2 check-sat command(s) [2019-01-31 14:47:03,907 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-31 14:47:03,919 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:03,920 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:47:03,936 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 18 treesize of output 21 [2019-01-31 14:47:03,969 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 23 [2019-01-31 14:47:03,980 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:03,981 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 23 treesize of output 29 [2019-01-31 14:47:03,995 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:03,996 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:03,997 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 39 [2019-01-31 14:47:04,013 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:04,019 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:04,021 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:04,022 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 50 [2019-01-31 14:47:04,025 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:04,049 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:04,063 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:04,074 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:04,086 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:04,108 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:04,109 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 4 variables, input treesize:28, output treesize:35 [2019-01-31 14:47:04,117 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:04,118 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_164|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= |#memory_int| (store (store (store (store (store |v_#memory_int_164| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:47:04,118 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:47:05,125 WARN L181 SmtUtils]: Spent 997.00 ms on a formula simplification. DAG size of input: 24 DAG size of output: 20 [2019-01-31 14:47:05,156 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:05,158 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:05,159 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:05,161 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:05,162 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:05,164 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:05,165 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:05,166 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-31 14:47:05,169 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:05,202 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:05,203 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-31 14:47:05,209 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:05,209 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_165|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_165| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_165| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_165| ULTIMATE.start_main_p5) 0) (= |#memory_int| (store |v_#memory_int_165| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= .cse0 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |v_#memory_int_165| ULTIMATE.start_main_p3) 0))) [2019-01-31 14:47:05,209 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:47:05,255 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:05,256 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:05,258 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:05,259 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:05,261 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:05,262 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:05,263 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:05,264 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:05,266 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:05,267 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 67 [2019-01-31 14:47:05,275 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:05,307 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:05,307 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-31 14:47:15,323 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:15,324 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_166|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_166| ULTIMATE.start_main_p5))) (and (= 0 (select |v_#memory_int_166| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_166| ULTIMATE.start_main_p3) 0) (= |#memory_int| (store |v_#memory_int_166| ULTIMATE.start_main_p5 (+ .cse0 1))) (= (+ (select |v_#memory_int_166| ULTIMATE.start_main_p2) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= .cse0 0))) [2019-01-31 14:47:15,324 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-31 14:47:15,470 INFO L273 TraceCheckUtils]: 0: Hoare triple {8827#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {8835#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:47:15,472 INFO L273 TraceCheckUtils]: 1: Hoare triple {8835#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {8839#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))} is VALID [2019-01-31 14:47:15,475 INFO L273 TraceCheckUtils]: 2: Hoare triple {8839#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {8843#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-31 14:47:15,475 INFO L273 TraceCheckUtils]: 3: Hoare triple {8843#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume #memory_int[main_p1] >= 0; {8843#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-31 14:47:15,476 INFO L273 TraceCheckUtils]: 4: Hoare triple {8843#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume !(#memory_int[main_p2] <= 0); {8828#false} is VALID [2019-01-31 14:47:15,476 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:47:15,477 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:47:15,508 INFO L273 TraceCheckUtils]: 4: Hoare triple {8831#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {8828#false} is VALID [2019-01-31 14:47:15,509 INFO L273 TraceCheckUtils]: 3: Hoare triple {8831#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {8831#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:47:15,510 INFO L273 TraceCheckUtils]: 2: Hoare triple {8856#(<= (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {8831#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:47:15,511 INFO L273 TraceCheckUtils]: 1: Hoare triple {8860#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {8856#(<= (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:47:15,514 INFO L273 TraceCheckUtils]: 0: Hoare triple {8827#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {8860#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:47:15,514 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:47:15,535 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:47:15,535 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 8 [2019-01-31 14:47:15,535 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:47:15,535 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:47:15,535 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:47:15,536 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:47:15,555 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:47:15,555 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:47:15,556 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:47:15,556 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=39, Invalid=51, Unknown=0, NotChecked=0, Total=90 [2019-01-31 14:47:15,556 INFO L87 Difference]: Start difference. First operand 69 states and 314 transitions. Second operand 8 states. [2019-01-31 14:47:17,784 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:17,784 INFO L93 Difference]: Finished difference Result 110 states and 397 transitions. [2019-01-31 14:47:17,784 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-31 14:47:17,784 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:47:17,784 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:47:17,784 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:47:17,785 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 70 transitions. [2019-01-31 14:47:17,785 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:47:17,786 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 70 transitions. [2019-01-31 14:47:17,786 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 70 transitions. [2019-01-31 14:47:17,896 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 70 edges. 70 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:47:17,899 INFO L225 Difference]: With dead ends: 110 [2019-01-31 14:47:17,899 INFO L226 Difference]: Without dead ends: 107 [2019-01-31 14:47:17,899 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 12 GetRequests, 3 SyntacticMatches, 0 SemanticMatches, 9 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 25 ImplicationChecksByTransitivity, 2.1s TimeCoverageRelationStatistics Valid=46, Invalid=64, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:47:17,900 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 107 states. [2019-01-31 14:47:18,713 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 107 to 78. [2019-01-31 14:47:18,713 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:47:18,714 INFO L82 GeneralOperation]: Start isEquivalent. First operand 107 states. Second operand 78 states. [2019-01-31 14:47:18,714 INFO L74 IsIncluded]: Start isIncluded. First operand 107 states. Second operand 78 states. [2019-01-31 14:47:18,714 INFO L87 Difference]: Start difference. First operand 107 states. Second operand 78 states. [2019-01-31 14:47:18,717 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:18,718 INFO L93 Difference]: Finished difference Result 107 states and 393 transitions. [2019-01-31 14:47:18,718 INFO L276 IsEmpty]: Start isEmpty. Operand 107 states and 393 transitions. [2019-01-31 14:47:18,718 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:47:18,718 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:47:18,718 INFO L74 IsIncluded]: Start isIncluded. First operand 78 states. Second operand 107 states. [2019-01-31 14:47:18,719 INFO L87 Difference]: Start difference. First operand 78 states. Second operand 107 states. [2019-01-31 14:47:18,721 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:18,722 INFO L93 Difference]: Finished difference Result 107 states and 393 transitions. [2019-01-31 14:47:18,722 INFO L276 IsEmpty]: Start isEmpty. Operand 107 states and 393 transitions. [2019-01-31 14:47:18,722 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:47:18,722 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:47:18,722 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:47:18,723 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:47:18,723 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 78 states. [2019-01-31 14:47:18,725 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 78 states to 78 states and 360 transitions. [2019-01-31 14:47:18,725 INFO L78 Accepts]: Start accepts. Automaton has 78 states and 360 transitions. Word has length 5 [2019-01-31 14:47:18,725 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:47:18,725 INFO L480 AbstractCegarLoop]: Abstraction has 78 states and 360 transitions. [2019-01-31 14:47:18,725 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:47:18,725 INFO L276 IsEmpty]: Start isEmpty. Operand 78 states and 360 transitions. [2019-01-31 14:47:18,725 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:47:18,725 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:47:18,725 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:47:18,726 INFO L423 AbstractCegarLoop]: === Iteration 34 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:47:18,726 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:47:18,726 INFO L82 PathProgramCache]: Analyzing trace with hash 28950958, now seen corresponding path program 1 times [2019-01-31 14:47:18,726 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:47:18,727 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:47:18,727 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-31 14:47:18,727 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:47:18,727 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:47:18,731 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:18,874 INFO L273 TraceCheckUtils]: 0: Hoare triple {9381#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {9383#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:47:18,875 INFO L273 TraceCheckUtils]: 1: Hoare triple {9383#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {9384#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-31 14:47:18,876 INFO L273 TraceCheckUtils]: 2: Hoare triple {9384#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p1] >= 0; {9384#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-31 14:47:18,876 INFO L273 TraceCheckUtils]: 3: Hoare triple {9384#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p2] <= 0; {9384#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-31 14:47:18,877 INFO L273 TraceCheckUtils]: 4: Hoare triple {9384#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume !(#memory_int[main_p3] >= 0); {9382#false} is VALID [2019-01-31 14:47:18,878 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:47:18,878 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:47:18,878 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:47:18,878 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-31 14:47:18,879 INFO L207 CegarAbsIntRunner]: [0], [10], [24], [26], [27] [2019-01-31 14:47:18,880 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:47:18,880 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:47:18,894 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:47:18,894 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 66 root evaluator evaluations with a maximum evaluation depth of 3. Performed 66 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-31 14:47:18,894 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:47:18,895 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:47:18,895 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:47:18,895 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 32 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 32 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:47:18,903 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:47:18,903 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:47:18,910 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:18,915 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:18,915 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:47:18,949 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 18 treesize of output 21 [2019-01-31 14:47:18,956 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 23 [2019-01-31 14:47:18,966 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:18,967 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 23 treesize of output 29 [2019-01-31 14:47:18,984 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:18,985 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:18,986 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 39 [2019-01-31 14:47:19,002 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:19,009 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:19,010 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:19,012 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 50 [2019-01-31 14:47:19,020 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:19,042 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:19,056 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:19,068 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:19,081 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:19,103 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:19,104 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 4 variables, input treesize:28, output treesize:35 [2019-01-31 14:47:19,112 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:19,113 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_169|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store (store |v_#memory_int_169| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:47:19,113 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:47:19,174 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:19,175 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:19,176 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:19,177 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:19,178 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:19,180 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:19,181 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:19,182 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-31 14:47:19,185 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:19,219 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:19,220 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-31 14:47:19,239 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:19,239 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_170|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_170| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (select |v_#memory_int_170| ULTIMATE.start_main_p4) 0) (= |#memory_int| (store |v_#memory_int_170| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= (select |v_#memory_int_170| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 (select |v_#memory_int_170| ULTIMATE.start_main_p5)))) [2019-01-31 14:47:19,239 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:47:19,302 INFO L273 TraceCheckUtils]: 0: Hoare triple {9381#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {9388#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:47:19,305 INFO L273 TraceCheckUtils]: 1: Hoare triple {9388#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {9392#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-31 14:47:19,307 INFO L273 TraceCheckUtils]: 2: Hoare triple {9392#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p1] >= 0; {9392#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-31 14:47:19,308 INFO L273 TraceCheckUtils]: 3: Hoare triple {9392#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p2] <= 0; {9392#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-31 14:47:19,309 INFO L273 TraceCheckUtils]: 4: Hoare triple {9392#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume !(#memory_int[main_p3] >= 0); {9382#false} is VALID [2019-01-31 14:47:19,309 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:47:19,309 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:47:19,340 INFO L273 TraceCheckUtils]: 4: Hoare triple {9402#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {9382#false} is VALID [2019-01-31 14:47:19,340 INFO L273 TraceCheckUtils]: 3: Hoare triple {9402#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {9402#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:47:19,341 INFO L273 TraceCheckUtils]: 2: Hoare triple {9402#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {9402#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:47:19,342 INFO L273 TraceCheckUtils]: 1: Hoare triple {9412#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {9402#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:47:19,344 INFO L273 TraceCheckUtils]: 0: Hoare triple {9381#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {9412#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:47:19,345 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:47:19,366 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:47:19,367 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-01-31 14:47:19,367 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:47:19,367 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 5 [2019-01-31 14:47:19,367 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:47:19,367 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-01-31 14:47:19,384 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:47:19,384 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-01-31 14:47:19,384 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-01-31 14:47:19,384 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-31 14:47:19,384 INFO L87 Difference]: Start difference. First operand 78 states and 360 transitions. Second operand 6 states. [2019-01-31 14:47:20,842 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:20,842 INFO L93 Difference]: Finished difference Result 87 states and 367 transitions. [2019-01-31 14:47:20,842 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-31 14:47:20,842 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 5 [2019-01-31 14:47:20,842 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:47:20,842 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-31 14:47:20,843 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 42 transitions. [2019-01-31 14:47:20,843 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-31 14:47:20,843 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 42 transitions. [2019-01-31 14:47:20,843 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 42 transitions. [2019-01-31 14:47:20,899 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 42 edges. 42 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:47:20,902 INFO L225 Difference]: With dead ends: 87 [2019-01-31 14:47:20,902 INFO L226 Difference]: Without dead ends: 86 [2019-01-31 14:47:20,903 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 12 GetRequests, 5 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=31, Invalid=41, Unknown=0, NotChecked=0, Total=72 [2019-01-31 14:47:20,903 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 86 states. [2019-01-31 14:47:21,707 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 86 to 76. [2019-01-31 14:47:21,708 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:47:21,708 INFO L82 GeneralOperation]: Start isEquivalent. First operand 86 states. Second operand 76 states. [2019-01-31 14:47:21,708 INFO L74 IsIncluded]: Start isIncluded. First operand 86 states. Second operand 76 states. [2019-01-31 14:47:21,708 INFO L87 Difference]: Start difference. First operand 86 states. Second operand 76 states. [2019-01-31 14:47:21,711 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:21,711 INFO L93 Difference]: Finished difference Result 86 states and 365 transitions. [2019-01-31 14:47:21,711 INFO L276 IsEmpty]: Start isEmpty. Operand 86 states and 365 transitions. [2019-01-31 14:47:21,711 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:47:21,712 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:47:21,712 INFO L74 IsIncluded]: Start isIncluded. First operand 76 states. Second operand 86 states. [2019-01-31 14:47:21,712 INFO L87 Difference]: Start difference. First operand 76 states. Second operand 86 states. [2019-01-31 14:47:21,714 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:21,714 INFO L93 Difference]: Finished difference Result 86 states and 365 transitions. [2019-01-31 14:47:21,715 INFO L276 IsEmpty]: Start isEmpty. Operand 86 states and 365 transitions. [2019-01-31 14:47:21,715 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:47:21,715 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:47:21,715 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:47:21,715 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:47:21,715 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 76 states. [2019-01-31 14:47:21,718 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 76 states to 76 states and 357 transitions. [2019-01-31 14:47:21,718 INFO L78 Accepts]: Start accepts. Automaton has 76 states and 357 transitions. Word has length 5 [2019-01-31 14:47:21,718 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:47:21,718 INFO L480 AbstractCegarLoop]: Abstraction has 76 states and 357 transitions. [2019-01-31 14:47:21,718 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-01-31 14:47:21,718 INFO L276 IsEmpty]: Start isEmpty. Operand 76 states and 357 transitions. [2019-01-31 14:47:21,719 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:47:21,719 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:47:21,719 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:47:21,719 INFO L423 AbstractCegarLoop]: === Iteration 35 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:47:21,719 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:47:21,719 INFO L82 PathProgramCache]: Analyzing trace with hash 29052324, now seen corresponding path program 1 times [2019-01-31 14:47:21,719 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:47:21,720 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:47:21,720 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:47:21,720 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:47:21,720 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:47:21,723 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:21,900 INFO L273 TraceCheckUtils]: 0: Hoare triple {9864#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {9866#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:47:21,902 INFO L273 TraceCheckUtils]: 1: Hoare triple {9866#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {9867#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-01-31 14:47:21,902 INFO L273 TraceCheckUtils]: 2: Hoare triple {9867#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {9868#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:47:21,903 INFO L273 TraceCheckUtils]: 3: Hoare triple {9868#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {9869#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:47:21,904 INFO L273 TraceCheckUtils]: 4: Hoare triple {9869#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {9865#false} is VALID [2019-01-31 14:47:21,904 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:47:21,904 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:47:21,904 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:47:21,904 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-31 14:47:21,905 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [14], [23] [2019-01-31 14:47:21,906 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:47:21,906 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:47:21,915 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:47:21,916 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 66 root evaluator evaluations with a maximum evaluation depth of 3. Performed 66 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-31 14:47:21,916 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:47:21,916 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:47:21,916 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:47:21,916 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 33 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 33 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:47:21,928 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:47:21,928 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:47:21,933 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:21,938 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:21,938 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:47:21,963 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 18 treesize of output 21 [2019-01-31 14:47:21,969 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:21,970 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 21 treesize of output 27 [2019-01-31 14:47:21,980 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:21,981 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:21,982 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:47:21,999 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,000 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,002 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,003 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:47:22,022 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,024 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,025 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,027 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,028 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:47:22,032 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:22,064 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:22,082 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:22,096 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:22,107 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:22,130 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:22,130 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 3 variables, input treesize:31, output treesize:38 [2019-01-31 14:47:22,137 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:22,138 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_172|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= |#memory_int| (store (store (store (store (store |v_#memory_int_172| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0))) [2019-01-31 14:47:22,138 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:47:22,206 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,208 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,209 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,211 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,249 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,271 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,295 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,309 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,312 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,313 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,314 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,314 INFO L303 Elim1Store]: Index analysis took 111 ms [2019-01-31 14:47:22,315 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 72 [2019-01-31 14:47:22,318 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:22,368 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:22,368 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:48, output treesize:38 [2019-01-31 14:47:22,386 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:22,387 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_173|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_173| ULTIMATE.start_main_p3))) (and (= 0 (select |v_#memory_int_173| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_173| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= 0 (select |v_#memory_int_173| ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_173| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= 0 (select |v_#memory_int_173| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 .cse0))) [2019-01-31 14:47:22,387 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:47:22,461 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,462 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,464 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,465 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,466 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,468 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,469 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,470 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,472 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,473 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,474 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,475 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,476 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:47:22,477 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 80 [2019-01-31 14:47:22,480 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:22,532 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:22,533 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:48, output treesize:38 [2019-01-31 14:47:22,541 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:22,541 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_174|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_174| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (store |v_#memory_int_174| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= (select |v_#memory_int_174| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_174| ULTIMATE.start_main_p3) 1) (= 0 (select |v_#memory_int_174| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= 0 (select |v_#memory_int_174| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:47:22,541 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:47:22,605 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,607 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,608 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,610 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,611 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,613 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,614 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,616 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,617 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,619 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,620 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,621 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,622 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:22,623 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 86 [2019-01-31 14:47:22,627 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:22,683 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:22,683 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:48, output treesize:38 [2019-01-31 14:47:28,322 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:28,322 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_175|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_175| ULTIMATE.start_main_p2))) (and (= 1 (select |v_#memory_int_175| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= |#memory_int| (store |v_#memory_int_175| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= 1 (select |v_#memory_int_175| ULTIMATE.start_main_p1)) (= (select |v_#memory_int_175| ULTIMATE.start_main_p5) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |v_#memory_int_175| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:47:28,322 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:47:28,413 INFO L273 TraceCheckUtils]: 0: Hoare triple {9864#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {9873#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:47:28,416 INFO L273 TraceCheckUtils]: 1: Hoare triple {9873#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {9877#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:47:28,420 INFO L273 TraceCheckUtils]: 2: Hoare triple {9877#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {9881#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:47:28,423 INFO L273 TraceCheckUtils]: 3: Hoare triple {9881#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {9885#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-31 14:47:28,424 INFO L273 TraceCheckUtils]: 4: Hoare triple {9885#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {9865#false} is VALID [2019-01-31 14:47:28,425 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:47:28,425 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:47:28,484 INFO L273 TraceCheckUtils]: 4: Hoare triple {9889#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {9865#false} is VALID [2019-01-31 14:47:28,486 INFO L273 TraceCheckUtils]: 3: Hoare triple {9893#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {9889#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:47:28,487 INFO L273 TraceCheckUtils]: 2: Hoare triple {9897#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {9893#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:47:28,489 INFO L273 TraceCheckUtils]: 1: Hoare triple {9901#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {9897#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:47:28,492 INFO L273 TraceCheckUtils]: 0: Hoare triple {9864#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {9901#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:47:28,492 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 5 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:47:28,513 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:47:28,513 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-31 14:47:28,513 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:47:28,513 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-31 14:47:28,514 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:47:28,514 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-31 14:47:28,534 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:47:28,534 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-31 14:47:28,534 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-31 14:47:28,535 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=71, Invalid=111, Unknown=0, NotChecked=0, Total=182 [2019-01-31 14:47:28,535 INFO L87 Difference]: Start difference. First operand 76 states and 357 transitions. Second operand 10 states. [2019-01-31 14:47:31,468 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:31,469 INFO L93 Difference]: Finished difference Result 133 states and 461 transitions. [2019-01-31 14:47:31,469 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-31 14:47:31,469 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-31 14:47:31,469 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:47:31,469 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:47:31,469 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 83 transitions. [2019-01-31 14:47:31,470 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:47:31,470 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 83 transitions. [2019-01-31 14:47:31,470 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 83 transitions. [2019-01-31 14:47:31,673 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 83 edges. 83 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:47:31,676 INFO L225 Difference]: With dead ends: 133 [2019-01-31 14:47:31,676 INFO L226 Difference]: Without dead ends: 132 [2019-01-31 14:47:31,677 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 59 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=89, Invalid=151, Unknown=0, NotChecked=0, Total=240 [2019-01-31 14:47:31,677 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 132 states. [2019-01-31 14:47:32,528 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 132 to 75. [2019-01-31 14:47:32,528 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:47:32,528 INFO L82 GeneralOperation]: Start isEquivalent. First operand 132 states. Second operand 75 states. [2019-01-31 14:47:32,528 INFO L74 IsIncluded]: Start isIncluded. First operand 132 states. Second operand 75 states. [2019-01-31 14:47:32,529 INFO L87 Difference]: Start difference. First operand 132 states. Second operand 75 states. [2019-01-31 14:47:32,533 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:32,533 INFO L93 Difference]: Finished difference Result 132 states and 459 transitions. [2019-01-31 14:47:32,533 INFO L276 IsEmpty]: Start isEmpty. Operand 132 states and 459 transitions. [2019-01-31 14:47:32,534 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:47:32,534 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:47:32,534 INFO L74 IsIncluded]: Start isIncluded. First operand 75 states. Second operand 132 states. [2019-01-31 14:47:32,534 INFO L87 Difference]: Start difference. First operand 75 states. Second operand 132 states. [2019-01-31 14:47:32,537 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:32,538 INFO L93 Difference]: Finished difference Result 132 states and 459 transitions. [2019-01-31 14:47:32,538 INFO L276 IsEmpty]: Start isEmpty. Operand 132 states and 459 transitions. [2019-01-31 14:47:32,538 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:47:32,538 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:47:32,538 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:47:32,538 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:47:32,538 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 75 states. [2019-01-31 14:47:32,540 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 75 states to 75 states and 351 transitions. [2019-01-31 14:47:32,540 INFO L78 Accepts]: Start accepts. Automaton has 75 states and 351 transitions. Word has length 5 [2019-01-31 14:47:32,540 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:47:32,540 INFO L480 AbstractCegarLoop]: Abstraction has 75 states and 351 transitions. [2019-01-31 14:47:32,540 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-31 14:47:32,540 INFO L276 IsEmpty]: Start isEmpty. Operand 75 states and 351 transitions. [2019-01-31 14:47:32,541 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-31 14:47:32,541 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:47:32,541 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-31 14:47:32,541 INFO L423 AbstractCegarLoop]: === Iteration 36 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:47:32,542 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:47:32,542 INFO L82 PathProgramCache]: Analyzing trace with hash 29056604, now seen corresponding path program 1 times [2019-01-31 14:47:32,542 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:47:32,542 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:47:32,542 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:47:32,543 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:47:32,543 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:47:32,546 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:32,612 INFO L273 TraceCheckUtils]: 0: Hoare triple {10501#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {10503#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:47:32,613 INFO L273 TraceCheckUtils]: 1: Hoare triple {10503#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {10504#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:47:32,615 INFO L273 TraceCheckUtils]: 2: Hoare triple {10504#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {10505#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-01-31 14:47:32,615 INFO L273 TraceCheckUtils]: 3: Hoare triple {10505#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume #memory_int[main_p1] >= 0; {10505#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-01-31 14:47:32,616 INFO L273 TraceCheckUtils]: 4: Hoare triple {10505#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume !(#memory_int[main_p2] <= 0); {10502#false} is VALID [2019-01-31 14:47:32,616 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:47:32,617 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:47:32,617 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:47:32,617 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-31 14:47:32,617 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [24], [25] [2019-01-31 14:47:32,618 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:47:32,618 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:47:32,684 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:47:32,684 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 66 root evaluator evaluations with a maximum evaluation depth of 3. Performed 66 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-31 14:47:32,685 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:47:32,685 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:47:32,685 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:47:32,685 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 34 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 34 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:47:32,693 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:47:32,694 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:47:32,699 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:32,706 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:32,706 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:47:32,737 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 18 treesize of output 21 [2019-01-31 14:47:32,743 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 23 [2019-01-31 14:47:32,755 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:32,756 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 23 treesize of output 29 [2019-01-31 14:47:32,770 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:32,771 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:32,772 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 39 [2019-01-31 14:47:32,787 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:32,792 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:32,793 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:32,794 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 50 [2019-01-31 14:47:32,797 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:32,816 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:32,830 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:32,841 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:32,852 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:32,874 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:32,874 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 4 variables, input treesize:28, output treesize:35 [2019-01-31 14:47:32,886 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:32,886 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_179|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store (store |v_#memory_int_179| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:47:32,886 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:47:32,945 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:32,946 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:32,948 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:32,949 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:32,950 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:32,952 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:32,953 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:32,954 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-31 14:47:32,957 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:32,991 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:32,992 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-31 14:47:33,006 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:33,006 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_180|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_180| ULTIMATE.start_main_p3))) (and (= (select |v_#memory_int_180| ULTIMATE.start_main_p2) 0) (= |#memory_int| (store |v_#memory_int_180| ULTIMATE.start_main_p3 (+ .cse0 1))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= 0 (select |v_#memory_int_180| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= 0 (select |v_#memory_int_180| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-31 14:47:33,007 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:47:33,054 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:33,055 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:33,065 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:33,099 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:33,122 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:33,126 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:33,127 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:33,128 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:33,129 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:33,129 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 65 [2019-01-31 14:47:33,132 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:33,170 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:33,171 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-31 14:47:33,181 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:33,182 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_181|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_181| ULTIMATE.start_main_p2))) (and (= 1 (select |v_#memory_int_181| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= (select |v_#memory_int_181| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_181| ULTIMATE.start_main_p5) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= |#memory_int| (store |v_#memory_int_181| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))))) [2019-01-31 14:47:33,182 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:47:33,234 INFO L273 TraceCheckUtils]: 0: Hoare triple {10501#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {10509#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:47:33,236 INFO L273 TraceCheckUtils]: 1: Hoare triple {10509#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {10513#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:47:33,238 INFO L273 TraceCheckUtils]: 2: Hoare triple {10513#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {10517#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))} is VALID [2019-01-31 14:47:33,239 INFO L273 TraceCheckUtils]: 3: Hoare triple {10517#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))} assume #memory_int[main_p1] >= 0; {10517#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))} is VALID [2019-01-31 14:47:33,240 INFO L273 TraceCheckUtils]: 4: Hoare triple {10517#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))} assume !(#memory_int[main_p2] <= 0); {10502#false} is VALID [2019-01-31 14:47:33,241 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:47:33,241 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:47:33,282 INFO L273 TraceCheckUtils]: 4: Hoare triple {10524#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {10502#false} is VALID [2019-01-31 14:47:33,282 INFO L273 TraceCheckUtils]: 3: Hoare triple {10524#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {10524#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:47:33,283 INFO L273 TraceCheckUtils]: 2: Hoare triple {10531#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {10524#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:47:33,284 INFO L273 TraceCheckUtils]: 1: Hoare triple {10535#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {10531#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} is VALID [2019-01-31 14:47:33,286 INFO L273 TraceCheckUtils]: 0: Hoare triple {10501#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {10535#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1)} is VALID [2019-01-31 14:47:33,287 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:47:33,307 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:47:33,307 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:47:33,307 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:47:33,307 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:47:33,307 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:47:33,308 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:47:33,328 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:47:33,329 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:47:33,329 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:47:33,329 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:47:33,329 INFO L87 Difference]: Start difference. First operand 75 states and 351 transitions. Second operand 8 states. [2019-01-31 14:47:35,112 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:35,113 INFO L93 Difference]: Finished difference Result 113 states and 411 transitions. [2019-01-31 14:47:35,113 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-31 14:47:35,113 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-31 14:47:35,113 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:47:35,113 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:47:35,113 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 68 transitions. [2019-01-31 14:47:35,114 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:47:35,114 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 68 transitions. [2019-01-31 14:47:35,114 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 68 transitions. [2019-01-31 14:47:35,216 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 68 edges. 68 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:47:35,218 INFO L225 Difference]: With dead ends: 113 [2019-01-31 14:47:35,218 INFO L226 Difference]: Without dead ends: 112 [2019-01-31 14:47:35,219 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 12 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 27 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=53, Invalid=79, Unknown=0, NotChecked=0, Total=132 [2019-01-31 14:47:35,219 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 112 states. [2019-01-31 14:47:36,063 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 112 to 77. [2019-01-31 14:47:36,064 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:47:36,064 INFO L82 GeneralOperation]: Start isEquivalent. First operand 112 states. Second operand 77 states. [2019-01-31 14:47:36,064 INFO L74 IsIncluded]: Start isIncluded. First operand 112 states. Second operand 77 states. [2019-01-31 14:47:36,064 INFO L87 Difference]: Start difference. First operand 112 states. Second operand 77 states. [2019-01-31 14:47:36,068 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:36,068 INFO L93 Difference]: Finished difference Result 112 states and 409 transitions. [2019-01-31 14:47:36,069 INFO L276 IsEmpty]: Start isEmpty. Operand 112 states and 409 transitions. [2019-01-31 14:47:36,069 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:47:36,069 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:47:36,069 INFO L74 IsIncluded]: Start isIncluded. First operand 77 states. Second operand 112 states. [2019-01-31 14:47:36,069 INFO L87 Difference]: Start difference. First operand 77 states. Second operand 112 states. [2019-01-31 14:47:36,071 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:36,072 INFO L93 Difference]: Finished difference Result 112 states and 409 transitions. [2019-01-31 14:47:36,072 INFO L276 IsEmpty]: Start isEmpty. Operand 112 states and 409 transitions. [2019-01-31 14:47:36,072 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:47:36,072 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:47:36,072 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:47:36,072 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:47:36,072 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 77 states. [2019-01-31 14:47:36,074 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 77 states to 77 states and 363 transitions. [2019-01-31 14:47:36,074 INFO L78 Accepts]: Start accepts. Automaton has 77 states and 363 transitions. Word has length 5 [2019-01-31 14:47:36,074 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:47:36,074 INFO L480 AbstractCegarLoop]: Abstraction has 77 states and 363 transitions. [2019-01-31 14:47:36,074 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:47:36,074 INFO L276 IsEmpty]: Start isEmpty. Operand 77 states and 363 transitions. [2019-01-31 14:47:36,074 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:47:36,075 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:47:36,075 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1] [2019-01-31 14:47:36,075 INFO L423 AbstractCegarLoop]: === Iteration 37 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:47:36,075 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:47:36,075 INFO L82 PathProgramCache]: Analyzing trace with hash 904669396, now seen corresponding path program 2 times [2019-01-31 14:47:36,075 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:47:36,076 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:47:36,076 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:47:36,076 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:47:36,076 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:47:36,079 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:36,261 INFO L273 TraceCheckUtils]: 0: Hoare triple {11071#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {11073#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:47:36,262 INFO L273 TraceCheckUtils]: 1: Hoare triple {11073#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {11073#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:47:36,263 INFO L273 TraceCheckUtils]: 2: Hoare triple {11073#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {11074#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-01-31 14:47:36,264 INFO L273 TraceCheckUtils]: 3: Hoare triple {11074#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {11075#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:47:36,265 INFO L273 TraceCheckUtils]: 4: Hoare triple {11075#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {11076#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:47:36,266 INFO L273 TraceCheckUtils]: 5: Hoare triple {11076#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {11072#false} is VALID [2019-01-31 14:47:36,267 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 9 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-31 14:47:36,267 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:47:36,267 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:47:36,267 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-31 14:47:36,267 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-31 14:47:36,268 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:47:36,268 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 35 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 35 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:47:36,278 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-31 14:47:36,278 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-31 14:47:36,285 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-31 14:47:36,285 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-31 14:47:36,290 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:36,291 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:47:36,321 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 18 treesize of output 21 [2019-01-31 14:47:36,345 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:36,346 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 21 treesize of output 27 [2019-01-31 14:47:36,355 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:36,357 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:36,358 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:47:36,388 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:36,390 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:36,391 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:36,392 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:47:36,413 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:36,414 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:36,415 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:36,416 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:36,417 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:47:36,421 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:36,454 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:36,471 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:36,548 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:36,560 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:36,584 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:36,584 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 3 variables, input treesize:31, output treesize:38 [2019-01-31 14:47:36,592 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:36,592 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_184|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store (store |v_#memory_int_184| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:47:36,592 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:47:36,652 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:36,654 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:36,655 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:36,656 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:36,658 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:36,659 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:36,660 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:36,661 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:36,663 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:36,664 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:36,665 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:36,666 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 66 [2019-01-31 14:47:36,670 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:36,725 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:36,726 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:48, output treesize:38 [2019-01-31 14:47:36,732 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:36,732 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_185|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_185| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_185| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_185| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_185| ULTIMATE.start_main_p5) 0) (= (select |v_#memory_int_185| ULTIMATE.start_main_p1) 0) (= (store |v_#memory_int_185| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= .cse0 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:47:36,732 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:47:36,804 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:36,806 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:36,807 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:36,808 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:36,810 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:36,811 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:36,812 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:36,814 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:36,815 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:36,816 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:36,817 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:36,819 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:36,820 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:36,821 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 78 [2019-01-31 14:47:36,824 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:36,875 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:36,876 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:50, output treesize:38 [2019-01-31 14:47:46,892 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:46,893 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_186|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_186| ULTIMATE.start_main_p4))) (and (= (select |v_#memory_int_186| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_186| ULTIMATE.start_main_p1) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_186| ULTIMATE.start_main_p3) 0) (= (+ .cse0 1) 0) (= (store |v_#memory_int_186| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_186| ULTIMATE.start_main_p5) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:47:46,893 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:47:46,997 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:46,998 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:47,000 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:47,001 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:47,002 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:47,004 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:47,005 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:47,006 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:47,008 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:47,009 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:47,010 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:47,011 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:47,012 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:47,013 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 88 [2019-01-31 14:47:47,017 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:47,068 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:47,069 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:50, output treesize:40 [2019-01-31 14:47:47,077 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:47,077 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_187|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_187| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_187| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= 0 (select |v_#memory_int_187| ULTIMATE.start_main_p5)) (= (+ (select |v_#memory_int_187| ULTIMATE.start_main_p4) 2) 0) (= (select |v_#memory_int_187| ULTIMATE.start_main_p3) 0) (= 0 .cse0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= 0 (select |v_#memory_int_187| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:47:47,078 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) [2019-01-31 14:47:47,168 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:47,170 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:47,171 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:47,172 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:47,174 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:47,175 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:47,176 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:47,177 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:47,179 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:47,180 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:47,181 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:47,182 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:47,183 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:47,184 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:47,186 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:47,187 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:47,188 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 16 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 110 [2019-01-31 14:47:47,192 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:47,254 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:47,254 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:50, output treesize:40 [2019-01-31 14:47:47,391 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:47,392 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_188|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_188| ULTIMATE.start_main_p2))) (and (= (store |v_#memory_int_188| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |v_#memory_int_188| ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_188| ULTIMATE.start_main_p3)) (= 0 .cse0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |v_#memory_int_188| ULTIMATE.start_main_p4) 2) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 (select |v_#memory_int_188| ULTIMATE.start_main_p5)))) [2019-01-31 14:47:47,392 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) [2019-01-31 14:47:47,431 INFO L273 TraceCheckUtils]: 0: Hoare triple {11071#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {11080#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:47:47,434 INFO L273 TraceCheckUtils]: 1: Hoare triple {11080#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {11084#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:47:47,436 INFO L273 TraceCheckUtils]: 2: Hoare triple {11084#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {11088#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:47:47,438 INFO L273 TraceCheckUtils]: 3: Hoare triple {11088#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {11092#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:47:47,445 INFO L273 TraceCheckUtils]: 4: Hoare triple {11092#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {11096#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))))} is VALID [2019-01-31 14:47:47,446 INFO L273 TraceCheckUtils]: 5: Hoare triple {11096#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))))} assume !(#memory_int[main_p1] >= 0); {11072#false} is VALID [2019-01-31 14:47:47,446 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:47:47,446 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:47:47,523 INFO L273 TraceCheckUtils]: 5: Hoare triple {11100#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {11072#false} is VALID [2019-01-31 14:47:47,524 INFO L273 TraceCheckUtils]: 4: Hoare triple {11104#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {11100#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:47:47,526 INFO L273 TraceCheckUtils]: 3: Hoare triple {11108#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {11104#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:47:47,528 INFO L273 TraceCheckUtils]: 2: Hoare triple {11112#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {11108#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:47:47,530 INFO L273 TraceCheckUtils]: 1: Hoare triple {11116#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 2))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 2))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 2))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 2))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {11112#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:47:47,532 INFO L273 TraceCheckUtils]: 0: Hoare triple {11071#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {11116#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 2))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 2))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 2))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 2))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:47:47,533 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 3 proven. 7 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:47:47,552 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:47:47,552 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 5, 5] total 14 [2019-01-31 14:47:47,553 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:47:47,553 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 6 [2019-01-31 14:47:47,553 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:47:47,553 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states. [2019-01-31 14:47:47,582 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:47:47,582 INFO L459 AbstractCegarLoop]: Interpolant automaton has 11 states [2019-01-31 14:47:47,582 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2019-01-31 14:47:47,582 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=87, Invalid=153, Unknown=0, NotChecked=0, Total=240 [2019-01-31 14:47:47,583 INFO L87 Difference]: Start difference. First operand 77 states and 363 transitions. Second operand 11 states. [2019-01-31 14:47:52,137 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:52,137 INFO L93 Difference]: Finished difference Result 136 states and 478 transitions. [2019-01-31 14:47:52,137 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-31 14:47:52,137 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 6 [2019-01-31 14:47:52,137 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:47:52,137 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2019-01-31 14:47:52,138 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 92 transitions. [2019-01-31 14:47:52,138 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2019-01-31 14:47:52,138 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 92 transitions. [2019-01-31 14:47:52,138 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 92 transitions. [2019-01-31 14:47:52,373 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 92 edges. 92 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:47:52,377 INFO L225 Difference]: With dead ends: 136 [2019-01-31 14:47:52,378 INFO L226 Difference]: Without dead ends: 131 [2019-01-31 14:47:52,378 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 17 GetRequests, 1 SyntacticMatches, 0 SemanticMatches, 16 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 87 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=107, Invalid=199, Unknown=0, NotChecked=0, Total=306 [2019-01-31 14:47:52,379 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 131 states. [2019-01-31 14:47:53,356 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 131 to 77. [2019-01-31 14:47:53,356 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:47:53,356 INFO L82 GeneralOperation]: Start isEquivalent. First operand 131 states. Second operand 77 states. [2019-01-31 14:47:53,356 INFO L74 IsIncluded]: Start isIncluded. First operand 131 states. Second operand 77 states. [2019-01-31 14:47:53,357 INFO L87 Difference]: Start difference. First operand 131 states. Second operand 77 states. [2019-01-31 14:47:53,360 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:53,361 INFO L93 Difference]: Finished difference Result 131 states and 472 transitions. [2019-01-31 14:47:53,361 INFO L276 IsEmpty]: Start isEmpty. Operand 131 states and 472 transitions. [2019-01-31 14:47:53,361 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:47:53,361 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:47:53,361 INFO L74 IsIncluded]: Start isIncluded. First operand 77 states. Second operand 131 states. [2019-01-31 14:47:53,362 INFO L87 Difference]: Start difference. First operand 77 states. Second operand 131 states. [2019-01-31 14:47:53,365 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:47:53,366 INFO L93 Difference]: Finished difference Result 131 states and 472 transitions. [2019-01-31 14:47:53,366 INFO L276 IsEmpty]: Start isEmpty. Operand 131 states and 472 transitions. [2019-01-31 14:47:53,366 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:47:53,366 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:47:53,366 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:47:53,367 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:47:53,367 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 77 states. [2019-01-31 14:47:53,369 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 77 states to 77 states and 362 transitions. [2019-01-31 14:47:53,369 INFO L78 Accepts]: Start accepts. Automaton has 77 states and 362 transitions. Word has length 6 [2019-01-31 14:47:53,369 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:47:53,369 INFO L480 AbstractCegarLoop]: Abstraction has 77 states and 362 transitions. [2019-01-31 14:47:53,369 INFO L481 AbstractCegarLoop]: Interpolant automaton has 11 states. [2019-01-31 14:47:53,369 INFO L276 IsEmpty]: Start isEmpty. Operand 77 states and 362 transitions. [2019-01-31 14:47:53,370 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:47:53,370 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:47:53,370 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:47:53,370 INFO L423 AbstractCegarLoop]: === Iteration 38 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:47:53,370 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:47:53,371 INFO L82 PathProgramCache]: Analyzing trace with hash 904729414, now seen corresponding path program 1 times [2019-01-31 14:47:53,371 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:47:53,371 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:47:53,371 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-31 14:47:53,371 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:47:53,371 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:47:53,375 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:53,611 INFO L273 TraceCheckUtils]: 0: Hoare triple {11724#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {11726#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:47:53,612 INFO L273 TraceCheckUtils]: 1: Hoare triple {11726#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {11727#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:47:53,613 INFO L273 TraceCheckUtils]: 2: Hoare triple {11727#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {11728#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:47:53,614 INFO L273 TraceCheckUtils]: 3: Hoare triple {11728#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {11729#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:47:53,614 INFO L273 TraceCheckUtils]: 4: Hoare triple {11729#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {11729#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:47:53,615 INFO L273 TraceCheckUtils]: 5: Hoare triple {11729#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {11725#false} is VALID [2019-01-31 14:47:53,615 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:47:53,615 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:47:53,615 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:47:53,615 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-31 14:47:53,615 INFO L207 CegarAbsIntRunner]: [0], [6], [18], [20], [24], [25] [2019-01-31 14:47:53,617 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:47:53,618 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:47:53,631 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:47:53,631 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 68 root evaluator evaluations with a maximum evaluation depth of 3. Performed 68 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-31 14:47:53,632 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:47:53,632 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:47:53,632 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:47:53,633 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 36 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 36 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:47:53,644 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:47:53,644 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:47:53,649 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:53,656 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:47:53,656 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:47:53,677 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 18 treesize of output 21 [2019-01-31 14:47:53,684 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:53,685 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 21 treesize of output 27 [2019-01-31 14:47:53,696 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:53,697 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:53,698 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:47:53,712 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:53,713 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:53,714 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:53,715 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:47:53,844 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:53,846 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:53,847 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:53,849 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:53,850 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:47:53,854 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:53,886 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:53,904 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:53,918 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:53,931 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:47:53,952 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:53,952 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 2 variables, input treesize:31, output treesize:38 [2019-01-31 14:47:53,961 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:53,961 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_193|, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (store (store (store (store (store |v_#memory_int_193| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:47:53,961 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:47:54,021 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:54,022 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:54,024 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:54,025 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:54,026 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:54,028 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:54,029 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:54,031 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:54,032 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:54,034 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:54,035 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:54,036 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 66 [2019-01-31 14:47:54,039 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:54,208 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:54,208 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:48, output treesize:38 [2019-01-31 14:47:55,243 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:55,244 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_194|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_194| ULTIMATE.start_main_p4))) (and (= 0 .cse0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_194| ULTIMATE.start_main_p5) 0) (= 0 (select |v_#memory_int_194| ULTIMATE.start_main_p1)) (= |#memory_int| (store |v_#memory_int_194| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= 0 (select |v_#memory_int_194| ULTIMATE.start_main_p2)) (= (select |v_#memory_int_194| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:47:55,244 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:47:55,307 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:55,309 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:55,309 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:55,310 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:55,312 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:55,313 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:55,315 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:55,316 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:55,318 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:55,319 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:55,320 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:55,322 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:55,323 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:55,324 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 80 [2019-01-31 14:47:55,328 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:55,378 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:55,379 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:50, output treesize:40 [2019-01-31 14:47:58,396 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:47:58,396 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_195|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_195| ULTIMATE.start_main_p5))) (and (= .cse0 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_195| ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_195| ULTIMATE.start_main_p1)) (= 0 (+ (select |v_#memory_int_195| ULTIMATE.start_main_p4) 1)) (= |#memory_int| (store |v_#memory_int_195| ULTIMATE.start_main_p5 (+ .cse0 1))) (= (select |v_#memory_int_195| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:47:58,396 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:47:58,494 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,495 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,497 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,498 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,500 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,501 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,503 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,504 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,506 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,507 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,508 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,510 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,511 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,512 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:47:58,513 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:47:58,514 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 94 [2019-01-31 14:47:58,518 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:47:58,575 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:47:58,576 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:50, output treesize:40 [2019-01-31 14:48:03,574 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:48:03,574 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_196|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_196| ULTIMATE.start_main_p1))) (and (= (select |v_#memory_int_196| ULTIMATE.start_main_p5) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |v_#memory_int_196| ULTIMATE.start_main_p4) 1) 0) (= .cse0 0) (= 0 (select |v_#memory_int_196| ULTIMATE.start_main_p3)) (= (select |v_#memory_int_196| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= |#memory_int| (store |v_#memory_int_196| ULTIMATE.start_main_p1 (+ .cse0 1))))) [2019-01-31 14:48:03,575 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:48:03,700 INFO L273 TraceCheckUtils]: 0: Hoare triple {11724#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {11733#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:48:03,703 INFO L273 TraceCheckUtils]: 1: Hoare triple {11733#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {11737#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-31 14:48:03,707 INFO L273 TraceCheckUtils]: 2: Hoare triple {11737#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {11741#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:48:03,711 INFO L273 TraceCheckUtils]: 3: Hoare triple {11741#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {11745#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:48:03,712 INFO L273 TraceCheckUtils]: 4: Hoare triple {11745#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume #memory_int[main_p1] >= 0; {11745#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:48:03,713 INFO L273 TraceCheckUtils]: 5: Hoare triple {11745#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume !(#memory_int[main_p2] <= 0); {11725#false} is VALID [2019-01-31 14:48:03,713 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:48:03,714 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:48:03,782 INFO L273 TraceCheckUtils]: 5: Hoare triple {11752#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {11725#false} is VALID [2019-01-31 14:48:03,782 INFO L273 TraceCheckUtils]: 4: Hoare triple {11752#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {11752#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:48:03,783 INFO L273 TraceCheckUtils]: 3: Hoare triple {11759#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {11752#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:48:03,784 INFO L273 TraceCheckUtils]: 2: Hoare triple {11763#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {11759#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:48:03,785 INFO L273 TraceCheckUtils]: 1: Hoare triple {11767#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {11763#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:48:03,787 INFO L273 TraceCheckUtils]: 0: Hoare triple {11724#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {11767#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:48:03,788 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 1 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:48:03,807 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:48:03,807 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-31 14:48:03,807 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:48:03,807 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-31 14:48:03,808 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:48:03,808 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-31 14:48:03,831 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:48:03,832 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-31 14:48:03,832 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-31 14:48:03,832 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=67, Invalid=115, Unknown=0, NotChecked=0, Total=182 [2019-01-31 14:48:03,832 INFO L87 Difference]: Start difference. First operand 77 states and 362 transitions. Second operand 10 states. [2019-01-31 14:48:05,844 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:48:05,844 INFO L93 Difference]: Finished difference Result 106 states and 409 transitions. [2019-01-31 14:48:05,845 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-31 14:48:05,845 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-31 14:48:05,845 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:48:05,845 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:48:05,846 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 63 transitions. [2019-01-31 14:48:05,846 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:48:05,846 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 63 transitions. [2019-01-31 14:48:05,846 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 63 transitions. [2019-01-31 14:48:05,957 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 63 edges. 63 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:48:05,959 INFO L225 Difference]: With dead ends: 106 [2019-01-31 14:48:05,959 INFO L226 Difference]: Without dead ends: 105 [2019-01-31 14:48:05,959 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 3 SyntacticMatches, 0 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 63 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=100, Invalid=172, Unknown=0, NotChecked=0, Total=272 [2019-01-31 14:48:05,960 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 105 states. [2019-01-31 14:48:06,831 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 105 to 77. [2019-01-31 14:48:06,832 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:48:06,832 INFO L82 GeneralOperation]: Start isEquivalent. First operand 105 states. Second operand 77 states. [2019-01-31 14:48:06,832 INFO L74 IsIncluded]: Start isIncluded. First operand 105 states. Second operand 77 states. [2019-01-31 14:48:06,832 INFO L87 Difference]: Start difference. First operand 105 states. Second operand 77 states. [2019-01-31 14:48:06,836 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:48:06,836 INFO L93 Difference]: Finished difference Result 105 states and 407 transitions. [2019-01-31 14:48:06,836 INFO L276 IsEmpty]: Start isEmpty. Operand 105 states and 407 transitions. [2019-01-31 14:48:06,836 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:48:06,836 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:48:06,836 INFO L74 IsIncluded]: Start isIncluded. First operand 77 states. Second operand 105 states. [2019-01-31 14:48:06,837 INFO L87 Difference]: Start difference. First operand 77 states. Second operand 105 states. [2019-01-31 14:48:06,839 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:48:06,839 INFO L93 Difference]: Finished difference Result 105 states and 407 transitions. [2019-01-31 14:48:06,839 INFO L276 IsEmpty]: Start isEmpty. Operand 105 states and 407 transitions. [2019-01-31 14:48:06,839 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:48:06,839 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:48:06,839 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:48:06,839 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:48:06,839 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 77 states. [2019-01-31 14:48:06,841 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 77 states to 77 states and 362 transitions. [2019-01-31 14:48:06,841 INFO L78 Accepts]: Start accepts. Automaton has 77 states and 362 transitions. Word has length 6 [2019-01-31 14:48:06,841 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:48:06,841 INFO L480 AbstractCegarLoop]: Abstraction has 77 states and 362 transitions. [2019-01-31 14:48:06,841 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-31 14:48:06,841 INFO L276 IsEmpty]: Start isEmpty. Operand 77 states and 362 transitions. [2019-01-31 14:48:06,842 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:48:06,842 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:48:06,842 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:48:06,842 INFO L423 AbstractCegarLoop]: === Iteration 39 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:48:06,842 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:48:06,842 INFO L82 PathProgramCache]: Analyzing trace with hash 904728978, now seen corresponding path program 1 times [2019-01-31 14:48:06,842 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:48:06,843 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:48:06,843 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:48:06,843 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:48:06,843 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:48:06,846 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:48:07,699 WARN L181 SmtUtils]: Spent 508.00 ms on a formula simplification. DAG size of input: 40 DAG size of output: 21 [2019-01-31 14:48:07,839 INFO L273 TraceCheckUtils]: 0: Hoare triple {12287#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {12289#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:48:07,840 INFO L273 TraceCheckUtils]: 1: Hoare triple {12289#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {12290#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:48:07,841 INFO L273 TraceCheckUtils]: 2: Hoare triple {12290#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {12291#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:48:07,841 INFO L273 TraceCheckUtils]: 3: Hoare triple {12291#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {12292#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:48:07,842 INFO L273 TraceCheckUtils]: 4: Hoare triple {12292#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {12293#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:48:07,843 INFO L273 TraceCheckUtils]: 5: Hoare triple {12293#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {12288#false} is VALID [2019-01-31 14:48:07,843 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:48:07,844 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:48:07,844 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:48:07,844 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-31 14:48:07,844 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [18], [20], [23] [2019-01-31 14:48:07,845 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:48:07,845 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:48:07,861 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:48:07,862 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 68 root evaluator evaluations with a maximum evaluation depth of 3. Performed 68 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 4 fixpoints after 4 different actions. Largest state had 0 variables. [2019-01-31 14:48:07,862 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:48:07,862 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:48:07,862 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:48:07,862 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 37 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 37 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:48:07,870 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:48:07,870 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:48:07,875 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:48:07,879 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:48:07,879 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:48:07,894 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 18 treesize of output 21 [2019-01-31 14:48:07,901 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:07,902 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 21 treesize of output 27 [2019-01-31 14:48:07,912 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:07,914 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:07,914 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:48:07,928 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:07,929 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:07,931 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:07,931 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:48:07,950 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:07,951 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:07,953 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:07,954 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:07,955 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:48:07,958 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:48:07,989 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:48:08,006 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:48:08,020 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:48:08,033 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:48:08,055 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:48:08,055 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 2 variables, input treesize:31, output treesize:38 [2019-01-31 14:48:08,065 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:48:08,066 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_200|, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store (store |v_#memory_int_200| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:48:08,066 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:48:08,121 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:08,122 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:08,124 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:08,125 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:08,127 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:08,128 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:08,130 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:08,131 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:08,133 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:08,134 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:08,135 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:08,136 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 66 [2019-01-31 14:48:08,140 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:48:08,188 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:48:08,189 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:48, output treesize:38 [2019-01-31 14:48:12,351 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:48:12,352 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_201|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_201| ULTIMATE.start_main_p4))) (and (= |#memory_int| (store |v_#memory_int_201| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= (select |v_#memory_int_201| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_201| ULTIMATE.start_main_p1)) (= .cse0 0) (= 0 (select |v_#memory_int_201| ULTIMATE.start_main_p2)) (= (select |v_#memory_int_201| ULTIMATE.start_main_p5) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:48:12,352 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:48:12,427 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:12,428 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:12,430 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:12,431 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:12,433 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:12,434 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:12,436 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:12,437 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:12,438 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:12,440 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:12,441 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:12,442 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:12,444 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:12,445 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 80 [2019-01-31 14:48:12,450 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:48:12,527 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:48:12,528 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:50, output treesize:40 [2019-01-31 14:48:16,845 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:48:16,846 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_202|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_202| ULTIMATE.start_main_p5))) (and (= 0 (select |v_#memory_int_202| ULTIMATE.start_main_p1)) (= |#memory_int| (store |v_#memory_int_202| ULTIMATE.start_main_p5 (+ .cse0 1))) (= 0 (+ (select |v_#memory_int_202| ULTIMATE.start_main_p4) 1)) (= 0 (select |v_#memory_int_202| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_202| ULTIMATE.start_main_p3)) (= .cse0 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:48:16,846 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:48:16,998 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:16,999 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:17,001 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:17,002 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:17,004 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:17,005 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:17,007 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:17,008 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:17,010 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:17,011 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:17,013 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:17,014 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:17,015 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:17,017 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:17,017 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:48:17,026 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 94 [2019-01-31 14:48:17,028 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:48:17,097 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:48:17,097 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:50, output treesize:40 [2019-01-31 14:48:17,105 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:48:17,105 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_203|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_203| ULTIMATE.start_main_p1))) (and (= |#memory_int| (store |v_#memory_int_203| ULTIMATE.start_main_p1 (+ .cse0 1))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_203| ULTIMATE.start_main_p3)) (= .cse0 0) (= 0 (select |v_#memory_int_203| ULTIMATE.start_main_p2)) (= (+ (select |v_#memory_int_203| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= 1 (select |v_#memory_int_203| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:48:17,105 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:48:17,166 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:17,168 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:17,169 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:17,170 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:17,171 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:17,173 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:17,174 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:17,175 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:17,177 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:17,178 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:17,179 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:17,180 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:17,181 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:48:17,182 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:17,183 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 93 [2019-01-31 14:48:17,187 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:48:17,243 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:48:17,244 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:50, output treesize:38 [2019-01-31 14:48:17,265 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:48:17,266 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_204|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_204| ULTIMATE.start_main_p2))) (and (= (select |v_#memory_int_204| ULTIMATE.start_main_p5) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_204| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= .cse0 0) (= (select |v_#memory_int_204| ULTIMATE.start_main_p1) 1) (= (select |v_#memory_int_204| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |v_#memory_int_204| ULTIMATE.start_main_p4) 1) 0))) [2019-01-31 14:48:17,266 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:48:17,326 INFO L273 TraceCheckUtils]: 0: Hoare triple {12287#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {12297#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:48:17,328 INFO L273 TraceCheckUtils]: 1: Hoare triple {12297#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {12301#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-31 14:48:17,331 INFO L273 TraceCheckUtils]: 2: Hoare triple {12301#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {12305#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:48:17,334 INFO L273 TraceCheckUtils]: 3: Hoare triple {12305#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {12309#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:48:17,341 INFO L273 TraceCheckUtils]: 4: Hoare triple {12309#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {12313#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-31 14:48:17,342 INFO L273 TraceCheckUtils]: 5: Hoare triple {12313#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {12288#false} is VALID [2019-01-31 14:48:17,342 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:48:17,342 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:48:17,443 INFO L273 TraceCheckUtils]: 5: Hoare triple {12317#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {12288#false} is VALID [2019-01-31 14:48:17,444 INFO L273 TraceCheckUtils]: 4: Hoare triple {12321#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {12317#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:48:17,445 INFO L273 TraceCheckUtils]: 3: Hoare triple {12325#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {12321#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:48:17,447 INFO L273 TraceCheckUtils]: 2: Hoare triple {12329#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {12325#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:48:17,450 INFO L273 TraceCheckUtils]: 1: Hoare triple {12333#(<= 0 (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {12329#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:48:17,452 INFO L273 TraceCheckUtils]: 0: Hoare triple {12287#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {12333#(<= 0 (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:48:17,452 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 6 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:48:17,471 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:48:17,471 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5, 5] total 15 [2019-01-31 14:48:17,471 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:48:17,472 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-31 14:48:17,472 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:48:17,472 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-01-31 14:48:17,498 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:48:17,498 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-01-31 14:48:17,499 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-01-31 14:48:17,499 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=102, Invalid=170, Unknown=0, NotChecked=0, Total=272 [2019-01-31 14:48:17,499 INFO L87 Difference]: Start difference. First operand 77 states and 362 transitions. Second operand 12 states. [2019-01-31 14:48:20,528 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:48:20,529 INFO L93 Difference]: Finished difference Result 131 states and 463 transitions. [2019-01-31 14:48:20,529 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-31 14:48:20,529 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-31 14:48:20,529 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:48:20,529 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-31 14:48:20,529 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 89 transitions. [2019-01-31 14:48:20,530 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-31 14:48:20,530 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 89 transitions. [2019-01-31 14:48:20,530 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 89 transitions. [2019-01-31 14:48:20,749 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 89 edges. 89 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:48:20,752 INFO L225 Difference]: With dead ends: 131 [2019-01-31 14:48:20,752 INFO L226 Difference]: Without dead ends: 130 [2019-01-31 14:48:20,752 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 18 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 100 ImplicationChecksByTransitivity, 1.3s TimeCoverageRelationStatistics Valid=134, Invalid=246, Unknown=0, NotChecked=0, Total=380 [2019-01-31 14:48:20,753 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 130 states. [2019-01-31 14:48:21,666 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 130 to 77. [2019-01-31 14:48:21,666 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:48:21,666 INFO L82 GeneralOperation]: Start isEquivalent. First operand 130 states. Second operand 77 states. [2019-01-31 14:48:21,666 INFO L74 IsIncluded]: Start isIncluded. First operand 130 states. Second operand 77 states. [2019-01-31 14:48:21,667 INFO L87 Difference]: Start difference. First operand 130 states. Second operand 77 states. [2019-01-31 14:48:21,671 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:48:21,671 INFO L93 Difference]: Finished difference Result 130 states and 461 transitions. [2019-01-31 14:48:21,671 INFO L276 IsEmpty]: Start isEmpty. Operand 130 states and 461 transitions. [2019-01-31 14:48:21,671 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:48:21,671 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:48:21,672 INFO L74 IsIncluded]: Start isIncluded. First operand 77 states. Second operand 130 states. [2019-01-31 14:48:21,672 INFO L87 Difference]: Start difference. First operand 77 states. Second operand 130 states. [2019-01-31 14:48:21,674 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:48:21,674 INFO L93 Difference]: Finished difference Result 130 states and 461 transitions. [2019-01-31 14:48:21,674 INFO L276 IsEmpty]: Start isEmpty. Operand 130 states and 461 transitions. [2019-01-31 14:48:21,674 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:48:21,675 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:48:21,675 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:48:21,675 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:48:21,675 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 77 states. [2019-01-31 14:48:21,676 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 77 states to 77 states and 362 transitions. [2019-01-31 14:48:21,676 INFO L78 Accepts]: Start accepts. Automaton has 77 states and 362 transitions. Word has length 6 [2019-01-31 14:48:21,676 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:48:21,677 INFO L480 AbstractCegarLoop]: Abstraction has 77 states and 362 transitions. [2019-01-31 14:48:21,677 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-01-31 14:48:21,677 INFO L276 IsEmpty]: Start isEmpty. Operand 77 states and 362 transitions. [2019-01-31 14:48:21,677 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:48:21,677 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:48:21,677 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:48:21,677 INFO L423 AbstractCegarLoop]: === Iteration 40 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:48:21,677 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:48:21,678 INFO L82 PathProgramCache]: Analyzing trace with hash 904746776, now seen corresponding path program 1 times [2019-01-31 14:48:21,678 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:48:21,678 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:48:21,679 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:48:21,679 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:48:21,679 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:48:21,682 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:48:21,798 INFO L273 TraceCheckUtils]: 0: Hoare triple {12934#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {12936#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:48:21,799 INFO L273 TraceCheckUtils]: 1: Hoare triple {12936#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {12937#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:48:21,800 INFO L273 TraceCheckUtils]: 2: Hoare triple {12937#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {12938#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-31 14:48:21,800 INFO L273 TraceCheckUtils]: 3: Hoare triple {12938#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p1] >= 0; {12938#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-31 14:48:21,801 INFO L273 TraceCheckUtils]: 4: Hoare triple {12938#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p2] <= 0; {12938#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-31 14:48:21,815 INFO L273 TraceCheckUtils]: 5: Hoare triple {12938#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume !(#memory_int[main_p3] >= 0); {12935#false} is VALID [2019-01-31 14:48:21,815 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:48:21,815 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:48:21,815 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:48:21,816 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-31 14:48:21,816 INFO L207 CegarAbsIntRunner]: [0], [18], [20], [24], [26], [27] [2019-01-31 14:48:21,816 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:48:21,816 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:48:21,825 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:48:21,826 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 68 root evaluator evaluations with a maximum evaluation depth of 3. Performed 68 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-31 14:48:21,826 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:48:21,826 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:48:21,826 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:48:21,827 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 38 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 38 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:48:21,837 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:48:21,837 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:48:21,842 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:48:21,845 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:48:21,846 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:48:21,857 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 18 treesize of output 21 [2019-01-31 14:48:21,862 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 23 [2019-01-31 14:48:21,876 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 25 [2019-01-31 14:48:21,893 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:21,894 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 1 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 31 [2019-01-31 14:48:21,908 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:21,917 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:21,918 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 3 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 38 [2019-01-31 14:48:21,920 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:48:21,938 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:48:21,949 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:48:21,961 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:48:21,973 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:48:21,989 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:48:21,989 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 3 variables, input treesize:25, output treesize:32 [2019-01-31 14:48:21,995 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:48:21,995 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_209|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store (store |v_#memory_int_209| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5)) [2019-01-31 14:48:21,996 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:48:22,049 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:22,050 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:22,052 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:22,053 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:22,054 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 28 [2019-01-31 14:48:22,056 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:48:22,073 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:48:22,074 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:22 [2019-01-31 14:48:31,890 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:48:31,891 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_210|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_210| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= 0 (select |v_#memory_int_210| ULTIMATE.start_main_p5)) (= |#memory_int| (store |v_#memory_int_210| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= (select |v_#memory_int_210| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) [2019-01-31 14:48:31,891 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5)) [2019-01-31 14:48:31,944 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:31,946 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:31,947 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:31,948 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:31,949 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:31,950 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:31,951 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 28 treesize of output 42 [2019-01-31 14:48:31,954 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:48:31,974 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:48:31,974 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:34, output treesize:24 [2019-01-31 14:48:31,982 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:48:31,982 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_211|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_211| ULTIMATE.start_main_p5))) (and (= (store |v_#memory_int_211| ULTIMATE.start_main_p5 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_211| ULTIMATE.start_main_p3) 0) (= (+ (select |v_#memory_int_211| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= .cse0 0))) [2019-01-31 14:48:31,982 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5)) [2019-01-31 14:48:32,034 INFO L273 TraceCheckUtils]: 0: Hoare triple {12934#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {12942#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-31 14:48:32,036 INFO L273 TraceCheckUtils]: 1: Hoare triple {12942#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {12946#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-31 14:48:32,038 INFO L273 TraceCheckUtils]: 2: Hoare triple {12946#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {12950#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} is VALID [2019-01-31 14:48:32,041 INFO L273 TraceCheckUtils]: 3: Hoare triple {12950#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} assume #memory_int[main_p1] >= 0; {12950#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} is VALID [2019-01-31 14:48:32,042 INFO L273 TraceCheckUtils]: 4: Hoare triple {12950#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} assume #memory_int[main_p2] <= 0; {12950#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} is VALID [2019-01-31 14:48:32,042 INFO L273 TraceCheckUtils]: 5: Hoare triple {12950#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} assume !(#memory_int[main_p3] >= 0); {12935#false} is VALID [2019-01-31 14:48:32,042 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:48:32,043 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:48:32,082 INFO L273 TraceCheckUtils]: 5: Hoare triple {12960#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {12935#false} is VALID [2019-01-31 14:48:32,083 INFO L273 TraceCheckUtils]: 4: Hoare triple {12960#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {12960#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:48:32,084 INFO L273 TraceCheckUtils]: 3: Hoare triple {12960#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {12960#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:48:32,085 INFO L273 TraceCheckUtils]: 2: Hoare triple {12970#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {12960#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:48:32,086 INFO L273 TraceCheckUtils]: 1: Hoare triple {12974#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {12970#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:48:32,089 INFO L273 TraceCheckUtils]: 0: Hoare triple {12934#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {12974#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:48:32,089 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:48:32,110 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:48:32,110 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:48:32,110 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:48:32,111 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-31 14:48:32,111 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:48:32,111 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:48:32,129 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:48:32,129 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:48:32,129 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:48:32,130 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:48:32,130 INFO L87 Difference]: Start difference. First operand 77 states and 362 transitions. Second operand 8 states. [2019-01-31 14:48:33,689 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:48:33,689 INFO L93 Difference]: Finished difference Result 93 states and 382 transitions. [2019-01-31 14:48:33,689 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-31 14:48:33,689 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-31 14:48:33,689 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:48:33,690 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:48:33,690 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 49 transitions. [2019-01-31 14:48:33,690 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:48:33,691 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 49 transitions. [2019-01-31 14:48:33,691 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 49 transitions. [2019-01-31 14:48:33,763 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 49 edges. 49 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:48:33,766 INFO L225 Difference]: With dead ends: 93 [2019-01-31 14:48:33,766 INFO L226 Difference]: Without dead ends: 92 [2019-01-31 14:48:33,766 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 15 GetRequests, 4 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:48:33,766 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 92 states. [2019-01-31 14:48:34,723 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 92 to 77. [2019-01-31 14:48:34,723 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:48:34,724 INFO L82 GeneralOperation]: Start isEquivalent. First operand 92 states. Second operand 77 states. [2019-01-31 14:48:34,724 INFO L74 IsIncluded]: Start isIncluded. First operand 92 states. Second operand 77 states. [2019-01-31 14:48:34,724 INFO L87 Difference]: Start difference. First operand 92 states. Second operand 77 states. [2019-01-31 14:48:34,727 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:48:34,727 INFO L93 Difference]: Finished difference Result 92 states and 380 transitions. [2019-01-31 14:48:34,728 INFO L276 IsEmpty]: Start isEmpty. Operand 92 states and 380 transitions. [2019-01-31 14:48:34,728 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:48:34,728 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:48:34,728 INFO L74 IsIncluded]: Start isIncluded. First operand 77 states. Second operand 92 states. [2019-01-31 14:48:34,728 INFO L87 Difference]: Start difference. First operand 77 states. Second operand 92 states. [2019-01-31 14:48:34,731 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:48:34,731 INFO L93 Difference]: Finished difference Result 92 states and 380 transitions. [2019-01-31 14:48:34,731 INFO L276 IsEmpty]: Start isEmpty. Operand 92 states and 380 transitions. [2019-01-31 14:48:34,731 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:48:34,731 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:48:34,731 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:48:34,731 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:48:34,732 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 77 states. [2019-01-31 14:48:34,734 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 77 states to 77 states and 362 transitions. [2019-01-31 14:48:34,734 INFO L78 Accepts]: Start accepts. Automaton has 77 states and 362 transitions. Word has length 6 [2019-01-31 14:48:34,734 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:48:34,735 INFO L480 AbstractCegarLoop]: Abstraction has 77 states and 362 transitions. [2019-01-31 14:48:34,735 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:48:34,735 INFO L276 IsEmpty]: Start isEmpty. Operand 77 states and 362 transitions. [2019-01-31 14:48:34,735 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:48:34,735 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:48:34,735 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:48:34,736 INFO L423 AbstractCegarLoop]: === Iteration 41 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:48:34,736 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:48:34,736 INFO L82 PathProgramCache]: Analyzing trace with hash 904732946, now seen corresponding path program 1 times [2019-01-31 14:48:34,736 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:48:34,737 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:48:34,737 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:48:34,737 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:48:34,737 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:48:34,741 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:48:35,077 INFO L273 TraceCheckUtils]: 0: Hoare triple {13450#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {13452#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:48:35,079 INFO L273 TraceCheckUtils]: 1: Hoare triple {13452#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {13453#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:48:35,080 INFO L273 TraceCheckUtils]: 2: Hoare triple {13453#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {13454#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:48:35,081 INFO L273 TraceCheckUtils]: 3: Hoare triple {13454#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {13455#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:48:35,082 INFO L273 TraceCheckUtils]: 4: Hoare triple {13455#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {13456#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-31 14:48:35,083 INFO L273 TraceCheckUtils]: 5: Hoare triple {13456#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {13451#false} is VALID [2019-01-31 14:48:35,083 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:48:35,084 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:48:35,084 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:48:35,084 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-31 14:48:35,084 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [18], [20], [23] [2019-01-31 14:48:35,085 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:48:35,085 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:48:35,109 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:48:35,109 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 68 root evaluator evaluations with a maximum evaluation depth of 3. Performed 68 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 4 fixpoints after 4 different actions. Largest state had 0 variables. [2019-01-31 14:48:35,109 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:48:35,109 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:48:35,110 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:48:35,110 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 39 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 39 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:48:35,122 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:48:35,122 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:48:35,127 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:48:35,130 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:48:35,131 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:48:35,145 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 18 treesize of output 21 [2019-01-31 14:48:35,152 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:35,153 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 21 treesize of output 27 [2019-01-31 14:48:35,169 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:35,170 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:35,171 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:48:35,185 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:35,186 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:35,187 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:35,188 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:48:35,436 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:35,437 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:35,438 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:35,439 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:35,440 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:48:35,444 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:48:35,475 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:48:35,493 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:48:35,506 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:48:35,519 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:48:35,541 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:48:35,541 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 1 variables, input treesize:31, output treesize:38 [2019-01-31 14:48:35,547 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:48:35,547 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_214|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store (store |v_#memory_int_214| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:48:35,547 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:48:35,612 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:35,613 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:35,615 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:35,616 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:35,617 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:35,619 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:35,620 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:35,621 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:35,623 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:35,624 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:35,625 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:35,626 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 66 [2019-01-31 14:48:35,631 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:48:35,680 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:48:35,680 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:48, output treesize:38 [2019-01-31 14:48:45,716 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:48:45,717 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_215|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_215| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_215| ULTIMATE.start_main_p5)) (= (store |v_#memory_int_215| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_215| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_215| ULTIMATE.start_main_p3) 0) (= 0 .cse0) (= (select |v_#memory_int_215| ULTIMATE.start_main_p1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:48:45,717 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:48:45,794 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:45,795 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:45,797 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:45,798 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:45,799 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:45,801 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:45,802 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:45,803 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:45,804 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:45,806 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:45,807 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:45,808 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:45,809 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:45,810 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 80 [2019-01-31 14:48:45,814 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:48:45,863 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:48:45,864 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:50, output treesize:40 [2019-01-31 14:48:45,872 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:48:45,872 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_216|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_216| ULTIMATE.start_main_p5))) (and (= (select |v_#memory_int_216| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_216| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_216| ULTIMATE.start_main_p3)) (= (store |v_#memory_int_216| ULTIMATE.start_main_p5 (+ .cse0 1)) |#memory_int|) (= 0 .cse0) (= 0 (+ (select |v_#memory_int_216| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:48:45,872 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:48:45,935 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:45,937 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:45,938 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:45,939 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:45,940 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:45,942 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:45,943 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:45,944 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:45,946 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:45,947 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:45,948 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:45,949 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:45,950 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:48:45,951 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:45,952 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 97 [2019-01-31 14:48:45,956 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:48:46,013 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:48:46,013 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:50, output treesize:38 [2019-01-31 14:48:54,658 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:48:54,659 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_217|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_217| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_217| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_217| ULTIMATE.start_main_p5) 1) (= 0 .cse0) (= (select |v_#memory_int_217| ULTIMATE.start_main_p1) 0) (= 0 (+ (select |v_#memory_int_217| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |v_#memory_int_217| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:48:54,659 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:48:54,737 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:54,739 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:54,740 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:54,742 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:54,743 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:54,745 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:54,746 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:54,748 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:54,749 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:54,750 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:54,752 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:54,753 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:54,754 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:54,756 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:48:54,756 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:48:54,757 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 40 treesize of output 100 [2019-01-31 14:48:54,760 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:48:54,817 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:48:54,817 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:52, output treesize:42 [2019-01-31 14:49:05,813 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:05,813 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_218|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_218| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |v_#memory_int_218| ULTIMATE.start_main_p5)) (= (+ (select |v_#memory_int_218| ULTIMATE.start_main_p4) 1) 0) (= |#memory_int| (store |v_#memory_int_218| ULTIMATE.start_main_p3 (+ .cse0 1))) (= .cse0 0) (= (select |v_#memory_int_218| ULTIMATE.start_main_p1) 0) (= (+ (select |v_#memory_int_218| ULTIMATE.start_main_p2) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:49:05,813 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-31 14:49:06,015 INFO L273 TraceCheckUtils]: 0: Hoare triple {13450#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {13460#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:49:06,017 INFO L273 TraceCheckUtils]: 1: Hoare triple {13460#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {13464#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:49:06,020 INFO L273 TraceCheckUtils]: 2: Hoare triple {13464#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {13468#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:49:06,023 INFO L273 TraceCheckUtils]: 3: Hoare triple {13468#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {13472#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} is VALID [2019-01-31 14:49:06,030 INFO L273 TraceCheckUtils]: 4: Hoare triple {13472#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {13476#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-31 14:49:06,031 INFO L273 TraceCheckUtils]: 5: Hoare triple {13476#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume !(#memory_int[main_p1] >= 0); {13451#false} is VALID [2019-01-31 14:49:06,031 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:49:06,031 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:49:06,135 INFO L273 TraceCheckUtils]: 5: Hoare triple {13480#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {13451#false} is VALID [2019-01-31 14:49:06,136 INFO L273 TraceCheckUtils]: 4: Hoare triple {13484#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {13480#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:49:06,138 INFO L273 TraceCheckUtils]: 3: Hoare triple {13488#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {13484#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:49:06,140 INFO L273 TraceCheckUtils]: 2: Hoare triple {13492#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {13488#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:49:06,144 INFO L273 TraceCheckUtils]: 1: Hoare triple {13496#(<= 0 (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {13492#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:49:06,146 INFO L273 TraceCheckUtils]: 0: Hoare triple {13450#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {13496#(<= 0 (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:49:06,146 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 2 proven. 8 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:49:06,165 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:49:06,166 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5, 5] total 15 [2019-01-31 14:49:06,166 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:49:06,166 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-31 14:49:06,166 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:49:06,166 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-01-31 14:49:06,189 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:49:06,189 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-01-31 14:49:06,190 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-01-31 14:49:06,190 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=94, Invalid=178, Unknown=0, NotChecked=0, Total=272 [2019-01-31 14:49:06,190 INFO L87 Difference]: Start difference. First operand 77 states and 362 transitions. Second operand 12 states. [2019-01-31 14:49:09,377 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:49:09,377 INFO L93 Difference]: Finished difference Result 117 states and 435 transitions. [2019-01-31 14:49:09,377 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-31 14:49:09,377 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-31 14:49:09,377 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:49:09,377 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-31 14:49:09,378 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 76 transitions. [2019-01-31 14:49:09,378 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-31 14:49:09,378 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 76 transitions. [2019-01-31 14:49:09,378 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 76 transitions. [2019-01-31 14:49:09,578 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 76 edges. 76 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:49:09,581 INFO L225 Difference]: With dead ends: 117 [2019-01-31 14:49:09,581 INFO L226 Difference]: Without dead ends: 115 [2019-01-31 14:49:09,582 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 19 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 19 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 103 ImplicationChecksByTransitivity, 0.9s TimeCoverageRelationStatistics Valid=146, Invalid=274, Unknown=0, NotChecked=0, Total=420 [2019-01-31 14:49:09,582 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 115 states. [2019-01-31 14:49:10,596 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 115 to 74. [2019-01-31 14:49:10,596 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:49:10,597 INFO L82 GeneralOperation]: Start isEquivalent. First operand 115 states. Second operand 74 states. [2019-01-31 14:49:10,597 INFO L74 IsIncluded]: Start isIncluded. First operand 115 states. Second operand 74 states. [2019-01-31 14:49:10,597 INFO L87 Difference]: Start difference. First operand 115 states. Second operand 74 states. [2019-01-31 14:49:10,601 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:49:10,601 INFO L93 Difference]: Finished difference Result 115 states and 431 transitions. [2019-01-31 14:49:10,601 INFO L276 IsEmpty]: Start isEmpty. Operand 115 states and 431 transitions. [2019-01-31 14:49:10,601 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:49:10,601 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:49:10,602 INFO L74 IsIncluded]: Start isIncluded. First operand 74 states. Second operand 115 states. [2019-01-31 14:49:10,602 INFO L87 Difference]: Start difference. First operand 74 states. Second operand 115 states. [2019-01-31 14:49:10,605 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:49:10,605 INFO L93 Difference]: Finished difference Result 115 states and 431 transitions. [2019-01-31 14:49:10,605 INFO L276 IsEmpty]: Start isEmpty. Operand 115 states and 431 transitions. [2019-01-31 14:49:10,605 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:49:10,605 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:49:10,605 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:49:10,605 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:49:10,606 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 74 states. [2019-01-31 14:49:10,608 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 74 states to 74 states and 344 transitions. [2019-01-31 14:49:10,608 INFO L78 Accepts]: Start accepts. Automaton has 74 states and 344 transitions. Word has length 6 [2019-01-31 14:49:10,608 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:49:10,608 INFO L480 AbstractCegarLoop]: Abstraction has 74 states and 344 transitions. [2019-01-31 14:49:10,608 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-01-31 14:49:10,608 INFO L276 IsEmpty]: Start isEmpty. Operand 74 states and 344 transitions. [2019-01-31 14:49:10,608 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:49:10,608 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:49:10,609 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:49:10,609 INFO L423 AbstractCegarLoop]: === Iteration 42 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:49:10,609 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:49:10,609 INFO L82 PathProgramCache]: Analyzing trace with hash 904737102, now seen corresponding path program 1 times [2019-01-31 14:49:10,609 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:49:10,610 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:49:10,610 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:49:10,610 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:49:10,610 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:49:10,613 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:49:10,981 INFO L273 TraceCheckUtils]: 0: Hoare triple {14046#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {14048#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:49:10,982 INFO L273 TraceCheckUtils]: 1: Hoare triple {14048#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {14049#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:49:10,984 INFO L273 TraceCheckUtils]: 2: Hoare triple {14049#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {14050#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:49:10,985 INFO L273 TraceCheckUtils]: 3: Hoare triple {14050#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {14051#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:49:10,985 INFO L273 TraceCheckUtils]: 4: Hoare triple {14051#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {14051#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:49:10,986 INFO L273 TraceCheckUtils]: 5: Hoare triple {14051#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {14047#false} is VALID [2019-01-31 14:49:10,986 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:49:10,986 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:49:10,987 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:49:10,987 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-31 14:49:10,987 INFO L207 CegarAbsIntRunner]: [0], [14], [18], [20], [24], [25] [2019-01-31 14:49:10,988 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:49:10,988 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:49:10,996 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:49:10,997 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 68 root evaluator evaluations with a maximum evaluation depth of 3. Performed 68 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-31 14:49:10,997 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:49:10,997 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:49:10,997 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:49:10,997 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 40 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 40 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:49:11,006 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:49:11,006 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:49:11,011 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:49:11,015 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:49:11,016 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:49:11,028 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 18 treesize of output 21 [2019-01-31 14:49:11,036 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 23 [2019-01-31 14:49:11,046 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:11,047 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 23 treesize of output 29 [2019-01-31 14:49:11,064 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:11,066 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:11,067 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 39 [2019-01-31 14:49:11,082 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:11,087 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:11,089 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:11,090 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 50 [2019-01-31 14:49:11,103 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:11,123 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:11,137 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:11,149 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:11,160 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:11,180 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:11,180 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 2 variables, input treesize:28, output treesize:35 [2019-01-31 14:49:11,186 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:11,187 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_223|, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store (store |v_#memory_int_223| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:49:11,187 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:49:11,262 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:11,263 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:11,265 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:11,266 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:11,268 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:11,269 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:11,270 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:11,271 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-31 14:49:11,274 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:11,304 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:11,304 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-31 14:49:21,375 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:21,375 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_224|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_224| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_224| ULTIMATE.start_main_p2) 0) (= 0 .cse0) (= (select |v_#memory_int_224| ULTIMATE.start_main_p5) 0) (= |#memory_int| (store |v_#memory_int_224| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= 0 (select |v_#memory_int_224| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-31 14:49:21,375 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:49:21,438 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:21,440 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:21,441 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:21,442 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:21,444 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:21,445 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:21,446 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:21,447 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:21,448 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:21,449 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 59 [2019-01-31 14:49:21,451 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:21,483 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:21,483 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-31 14:49:21,495 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:21,496 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_225|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_225| ULTIMATE.start_main_p5))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |v_#memory_int_225| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |v_#memory_int_225| ULTIMATE.start_main_p2)) (= (select |v_#memory_int_225| ULTIMATE.start_main_p3) 0) (= (store |v_#memory_int_225| ULTIMATE.start_main_p5 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 .cse0))) [2019-01-31 14:49:21,496 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:49:21,548 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:21,549 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:21,551 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:21,552 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:21,553 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:21,555 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:21,556 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:21,557 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:21,558 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:21,560 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:21,560 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:49:21,561 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 77 [2019-01-31 14:49:21,564 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:21,603 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:21,604 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-31 14:49:23,414 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:23,415 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_226|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_226| ULTIMATE.start_main_p3))) (and (= (select |v_#memory_int_226| ULTIMATE.start_main_p5) 1) (= .cse0 0) (= (select |v_#memory_int_226| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_226| ULTIMATE.start_main_p3 (+ .cse0 1))) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 (+ (select |v_#memory_int_226| ULTIMATE.start_main_p4) 1)))) [2019-01-31 14:49:23,415 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:49:23,462 INFO L273 TraceCheckUtils]: 0: Hoare triple {14046#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {14055#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-31 14:49:23,464 INFO L273 TraceCheckUtils]: 1: Hoare triple {14055#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {14059#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:49:23,466 INFO L273 TraceCheckUtils]: 2: Hoare triple {14059#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {14063#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:49:23,469 INFO L273 TraceCheckUtils]: 3: Hoare triple {14063#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {14067#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:49:23,470 INFO L273 TraceCheckUtils]: 4: Hoare triple {14067#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume #memory_int[main_p1] >= 0; {14067#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:49:23,471 INFO L273 TraceCheckUtils]: 5: Hoare triple {14067#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume !(#memory_int[main_p2] <= 0); {14047#false} is VALID [2019-01-31 14:49:23,471 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:49:23,472 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:49:23,540 INFO L273 TraceCheckUtils]: 5: Hoare triple {14074#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {14047#false} is VALID [2019-01-31 14:49:23,541 INFO L273 TraceCheckUtils]: 4: Hoare triple {14074#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {14074#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:49:23,542 INFO L273 TraceCheckUtils]: 3: Hoare triple {14081#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {14074#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:49:23,544 INFO L273 TraceCheckUtils]: 2: Hoare triple {14085#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {14081#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:49:23,547 INFO L273 TraceCheckUtils]: 1: Hoare triple {14089#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {14085#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:49:23,548 INFO L273 TraceCheckUtils]: 0: Hoare triple {14046#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {14089#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:49:23,549 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 1 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:49:23,568 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:49:23,568 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-31 14:49:23,568 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:49:23,569 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-31 14:49:23,569 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:49:23,569 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-31 14:49:23,588 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:49:23,588 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-31 14:49:23,588 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-31 14:49:23,588 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=67, Invalid=115, Unknown=0, NotChecked=0, Total=182 [2019-01-31 14:49:23,589 INFO L87 Difference]: Start difference. First operand 74 states and 344 transitions. Second operand 10 states. [2019-01-31 14:49:25,575 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:49:25,575 INFO L93 Difference]: Finished difference Result 99 states and 372 transitions. [2019-01-31 14:49:25,575 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-31 14:49:25,576 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-31 14:49:25,576 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:49:25,576 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:49:25,576 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 62 transitions. [2019-01-31 14:49:25,576 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:49:25,576 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 62 transitions. [2019-01-31 14:49:25,577 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 62 transitions. [2019-01-31 14:49:25,678 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 62 edges. 62 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:49:25,680 INFO L225 Difference]: With dead ends: 99 [2019-01-31 14:49:25,680 INFO L226 Difference]: Without dead ends: 98 [2019-01-31 14:49:25,681 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 17 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 63 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=100, Invalid=172, Unknown=0, NotChecked=0, Total=272 [2019-01-31 14:49:25,681 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 98 states. [2019-01-31 14:49:26,873 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 98 to 73. [2019-01-31 14:49:26,874 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:49:26,874 INFO L82 GeneralOperation]: Start isEquivalent. First operand 98 states. Second operand 73 states. [2019-01-31 14:49:26,874 INFO L74 IsIncluded]: Start isIncluded. First operand 98 states. Second operand 73 states. [2019-01-31 14:49:26,874 INFO L87 Difference]: Start difference. First operand 98 states. Second operand 73 states. [2019-01-31 14:49:26,877 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:49:26,877 INFO L93 Difference]: Finished difference Result 98 states and 370 transitions. [2019-01-31 14:49:26,878 INFO L276 IsEmpty]: Start isEmpty. Operand 98 states and 370 transitions. [2019-01-31 14:49:26,878 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:49:26,878 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:49:26,878 INFO L74 IsIncluded]: Start isIncluded. First operand 73 states. Second operand 98 states. [2019-01-31 14:49:26,878 INFO L87 Difference]: Start difference. First operand 73 states. Second operand 98 states. [2019-01-31 14:49:26,880 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:49:26,880 INFO L93 Difference]: Finished difference Result 98 states and 370 transitions. [2019-01-31 14:49:26,880 INFO L276 IsEmpty]: Start isEmpty. Operand 98 states and 370 transitions. [2019-01-31 14:49:26,880 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:49:26,880 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:49:26,881 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:49:26,881 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:49:26,881 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 73 states. [2019-01-31 14:49:26,882 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 73 states to 73 states and 338 transitions. [2019-01-31 14:49:26,882 INFO L78 Accepts]: Start accepts. Automaton has 73 states and 338 transitions. Word has length 6 [2019-01-31 14:49:26,882 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:49:26,882 INFO L480 AbstractCegarLoop]: Abstraction has 73 states and 338 transitions. [2019-01-31 14:49:26,883 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-31 14:49:26,883 INFO L276 IsEmpty]: Start isEmpty. Operand 73 states and 338 transitions. [2019-01-31 14:49:26,883 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:49:26,883 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:49:26,883 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1] [2019-01-31 14:49:26,883 INFO L423 AbstractCegarLoop]: === Iteration 43 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:49:26,883 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:49:26,883 INFO L82 PathProgramCache]: Analyzing trace with hash 904323436, now seen corresponding path program 3 times [2019-01-31 14:49:26,883 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:49:26,884 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:49:26,884 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:49:26,884 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:49:26,884 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:49:26,887 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:49:27,156 INFO L273 TraceCheckUtils]: 0: Hoare triple {14574#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {14576#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:49:27,157 INFO L273 TraceCheckUtils]: 1: Hoare triple {14576#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {14576#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:49:27,158 INFO L273 TraceCheckUtils]: 2: Hoare triple {14576#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {14577#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:49:27,159 INFO L273 TraceCheckUtils]: 3: Hoare triple {14577#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {14578#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:49:27,160 INFO L273 TraceCheckUtils]: 4: Hoare triple {14578#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {14579#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:49:27,161 INFO L273 TraceCheckUtils]: 5: Hoare triple {14579#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {14575#false} is VALID [2019-01-31 14:49:27,161 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 9 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-31 14:49:27,162 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:49:27,162 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:49:27,162 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-31 14:49:27,162 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-31 14:49:27,162 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:49:27,162 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 41 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 41 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:49:27,172 INFO L103 rtionOrderModulation]: Keeping assertion order TERMS_WITH_SMALL_CONSTANTS_FIRST [2019-01-31 14:49:27,172 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder TERMS_WITH_SMALL_CONSTANTS_FIRST (IT: FPandBP) [2019-01-31 14:49:27,177 INFO L249 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2019-01-31 14:49:27,177 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-31 14:49:27,181 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:49:27,181 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:49:27,202 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 18 treesize of output 21 [2019-01-31 14:49:27,209 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,210 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 21 treesize of output 27 [2019-01-31 14:49:27,225 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,227 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,228 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:49:27,247 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,249 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,250 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,251 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:49:27,270 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,271 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,272 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,273 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,274 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:49:27,277 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:27,308 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:27,325 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:27,339 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:27,350 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:27,373 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:27,373 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 3 variables, input treesize:31, output treesize:38 [2019-01-31 14:49:27,380 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:27,381 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_230|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store (store |v_#memory_int_230| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:49:27,381 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:49:27,443 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,444 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,446 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,447 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,449 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,450 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,452 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,453 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,454 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,456 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,457 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,458 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 66 [2019-01-31 14:49:27,461 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:27,510 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:27,510 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:48, output treesize:38 [2019-01-31 14:49:27,519 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:27,520 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_231|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_231| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_231| ULTIMATE.start_main_p5)) (= (select |v_#memory_int_231| ULTIMATE.start_main_p3) 0) (= |#memory_int| (store |v_#memory_int_231| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= (select |v_#memory_int_231| ULTIMATE.start_main_p1) 0) (= 0 .cse0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |v_#memory_int_231| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:49:27,520 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:49:27,586 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,587 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,589 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,590 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,592 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,593 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,595 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,596 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,598 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,599 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,601 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,602 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,603 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,604 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 88 [2019-01-31 14:49:27,608 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:27,664 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:27,664 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:50, output treesize:40 [2019-01-31 14:49:27,677 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:27,678 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_232|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_232| ULTIMATE.start_main_p1))) (and (= .cse0 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |v_#memory_int_232| ULTIMATE.start_main_p4) 1) 0) (= |#memory_int| (store |v_#memory_int_232| ULTIMATE.start_main_p1 (+ .cse0 1))) (= 0 (select |v_#memory_int_232| ULTIMATE.start_main_p3)) (= 0 (select |v_#memory_int_232| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |v_#memory_int_232| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:49:27,678 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:49:27,739 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,741 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,742 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,744 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,745 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,747 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,748 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,750 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,751 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,752 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,754 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,755 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,756 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,757 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,759 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,760 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,761 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 16 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 98 [2019-01-31 14:49:27,765 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:27,830 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:27,830 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:50, output treesize:38 [2019-01-31 14:49:27,839 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:27,839 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_233|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_233| ULTIMATE.start_main_p4))) (and (= |#memory_int| (store |v_#memory_int_233| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= 0 (select |v_#memory_int_233| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_233| ULTIMATE.start_main_p5) 0) (= (select |v_#memory_int_233| ULTIMATE.start_main_p2) 0) (= 0 (+ .cse0 1)) (= 1 (select |v_#memory_int_233| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:49:27,840 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:49:27,911 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,912 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,913 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,914 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,915 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,916 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,918 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,919 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,920 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,921 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,923 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,924 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,925 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,926 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,927 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,928 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:27,929 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 16 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 110 [2019-01-31 14:49:27,933 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:27,997 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:27,997 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:50, output treesize:40 [2019-01-31 14:49:28,011 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:28,011 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_234|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_234| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_234| ULTIMATE.start_main_p5) 0) (= 0 (+ (select |v_#memory_int_234| ULTIMATE.start_main_p4) 2)) (= .cse0 0) (= (store |v_#memory_int_234| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= 0 (select |v_#memory_int_234| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 1 (select |v_#memory_int_234| ULTIMATE.start_main_p1)))) [2019-01-31 14:49:28,012 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) [2019-01-31 14:49:28,056 INFO L273 TraceCheckUtils]: 0: Hoare triple {14574#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {14583#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:49:28,059 INFO L273 TraceCheckUtils]: 1: Hoare triple {14583#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {14587#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:49:28,061 INFO L273 TraceCheckUtils]: 2: Hoare triple {14587#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {14591#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:49:28,064 INFO L273 TraceCheckUtils]: 3: Hoare triple {14591#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {14595#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:49:28,071 INFO L273 TraceCheckUtils]: 4: Hoare triple {14595#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {14599#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))))} is VALID [2019-01-31 14:49:28,071 INFO L273 TraceCheckUtils]: 5: Hoare triple {14599#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))))} assume !(#memory_int[main_p1] >= 0); {14575#false} is VALID [2019-01-31 14:49:28,072 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:49:28,072 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:49:28,156 INFO L273 TraceCheckUtils]: 5: Hoare triple {14603#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {14575#false} is VALID [2019-01-31 14:49:28,158 INFO L273 TraceCheckUtils]: 4: Hoare triple {14607#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {14603#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:49:28,159 INFO L273 TraceCheckUtils]: 3: Hoare triple {14611#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {14607#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:49:28,161 INFO L273 TraceCheckUtils]: 2: Hoare triple {14615#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {14611#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:49:28,163 INFO L273 TraceCheckUtils]: 1: Hoare triple {14619#(<= 0 (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {14615#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:49:28,166 INFO L273 TraceCheckUtils]: 0: Hoare triple {14574#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {14619#(<= 0 (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:49:28,166 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 3 proven. 7 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:49:28,186 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:49:28,186 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 5, 5] total 14 [2019-01-31 14:49:28,187 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:49:28,187 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 6 [2019-01-31 14:49:28,187 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:49:28,187 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states. [2019-01-31 14:49:28,216 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:49:28,217 INFO L459 AbstractCegarLoop]: Interpolant automaton has 11 states [2019-01-31 14:49:28,217 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2019-01-31 14:49:28,217 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=88, Invalid=152, Unknown=0, NotChecked=0, Total=240 [2019-01-31 14:49:28,217 INFO L87 Difference]: Start difference. First operand 73 states and 338 transitions. Second operand 11 states. [2019-01-31 14:49:32,013 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:49:32,013 INFO L93 Difference]: Finished difference Result 132 states and 470 transitions. [2019-01-31 14:49:32,013 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-31 14:49:32,013 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 6 [2019-01-31 14:49:32,013 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:49:32,013 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2019-01-31 14:49:32,014 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 89 transitions. [2019-01-31 14:49:32,014 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2019-01-31 14:49:32,014 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 89 transitions. [2019-01-31 14:49:32,015 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 89 transitions. [2019-01-31 14:49:32,227 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 89 edges. 89 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:49:32,230 INFO L225 Difference]: With dead ends: 132 [2019-01-31 14:49:32,231 INFO L226 Difference]: Without dead ends: 130 [2019-01-31 14:49:32,231 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 17 GetRequests, 0 SyntacticMatches, 1 SemanticMatches, 16 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 85 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=110, Invalid=196, Unknown=0, NotChecked=0, Total=306 [2019-01-31 14:49:32,231 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 130 states. [2019-01-31 14:49:33,364 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 130 to 74. [2019-01-31 14:49:33,364 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:49:33,364 INFO L82 GeneralOperation]: Start isEquivalent. First operand 130 states. Second operand 74 states. [2019-01-31 14:49:33,364 INFO L74 IsIncluded]: Start isIncluded. First operand 130 states. Second operand 74 states. [2019-01-31 14:49:33,364 INFO L87 Difference]: Start difference. First operand 130 states. Second operand 74 states. [2019-01-31 14:49:33,368 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:49:33,369 INFO L93 Difference]: Finished difference Result 130 states and 465 transitions. [2019-01-31 14:49:33,369 INFO L276 IsEmpty]: Start isEmpty. Operand 130 states and 465 transitions. [2019-01-31 14:49:33,369 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:49:33,369 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:49:33,370 INFO L74 IsIncluded]: Start isIncluded. First operand 74 states. Second operand 130 states. [2019-01-31 14:49:33,370 INFO L87 Difference]: Start difference. First operand 74 states. Second operand 130 states. [2019-01-31 14:49:33,373 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:49:33,373 INFO L93 Difference]: Finished difference Result 130 states and 465 transitions. [2019-01-31 14:49:33,373 INFO L276 IsEmpty]: Start isEmpty. Operand 130 states and 465 transitions. [2019-01-31 14:49:33,374 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:49:33,374 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:49:33,374 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:49:33,374 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:49:33,374 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 74 states. [2019-01-31 14:49:33,376 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 74 states to 74 states and 334 transitions. [2019-01-31 14:49:33,377 INFO L78 Accepts]: Start accepts. Automaton has 74 states and 334 transitions. Word has length 6 [2019-01-31 14:49:33,377 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:49:33,377 INFO L480 AbstractCegarLoop]: Abstraction has 74 states and 334 transitions. [2019-01-31 14:49:33,377 INFO L481 AbstractCegarLoop]: Interpolant automaton has 11 states. [2019-01-31 14:49:33,377 INFO L276 IsEmpty]: Start isEmpty. Operand 74 states and 334 transitions. [2019-01-31 14:49:33,377 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:49:33,377 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:49:33,377 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:49:33,378 INFO L423 AbstractCegarLoop]: === Iteration 44 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:49:33,378 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:49:33,378 INFO L82 PathProgramCache]: Analyzing trace with hash 904329702, now seen corresponding path program 1 times [2019-01-31 14:49:33,378 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:49:33,379 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:49:33,379 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-31 14:49:33,379 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:49:33,379 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:49:33,382 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:49:33,508 INFO L273 TraceCheckUtils]: 0: Hoare triple {15212#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {15214#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:49:33,510 INFO L273 TraceCheckUtils]: 1: Hoare triple {15214#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {15215#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:49:33,511 INFO L273 TraceCheckUtils]: 2: Hoare triple {15215#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {15216#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-31 14:49:33,511 INFO L273 TraceCheckUtils]: 3: Hoare triple {15216#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p1] >= 0; {15216#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-31 14:49:33,512 INFO L273 TraceCheckUtils]: 4: Hoare triple {15216#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p2] <= 0; {15216#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-31 14:49:33,512 INFO L273 TraceCheckUtils]: 5: Hoare triple {15216#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume !(#memory_int[main_p3] >= 0); {15213#false} is VALID [2019-01-31 14:49:33,513 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:49:33,513 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:49:33,513 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:49:33,513 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-31 14:49:33,514 INFO L207 CegarAbsIntRunner]: [0], [6], [18], [24], [26], [27] [2019-01-31 14:49:33,516 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:49:33,516 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:49:33,598 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:49:33,598 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 68 root evaluator evaluations with a maximum evaluation depth of 3. Performed 68 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-31 14:49:33,599 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:49:33,599 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:49:33,599 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:49:33,599 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 42 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 42 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:49:33,608 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:49:33,609 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:49:33,613 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:49:33,617 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:49:33,618 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:49:33,636 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 18 treesize of output 21 [2019-01-31 14:49:33,645 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:33,646 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 21 treesize of output 27 [2019-01-31 14:49:33,657 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:33,658 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:33,659 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:49:33,674 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:33,675 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:33,676 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:33,677 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:49:33,703 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:33,705 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:33,706 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:33,716 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:33,717 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:49:33,719 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:33,752 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:33,767 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:33,781 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:33,792 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:33,814 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:33,814 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 3 variables, input treesize:31, output treesize:38 [2019-01-31 14:49:33,823 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:33,823 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_239|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store (store |v_#memory_int_239| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:49:33,823 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:49:33,882 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:33,884 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:33,885 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:33,886 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:33,888 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:33,889 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:33,891 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:33,892 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:33,893 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:33,895 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:33,896 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:33,897 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 66 [2019-01-31 14:49:33,901 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:33,949 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:33,949 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:48, output treesize:38 [2019-01-31 14:49:35,311 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:35,312 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_240|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_240| ULTIMATE.start_main_p4))) (and (= |#memory_int| (store |v_#memory_int_240| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= 0 (select |v_#memory_int_240| ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_240| ULTIMATE.start_main_p1)) (= (select |v_#memory_int_240| ULTIMATE.start_main_p5) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 (select |v_#memory_int_240| ULTIMATE.start_main_p3)))) [2019-01-31 14:49:35,312 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:49:35,387 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:35,388 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:35,390 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:35,391 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:35,393 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:35,394 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:35,396 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:35,397 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:35,399 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:35,400 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:35,401 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:35,403 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:35,404 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:35,405 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 88 [2019-01-31 14:49:35,409 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:35,463 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:35,464 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:50, output treesize:40 [2019-01-31 14:49:35,574 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:35,574 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_241|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_241| ULTIMATE.start_main_p1))) (and (= 0 (select |v_#memory_int_241| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_241| ULTIMATE.start_main_p4) 1)) (= 0 (select |v_#memory_int_241| ULTIMATE.start_main_p2)) (= |#memory_int| (store |v_#memory_int_241| ULTIMATE.start_main_p1 (+ .cse0 1))) (= 0 (select |v_#memory_int_241| ULTIMATE.start_main_p3)) (= 0 .cse0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:49:35,574 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:49:35,644 INFO L273 TraceCheckUtils]: 0: Hoare triple {15212#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {15220#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-31 14:49:35,647 INFO L273 TraceCheckUtils]: 1: Hoare triple {15220#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {15224#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} is VALID [2019-01-31 14:49:35,650 INFO L273 TraceCheckUtils]: 2: Hoare triple {15224#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {15228#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} is VALID [2019-01-31 14:49:35,651 INFO L273 TraceCheckUtils]: 3: Hoare triple {15228#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} assume #memory_int[main_p1] >= 0; {15228#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} is VALID [2019-01-31 14:49:35,652 INFO L273 TraceCheckUtils]: 4: Hoare triple {15228#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} assume #memory_int[main_p2] <= 0; {15228#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} is VALID [2019-01-31 14:49:35,653 INFO L273 TraceCheckUtils]: 5: Hoare triple {15228#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} assume !(#memory_int[main_p3] >= 0); {15213#false} is VALID [2019-01-31 14:49:35,653 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:49:35,653 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:49:35,696 INFO L273 TraceCheckUtils]: 5: Hoare triple {15238#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {15213#false} is VALID [2019-01-31 14:49:35,696 INFO L273 TraceCheckUtils]: 4: Hoare triple {15238#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {15238#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:49:35,696 INFO L273 TraceCheckUtils]: 3: Hoare triple {15238#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {15238#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:49:35,698 INFO L273 TraceCheckUtils]: 2: Hoare triple {15248#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {15238#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:49:35,699 INFO L273 TraceCheckUtils]: 1: Hoare triple {15252#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {15248#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:49:35,701 INFO L273 TraceCheckUtils]: 0: Hoare triple {15212#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {15252#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:49:35,702 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:49:35,720 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:49:35,721 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:49:35,721 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:49:35,721 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-31 14:49:35,721 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:49:35,721 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:49:35,742 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:49:35,742 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:49:35,742 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:49:35,742 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:49:35,743 INFO L87 Difference]: Start difference. First operand 74 states and 334 transitions. Second operand 8 states. [2019-01-31 14:49:40,648 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:49:40,649 INFO L93 Difference]: Finished difference Result 87 states and 350 transitions. [2019-01-31 14:49:40,649 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-31 14:49:40,649 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-31 14:49:40,649 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:49:40,649 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:49:40,650 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 48 transitions. [2019-01-31 14:49:40,650 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:49:40,650 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 48 transitions. [2019-01-31 14:49:40,650 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 48 transitions. [2019-01-31 14:49:40,729 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 48 edges. 48 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:49:40,731 INFO L225 Difference]: With dead ends: 87 [2019-01-31 14:49:40,731 INFO L226 Difference]: Without dead ends: 86 [2019-01-31 14:49:40,732 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 16 GetRequests, 5 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:49:40,732 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 86 states. [2019-01-31 14:49:41,982 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 86 to 73. [2019-01-31 14:49:41,982 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:49:41,982 INFO L82 GeneralOperation]: Start isEquivalent. First operand 86 states. Second operand 73 states. [2019-01-31 14:49:41,982 INFO L74 IsIncluded]: Start isIncluded. First operand 86 states. Second operand 73 states. [2019-01-31 14:49:41,983 INFO L87 Difference]: Start difference. First operand 86 states. Second operand 73 states. [2019-01-31 14:49:41,986 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:49:41,986 INFO L93 Difference]: Finished difference Result 86 states and 348 transitions. [2019-01-31 14:49:41,986 INFO L276 IsEmpty]: Start isEmpty. Operand 86 states and 348 transitions. [2019-01-31 14:49:41,986 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:49:41,986 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:49:41,987 INFO L74 IsIncluded]: Start isIncluded. First operand 73 states. Second operand 86 states. [2019-01-31 14:49:41,987 INFO L87 Difference]: Start difference. First operand 73 states. Second operand 86 states. [2019-01-31 14:49:41,989 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:49:41,989 INFO L93 Difference]: Finished difference Result 86 states and 348 transitions. [2019-01-31 14:49:41,989 INFO L276 IsEmpty]: Start isEmpty. Operand 86 states and 348 transitions. [2019-01-31 14:49:41,989 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:49:41,989 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:49:41,989 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:49:41,989 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:49:41,989 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 73 states. [2019-01-31 14:49:41,991 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 73 states to 73 states and 337 transitions. [2019-01-31 14:49:41,991 INFO L78 Accepts]: Start accepts. Automaton has 73 states and 337 transitions. Word has length 6 [2019-01-31 14:49:41,991 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:49:41,991 INFO L480 AbstractCegarLoop]: Abstraction has 73 states and 337 transitions. [2019-01-31 14:49:41,991 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:49:41,991 INFO L276 IsEmpty]: Start isEmpty. Operand 73 states and 337 transitions. [2019-01-31 14:49:41,991 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:49:41,991 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:49:41,992 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:49:41,992 INFO L423 AbstractCegarLoop]: === Iteration 45 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:49:41,992 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:49:41,992 INFO L82 PathProgramCache]: Analyzing trace with hash 904316184, now seen corresponding path program 1 times [2019-01-31 14:49:41,992 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:49:41,992 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:49:41,993 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:49:41,993 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:49:41,993 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:49:41,996 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:49:42,175 INFO L273 TraceCheckUtils]: 0: Hoare triple {15697#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {15699#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:49:42,176 INFO L273 TraceCheckUtils]: 1: Hoare triple {15699#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {15700#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:49:42,177 INFO L273 TraceCheckUtils]: 2: Hoare triple {15700#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {15700#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:49:42,178 INFO L273 TraceCheckUtils]: 3: Hoare triple {15700#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {15701#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-31 14:49:42,179 INFO L273 TraceCheckUtils]: 4: Hoare triple {15701#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= (select |#memory_int| ULTIMATE.start_main_p2) 0))} assume #memory_int[main_p1] >= 0; {15702#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:49:42,179 INFO L273 TraceCheckUtils]: 5: Hoare triple {15702#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {15698#false} is VALID [2019-01-31 14:49:42,180 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-31 14:49:42,180 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:49:42,180 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:49:42,180 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-31 14:49:42,181 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [18], [24], [25] [2019-01-31 14:49:42,183 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:49:42,183 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:49:42,299 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:49:42,299 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 68 root evaluator evaluations with a maximum evaluation depth of 3. Performed 68 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-31 14:49:42,300 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:49:42,300 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:49:42,300 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:49:42,300 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 43 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 43 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:49:42,314 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:49:42,314 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:49:42,324 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:49:42,327 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:49:42,327 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:49:42,346 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 18 treesize of output 21 [2019-01-31 14:49:42,353 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,354 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 21 treesize of output 27 [2019-01-31 14:49:42,364 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,366 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,366 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:49:42,383 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,385 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,386 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,387 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:49:42,415 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,416 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,418 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,419 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,420 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:49:42,424 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:42,453 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:42,470 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:42,484 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:42,497 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:42,519 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:42,519 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 3 variables, input treesize:31, output treesize:38 [2019-01-31 14:49:42,531 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:42,531 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_244|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store (store |v_#memory_int_244| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:49:42,531 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:49:42,594 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,596 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,597 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,598 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,600 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,601 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,602 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,603 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,605 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,606 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,607 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,609 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 66 [2019-01-31 14:49:42,613 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:42,662 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:42,662 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:48, output treesize:38 [2019-01-31 14:49:42,679 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:42,679 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_245|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_245| ULTIMATE.start_main_p4))) (and (= 0 .cse0) (= (store |v_#memory_int_245| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_245| ULTIMATE.start_main_p1)) (= (select |v_#memory_int_245| ULTIMATE.start_main_p5) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 (select |v_#memory_int_245| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_245| ULTIMATE.start_main_p3) 0))) [2019-01-31 14:49:42,679 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:49:42,739 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,740 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,741 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,743 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,744 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,745 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,747 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,748 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,749 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,750 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,752 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,753 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,754 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,755 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 88 [2019-01-31 14:49:42,760 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:42,814 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:42,814 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:50, output treesize:40 [2019-01-31 14:49:42,835 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:42,836 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_246|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_246| ULTIMATE.start_main_p1))) (and (= 0 (+ (select |v_#memory_int_246| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_246| ULTIMATE.start_main_p5) 0) (= 0 (select |v_#memory_int_246| ULTIMATE.start_main_p2)) (= (store |v_#memory_int_246| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= (select |v_#memory_int_246| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:49:42,836 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:49:42,901 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,902 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,904 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,905 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,906 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,908 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,909 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,910 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,912 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,913 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,914 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,915 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,916 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:49:42,917 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:42,918 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 97 [2019-01-31 14:49:42,922 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:42,981 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:42,982 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:50, output treesize:38 [2019-01-31 14:49:43,010 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:43,010 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_247|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_247| ULTIMATE.start_main_p2))) (and (= (select |v_#memory_int_247| ULTIMATE.start_main_p5) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_247| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= (+ (select |v_#memory_int_247| ULTIMATE.start_main_p4) 1) 0) (= .cse0 0) (= (select |v_#memory_int_247| ULTIMATE.start_main_p1) 1) (= (select |v_#memory_int_247| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-31 14:49:43,011 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:49:43,078 INFO L273 TraceCheckUtils]: 0: Hoare triple {15697#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {15706#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:49:43,081 INFO L273 TraceCheckUtils]: 1: Hoare triple {15706#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {15710#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:49:43,084 INFO L273 TraceCheckUtils]: 2: Hoare triple {15710#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {15714#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:49:43,088 INFO L273 TraceCheckUtils]: 3: Hoare triple {15714#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {15718#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-31 14:49:43,090 INFO L273 TraceCheckUtils]: 4: Hoare triple {15718#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume #memory_int[main_p1] >= 0; {15718#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-31 14:49:43,090 INFO L273 TraceCheckUtils]: 5: Hoare triple {15718#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume !(#memory_int[main_p2] <= 0); {15698#false} is VALID [2019-01-31 14:49:43,091 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:49:43,091 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:49:43,138 INFO L273 TraceCheckUtils]: 5: Hoare triple {15702#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {15698#false} is VALID [2019-01-31 14:49:43,139 INFO L273 TraceCheckUtils]: 4: Hoare triple {15702#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {15702#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:49:43,140 INFO L273 TraceCheckUtils]: 3: Hoare triple {15731#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {15702#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:49:43,141 INFO L273 TraceCheckUtils]: 2: Hoare triple {15735#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {15731#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} is VALID [2019-01-31 14:49:43,143 INFO L273 TraceCheckUtils]: 1: Hoare triple {15739#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {15735#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1)} is VALID [2019-01-31 14:49:43,145 INFO L273 TraceCheckUtils]: 0: Hoare triple {15697#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {15739#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1)} is VALID [2019-01-31 14:49:43,145 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 4 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:49:43,165 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:49:43,165 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-31 14:49:43,165 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:49:43,166 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-31 14:49:43,166 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:49:43,166 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-31 14:49:43,188 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:49:43,188 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-31 14:49:43,189 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-31 14:49:43,189 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=64, Invalid=92, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:49:43,189 INFO L87 Difference]: Start difference. First operand 73 states and 337 transitions. Second operand 10 states. [2019-01-31 14:49:45,930 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:49:45,930 INFO L93 Difference]: Finished difference Result 106 states and 387 transitions. [2019-01-31 14:49:45,930 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-31 14:49:45,931 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-31 14:49:45,931 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:49:45,931 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:49:45,932 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 72 transitions. [2019-01-31 14:49:45,932 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:49:45,932 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 72 transitions. [2019-01-31 14:49:45,932 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 72 transitions. [2019-01-31 14:49:46,053 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 72 edges. 72 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:49:46,056 INFO L225 Difference]: With dead ends: 106 [2019-01-31 14:49:46,056 INFO L226 Difference]: Without dead ends: 105 [2019-01-31 14:49:46,056 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 3 SyntacticMatches, 1 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 52 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=92, Invalid=148, Unknown=0, NotChecked=0, Total=240 [2019-01-31 14:49:46,057 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 105 states. [2019-01-31 14:49:47,421 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 105 to 75. [2019-01-31 14:49:47,421 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:49:47,421 INFO L82 GeneralOperation]: Start isEquivalent. First operand 105 states. Second operand 75 states. [2019-01-31 14:49:47,421 INFO L74 IsIncluded]: Start isIncluded. First operand 105 states. Second operand 75 states. [2019-01-31 14:49:47,421 INFO L87 Difference]: Start difference. First operand 105 states. Second operand 75 states. [2019-01-31 14:49:47,424 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:49:47,424 INFO L93 Difference]: Finished difference Result 105 states and 385 transitions. [2019-01-31 14:49:47,424 INFO L276 IsEmpty]: Start isEmpty. Operand 105 states and 385 transitions. [2019-01-31 14:49:47,425 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:49:47,425 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:49:47,425 INFO L74 IsIncluded]: Start isIncluded. First operand 75 states. Second operand 105 states. [2019-01-31 14:49:47,425 INFO L87 Difference]: Start difference. First operand 75 states. Second operand 105 states. [2019-01-31 14:49:47,427 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:49:47,427 INFO L93 Difference]: Finished difference Result 105 states and 385 transitions. [2019-01-31 14:49:47,427 INFO L276 IsEmpty]: Start isEmpty. Operand 105 states and 385 transitions. [2019-01-31 14:49:47,427 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:49:47,427 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:49:47,427 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:49:47,428 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:49:47,428 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 75 states. [2019-01-31 14:49:47,429 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 75 states to 75 states and 349 transitions. [2019-01-31 14:49:47,429 INFO L78 Accepts]: Start accepts. Automaton has 75 states and 349 transitions. Word has length 6 [2019-01-31 14:49:47,429 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:49:47,429 INFO L480 AbstractCegarLoop]: Abstraction has 75 states and 349 transitions. [2019-01-31 14:49:47,430 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-31 14:49:47,430 INFO L276 IsEmpty]: Start isEmpty. Operand 75 states and 349 transitions. [2019-01-31 14:49:47,430 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:49:47,430 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:49:47,430 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:49:47,430 INFO L423 AbstractCegarLoop]: === Iteration 46 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:49:47,430 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:49:47,430 INFO L82 PathProgramCache]: Analyzing trace with hash 904320028, now seen corresponding path program 1 times [2019-01-31 14:49:47,430 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:49:47,431 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:49:47,431 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:49:47,431 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:49:47,431 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:49:47,434 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:49:47,743 INFO L273 TraceCheckUtils]: 0: Hoare triple {16251#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {16253#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:49:47,744 INFO L273 TraceCheckUtils]: 1: Hoare triple {16253#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {16254#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:49:47,745 INFO L273 TraceCheckUtils]: 2: Hoare triple {16254#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {16254#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:49:47,745 INFO L273 TraceCheckUtils]: 3: Hoare triple {16254#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {16255#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-31 14:49:47,746 INFO L273 TraceCheckUtils]: 4: Hoare triple {16255#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} assume #memory_int[main_p1] >= 0; {16256#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:49:47,746 INFO L273 TraceCheckUtils]: 5: Hoare triple {16256#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {16252#false} is VALID [2019-01-31 14:49:47,746 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-31 14:49:47,747 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:49:47,747 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:49:47,747 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-31 14:49:47,747 INFO L207 CegarAbsIntRunner]: [0], [6], [14], [18], [24], [25] [2019-01-31 14:49:47,749 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:49:47,749 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:49:47,759 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:49:47,759 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 68 root evaluator evaluations with a maximum evaluation depth of 3. Performed 68 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-31 14:49:47,759 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:49:47,760 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:49:47,760 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:49:47,760 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 44 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 44 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:49:47,770 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:49:47,770 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:49:47,775 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:49:47,782 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:49:47,783 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:49:47,798 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 18 treesize of output 21 [2019-01-31 14:49:47,805 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:47,806 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 21 treesize of output 27 [2019-01-31 14:49:47,817 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:47,819 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:47,820 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:49:47,867 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:47,868 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:47,869 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:47,869 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:49:47,889 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:47,891 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:47,892 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:47,894 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:47,895 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:49:47,899 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:47,931 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:47,949 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:47,964 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:47,976 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:49:48,000 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:48,000 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 2 variables, input treesize:31, output treesize:38 [2019-01-31 14:49:48,007 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:48,007 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_251|, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store (store |v_#memory_int_251| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:49:48,007 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p5]. (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:49:48,070 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,072 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,073 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,074 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,076 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,077 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,078 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,079 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,081 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,082 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,083 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,084 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 66 [2019-01-31 14:49:48,088 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:48,131 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:48,132 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:48, output treesize:38 [2019-01-31 14:49:48,162 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:48,163 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_252|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_252| ULTIMATE.start_main_p4))) (and (= 0 (select |v_#memory_int_252| ULTIMATE.start_main_p3)) (= .cse0 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_252| ULTIMATE.start_main_p5) 0) (= (select |v_#memory_int_252| ULTIMATE.start_main_p1) 0) (= (store |v_#memory_int_252| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |v_#memory_int_252| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:49:48,163 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:49:48,223 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,224 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,226 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,227 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,228 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,229 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,231 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,232 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,233 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,235 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,236 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,237 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,238 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,239 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 88 [2019-01-31 14:49:48,244 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:48,298 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:48,298 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:50, output treesize:40 [2019-01-31 14:49:48,321 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:48,321 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_253|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_253| ULTIMATE.start_main_p1))) (and (= 0 (+ (select |v_#memory_int_253| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_253| ULTIMATE.start_main_p5) 0) (= (store |v_#memory_int_253| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= .cse0 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |v_#memory_int_253| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 (select |v_#memory_int_253| ULTIMATE.start_main_p3)))) [2019-01-31 14:49:48,322 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:49:48,398 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,399 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,400 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,402 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,403 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,404 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,406 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,407 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,408 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,409 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,410 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,412 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,413 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,414 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,415 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:49:48,415 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:49:48,416 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 104 [2019-01-31 14:49:48,425 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:49:48,485 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:49:48,485 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:50, output treesize:40 [2019-01-31 14:49:58,917 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:49:58,917 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_254|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_254| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= 0 (select |v_#memory_int_254| ULTIMATE.start_main_p5)) (= 0 (+ (select |v_#memory_int_254| ULTIMATE.start_main_p4) 1)) (= (store |v_#memory_int_254| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= (select |v_#memory_int_254| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_254| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-31 14:49:58,917 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:49:59,114 INFO L273 TraceCheckUtils]: 0: Hoare triple {16251#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {16260#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:49:59,117 INFO L273 TraceCheckUtils]: 1: Hoare triple {16260#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {16264#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:49:59,119 INFO L273 TraceCheckUtils]: 2: Hoare triple {16264#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {16268#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:49:59,123 INFO L273 TraceCheckUtils]: 3: Hoare triple {16268#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {16272#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:49:59,124 INFO L273 TraceCheckUtils]: 4: Hoare triple {16272#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume #memory_int[main_p1] >= 0; {16272#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:49:59,125 INFO L273 TraceCheckUtils]: 5: Hoare triple {16272#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume !(#memory_int[main_p2] <= 0); {16252#false} is VALID [2019-01-31 14:49:59,126 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:49:59,126 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:49:59,199 INFO L273 TraceCheckUtils]: 5: Hoare triple {16279#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {16252#false} is VALID [2019-01-31 14:49:59,199 INFO L273 TraceCheckUtils]: 4: Hoare triple {16279#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {16279#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:49:59,201 INFO L273 TraceCheckUtils]: 3: Hoare triple {16286#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {16279#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:49:59,202 INFO L273 TraceCheckUtils]: 2: Hoare triple {16290#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {16286#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:49:59,204 INFO L273 TraceCheckUtils]: 1: Hoare triple {16294#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {16290#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:49:59,207 INFO L273 TraceCheckUtils]: 0: Hoare triple {16251#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {16294#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:49:59,207 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 1 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:49:59,228 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:49:59,228 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-31 14:49:59,228 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:49:59,228 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-31 14:49:59,228 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:49:59,228 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-31 14:49:59,250 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:49:59,250 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-31 14:49:59,251 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-31 14:49:59,251 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=65, Invalid=117, Unknown=0, NotChecked=0, Total=182 [2019-01-31 14:49:59,251 INFO L87 Difference]: Start difference. First operand 75 states and 349 transitions. Second operand 10 states. [2019-01-31 14:50:01,755 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:50:01,755 INFO L93 Difference]: Finished difference Result 102 states and 394 transitions. [2019-01-31 14:50:01,755 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-31 14:50:01,756 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-31 14:50:01,756 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:50:01,756 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:50:01,756 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 61 transitions. [2019-01-31 14:50:01,756 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:50:01,756 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 61 transitions. [2019-01-31 14:50:01,757 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 61 transitions. [2019-01-31 14:50:01,864 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 61 edges. 61 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:50:01,867 INFO L225 Difference]: With dead ends: 102 [2019-01-31 14:50:01,867 INFO L226 Difference]: Without dead ends: 101 [2019-01-31 14:50:01,868 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 2 SyntacticMatches, 1 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 61 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=98, Invalid=174, Unknown=0, NotChecked=0, Total=272 [2019-01-31 14:50:01,868 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 101 states. [2019-01-31 14:50:03,329 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 101 to 78. [2019-01-31 14:50:03,329 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:50:03,329 INFO L82 GeneralOperation]: Start isEquivalent. First operand 101 states. Second operand 78 states. [2019-01-31 14:50:03,329 INFO L74 IsIncluded]: Start isIncluded. First operand 101 states. Second operand 78 states. [2019-01-31 14:50:03,329 INFO L87 Difference]: Start difference. First operand 101 states. Second operand 78 states. [2019-01-31 14:50:03,332 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:50:03,333 INFO L93 Difference]: Finished difference Result 101 states and 392 transitions. [2019-01-31 14:50:03,333 INFO L276 IsEmpty]: Start isEmpty. Operand 101 states and 392 transitions. [2019-01-31 14:50:03,333 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:50:03,333 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:50:03,333 INFO L74 IsIncluded]: Start isIncluded. First operand 78 states. Second operand 101 states. [2019-01-31 14:50:03,333 INFO L87 Difference]: Start difference. First operand 78 states. Second operand 101 states. [2019-01-31 14:50:03,335 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:50:03,335 INFO L93 Difference]: Finished difference Result 101 states and 392 transitions. [2019-01-31 14:50:03,335 INFO L276 IsEmpty]: Start isEmpty. Operand 101 states and 392 transitions. [2019-01-31 14:50:03,336 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:50:03,336 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:50:03,336 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:50:03,336 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:50:03,336 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 78 states. [2019-01-31 14:50:03,337 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 78 states to 78 states and 367 transitions. [2019-01-31 14:50:03,337 INFO L78 Accepts]: Start accepts. Automaton has 78 states and 367 transitions. Word has length 6 [2019-01-31 14:50:03,338 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:50:03,338 INFO L480 AbstractCegarLoop]: Abstraction has 78 states and 367 transitions. [2019-01-31 14:50:03,338 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-31 14:50:03,338 INFO L276 IsEmpty]: Start isEmpty. Operand 78 states and 367 transitions. [2019-01-31 14:50:03,338 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:50:03,338 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:50:03,338 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:50:03,338 INFO L423 AbstractCegarLoop]: === Iteration 47 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:50:03,338 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:50:03,338 INFO L82 PathProgramCache]: Analyzing trace with hash 904448866, now seen corresponding path program 1 times [2019-01-31 14:50:03,338 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:50:03,339 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:50:03,339 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:50:03,339 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:50:03,339 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:50:03,342 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:50:03,490 INFO L273 TraceCheckUtils]: 0: Hoare triple {16802#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {16804#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:50:03,492 INFO L273 TraceCheckUtils]: 1: Hoare triple {16804#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {16805#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:50:03,505 INFO L273 TraceCheckUtils]: 2: Hoare triple {16805#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {16806#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-31 14:50:03,506 INFO L273 TraceCheckUtils]: 3: Hoare triple {16806#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p1] >= 0; {16806#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-31 14:50:03,506 INFO L273 TraceCheckUtils]: 4: Hoare triple {16806#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p2] <= 0; {16806#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-31 14:50:03,506 INFO L273 TraceCheckUtils]: 5: Hoare triple {16806#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume !(#memory_int[main_p3] >= 0); {16803#false} is VALID [2019-01-31 14:50:03,507 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:50:03,507 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:50:03,507 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:50:03,507 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-31 14:50:03,507 INFO L207 CegarAbsIntRunner]: [0], [10], [18], [24], [26], [27] [2019-01-31 14:50:03,510 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:50:03,510 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:50:03,536 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:50:03,536 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 68 root evaluator evaluations with a maximum evaluation depth of 3. Performed 68 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-31 14:50:03,536 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:50:03,537 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:50:03,537 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:50:03,537 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 45 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 45 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:50:03,545 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:50:03,546 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:50:03,553 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:50:03,571 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:50:03,572 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:50:03,598 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 18 treesize of output 21 [2019-01-31 14:50:03,606 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 23 [2019-01-31 14:50:03,618 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:03,619 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 23 treesize of output 29 [2019-01-31 14:50:03,634 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:03,635 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:03,636 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 39 [2019-01-31 14:50:03,652 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:03,657 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:03,659 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:03,659 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 50 [2019-01-31 14:50:03,663 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:50:03,687 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:50:03,701 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:50:03,713 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:50:03,726 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:50:03,745 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:50:03,746 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 3 variables, input treesize:28, output treesize:35 [2019-01-31 14:50:03,753 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:50:03,753 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_258|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store (store |v_#memory_int_258| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:50:03,753 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p5, ULTIMATE.start_main_p1]. (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:50:03,818 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:03,819 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:03,820 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:03,822 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:03,823 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:03,824 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:03,825 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:03,826 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-31 14:50:03,830 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:50:03,862 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:50:03,863 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-31 14:50:03,884 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:50:03,885 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_259|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_259| ULTIMATE.start_main_p4))) (and (= (store |v_#memory_int_259| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_259| ULTIMATE.start_main_p3)) (= 0 (select |v_#memory_int_259| ULTIMATE.start_main_p5)) (= (select |v_#memory_int_259| ULTIMATE.start_main_p2) 0) (= 0 .cse0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-31 14:50:03,885 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:50:03,939 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:03,940 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:03,941 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:03,943 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:03,944 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:03,945 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:03,946 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:03,947 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:50:03,948 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 60 [2019-01-31 14:50:03,951 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:50:03,986 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:50:03,986 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:30 [2019-01-31 14:50:04,041 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:50:04,041 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_260|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_260| ULTIMATE.start_main_p2))) (and (= (select |v_#memory_int_260| ULTIMATE.start_main_p5) 0) (= (store |v_#memory_int_260| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_260| ULTIMATE.start_main_p3)) (= .cse0 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 (+ (select |v_#memory_int_260| ULTIMATE.start_main_p4) 1)))) [2019-01-31 14:50:04,041 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:50:04,105 INFO L273 TraceCheckUtils]: 0: Hoare triple {16802#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {16810#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-31 14:50:04,108 INFO L273 TraceCheckUtils]: 1: Hoare triple {16810#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {16814#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:50:04,110 INFO L273 TraceCheckUtils]: 2: Hoare triple {16814#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {16818#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} is VALID [2019-01-31 14:50:04,111 INFO L273 TraceCheckUtils]: 3: Hoare triple {16818#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} assume #memory_int[main_p1] >= 0; {16818#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} is VALID [2019-01-31 14:50:04,112 INFO L273 TraceCheckUtils]: 4: Hoare triple {16818#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} assume #memory_int[main_p2] <= 0; {16818#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} is VALID [2019-01-31 14:50:04,113 INFO L273 TraceCheckUtils]: 5: Hoare triple {16818#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} assume !(#memory_int[main_p3] >= 0); {16803#false} is VALID [2019-01-31 14:50:04,114 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:50:04,114 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:50:04,157 INFO L273 TraceCheckUtils]: 5: Hoare triple {16828#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {16803#false} is VALID [2019-01-31 14:50:04,157 INFO L273 TraceCheckUtils]: 4: Hoare triple {16828#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {16828#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:50:04,158 INFO L273 TraceCheckUtils]: 3: Hoare triple {16828#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {16828#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:50:04,159 INFO L273 TraceCheckUtils]: 2: Hoare triple {16838#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {16828#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:50:04,160 INFO L273 TraceCheckUtils]: 1: Hoare triple {16842#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {16838#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:50:04,163 INFO L273 TraceCheckUtils]: 0: Hoare triple {16802#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {16842#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:50:04,163 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:50:04,183 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:50:04,183 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:50:04,184 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:50:04,184 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-31 14:50:04,184 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:50:04,184 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:50:04,206 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:50:04,206 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:50:04,206 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:50:04,206 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=43, Invalid=67, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:50:04,207 INFO L87 Difference]: Start difference. First operand 78 states and 367 transitions. Second operand 8 states. [2019-01-31 14:50:07,146 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:50:07,147 INFO L93 Difference]: Finished difference Result 94 states and 387 transitions. [2019-01-31 14:50:07,147 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-31 14:50:07,147 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-31 14:50:07,147 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:50:07,147 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:50:07,147 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 49 transitions. [2019-01-31 14:50:07,147 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:50:07,148 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 49 transitions. [2019-01-31 14:50:07,148 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 49 transitions. [2019-01-31 14:50:07,221 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 49 edges. 49 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:50:07,223 INFO L225 Difference]: With dead ends: 94 [2019-01-31 14:50:07,223 INFO L226 Difference]: Without dead ends: 93 [2019-01-31 14:50:07,223 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 16 GetRequests, 5 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=61, Invalid=95, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:50:07,223 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 93 states. [2019-01-31 14:50:08,724 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 93 to 78. [2019-01-31 14:50:08,724 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:50:08,724 INFO L82 GeneralOperation]: Start isEquivalent. First operand 93 states. Second operand 78 states. [2019-01-31 14:50:08,725 INFO L74 IsIncluded]: Start isIncluded. First operand 93 states. Second operand 78 states. [2019-01-31 14:50:08,725 INFO L87 Difference]: Start difference. First operand 93 states. Second operand 78 states. [2019-01-31 14:50:08,728 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:50:08,728 INFO L93 Difference]: Finished difference Result 93 states and 385 transitions. [2019-01-31 14:50:08,728 INFO L276 IsEmpty]: Start isEmpty. Operand 93 states and 385 transitions. [2019-01-31 14:50:08,729 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:50:08,729 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:50:08,729 INFO L74 IsIncluded]: Start isIncluded. First operand 78 states. Second operand 93 states. [2019-01-31 14:50:08,729 INFO L87 Difference]: Start difference. First operand 78 states. Second operand 93 states. [2019-01-31 14:50:08,731 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:50:08,731 INFO L93 Difference]: Finished difference Result 93 states and 385 transitions. [2019-01-31 14:50:08,731 INFO L276 IsEmpty]: Start isEmpty. Operand 93 states and 385 transitions. [2019-01-31 14:50:08,731 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:50:08,731 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:50:08,731 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:50:08,731 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:50:08,732 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 78 states. [2019-01-31 14:50:08,733 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 78 states to 78 states and 367 transitions. [2019-01-31 14:50:08,733 INFO L78 Accepts]: Start accepts. Automaton has 78 states and 367 transitions. Word has length 6 [2019-01-31 14:50:08,733 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:50:08,733 INFO L480 AbstractCegarLoop]: Abstraction has 78 states and 367 transitions. [2019-01-31 14:50:08,734 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:50:08,734 INFO L276 IsEmpty]: Start isEmpty. Operand 78 states and 367 transitions. [2019-01-31 14:50:08,734 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:50:08,734 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:50:08,734 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:50:08,734 INFO L423 AbstractCegarLoop]: === Iteration 48 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:50:08,734 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:50:08,734 INFO L82 PathProgramCache]: Analyzing trace with hash 904439192, now seen corresponding path program 1 times [2019-01-31 14:50:08,734 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:50:08,735 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:50:08,735 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:50:08,735 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:50:08,735 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:50:08,738 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:50:09,285 WARN L181 SmtUtils]: Spent 306.00 ms on a formula simplification. DAG size of input: 30 DAG size of output: 17 [2019-01-31 14:50:09,362 INFO L273 TraceCheckUtils]: 0: Hoare triple {17324#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {17326#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:50:09,363 INFO L273 TraceCheckUtils]: 1: Hoare triple {17326#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {17327#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-31 14:50:09,364 INFO L273 TraceCheckUtils]: 2: Hoare triple {17327#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {17328#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-31 14:50:09,365 INFO L273 TraceCheckUtils]: 3: Hoare triple {17328#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {17329#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-01-31 14:50:09,365 INFO L273 TraceCheckUtils]: 4: Hoare triple {17329#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume #memory_int[main_p1] >= 0; {17329#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-01-31 14:50:09,366 INFO L273 TraceCheckUtils]: 5: Hoare triple {17329#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume !(#memory_int[main_p2] <= 0); {17325#false} is VALID [2019-01-31 14:50:09,366 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:50:09,367 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:50:09,367 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:50:09,367 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-31 14:50:09,367 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [18], [24], [25] [2019-01-31 14:50:09,369 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:50:09,370 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:50:09,407 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:50:09,407 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 68 root evaluator evaluations with a maximum evaluation depth of 3. Performed 68 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-31 14:50:09,407 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:50:09,407 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:50:09,407 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:50:09,407 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 46 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 46 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:50:09,416 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:50:09,416 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:50:09,422 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:50:09,427 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:50:09,428 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:50:09,446 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 18 treesize of output 21 [2019-01-31 14:50:09,456 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 23 [2019-01-31 14:50:09,470 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:09,471 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 23 treesize of output 29 [2019-01-31 14:50:09,486 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:09,487 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:09,488 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 39 [2019-01-31 14:50:09,504 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:09,509 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:09,511 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:09,511 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 50 [2019-01-31 14:50:09,515 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:50:09,538 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:50:09,551 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:50:09,569 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:50:09,582 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:50:09,601 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:50:09,601 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 3 variables, input treesize:28, output treesize:35 [2019-01-31 14:50:09,609 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:50:09,609 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_263|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store (store |v_#memory_int_263| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:50:09,609 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p5, ULTIMATE.start_main_p1]. (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:50:09,677 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:09,679 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:09,680 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:09,682 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:09,683 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:09,684 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:09,686 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:09,686 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-31 14:50:09,690 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:50:09,720 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:50:09,721 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-31 14:50:09,731 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:50:09,731 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_264|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_264| ULTIMATE.start_main_p4))) (and (= |#memory_int| (store |v_#memory_int_264| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= 0 (select |v_#memory_int_264| ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_264| ULTIMATE.start_main_p3)) (= (select |v_#memory_int_264| ULTIMATE.start_main_p5) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-31 14:50:09,731 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:50:09,865 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:09,867 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:09,868 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:09,869 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:09,870 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:09,872 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:09,873 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:09,873 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:50:09,874 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 60 [2019-01-31 14:50:09,877 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:50:09,911 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:50:09,912 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:30 [2019-01-31 14:50:09,918 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:50:09,919 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_265|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_265| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_265| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= (+ (select |v_#memory_int_265| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |v_#memory_int_265| ULTIMATE.start_main_p5)) (= 0 .cse0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |v_#memory_int_265| ULTIMATE.start_main_p3) 0))) [2019-01-31 14:50:09,919 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:50:09,971 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:09,973 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:09,974 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:09,976 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:09,977 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:09,978 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:09,979 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:09,981 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:09,982 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:09,983 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 69 [2019-01-31 14:50:09,986 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:50:10,024 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:50:10,024 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:44, output treesize:34 [2019-01-31 14:50:10,035 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:50:10,035 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_266|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_266| ULTIMATE.start_main_p3))) (and (= (select |v_#memory_int_266| ULTIMATE.start_main_p5) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_266| ULTIMATE.start_main_p2) 1)) (= 0 (+ (select |v_#memory_int_266| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= |#memory_int| (store |v_#memory_int_266| ULTIMATE.start_main_p3 (+ .cse0 1))) (= .cse0 0))) [2019-01-31 14:50:10,035 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-31 14:50:10,080 INFO L273 TraceCheckUtils]: 0: Hoare triple {17324#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {17333#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-31 14:50:10,083 INFO L273 TraceCheckUtils]: 1: Hoare triple {17333#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {17337#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:50:10,085 INFO L273 TraceCheckUtils]: 2: Hoare triple {17337#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {17341#(and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:50:10,088 INFO L273 TraceCheckUtils]: 3: Hoare triple {17341#(and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {17345#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-31 14:50:10,089 INFO L273 TraceCheckUtils]: 4: Hoare triple {17345#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume #memory_int[main_p1] >= 0; {17345#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-31 14:50:10,089 INFO L273 TraceCheckUtils]: 5: Hoare triple {17345#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume !(#memory_int[main_p2] <= 0); {17325#false} is VALID [2019-01-31 14:50:10,090 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:50:10,090 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:50:10,148 INFO L273 TraceCheckUtils]: 5: Hoare triple {17352#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {17325#false} is VALID [2019-01-31 14:50:10,149 INFO L273 TraceCheckUtils]: 4: Hoare triple {17352#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {17352#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:50:10,150 INFO L273 TraceCheckUtils]: 3: Hoare triple {17359#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {17352#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:50:10,151 INFO L273 TraceCheckUtils]: 2: Hoare triple {17363#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {17359#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:50:10,169 INFO L273 TraceCheckUtils]: 1: Hoare triple {17367#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {17363#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:50:10,175 INFO L273 TraceCheckUtils]: 0: Hoare triple {17324#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {17367#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:50:10,175 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 5 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:50:10,193 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:50:10,193 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-31 14:50:10,193 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:50:10,193 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-31 14:50:10,193 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:50:10,194 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-31 14:50:10,213 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:50:10,213 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-31 14:50:10,214 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-31 14:50:10,214 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=71, Invalid=111, Unknown=0, NotChecked=0, Total=182 [2019-01-31 14:50:10,214 INFO L87 Difference]: Start difference. First operand 78 states and 367 transitions. Second operand 10 states. [2019-01-31 14:50:13,088 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:50:13,088 INFO L93 Difference]: Finished difference Result 116 states and 427 transitions. [2019-01-31 14:50:13,088 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-31 14:50:13,088 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-31 14:50:13,088 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:50:13,088 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:50:13,089 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 74 transitions. [2019-01-31 14:50:13,089 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:50:13,089 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 74 transitions. [2019-01-31 14:50:13,089 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 74 transitions. [2019-01-31 14:50:13,197 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 74 edges. 74 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:50:13,199 INFO L225 Difference]: With dead ends: 116 [2019-01-31 14:50:13,199 INFO L226 Difference]: Without dead ends: 115 [2019-01-31 14:50:13,200 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 16 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 59 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=89, Invalid=151, Unknown=0, NotChecked=0, Total=240 [2019-01-31 14:50:13,200 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 115 states. [2019-01-31 14:50:14,622 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 115 to 79. [2019-01-31 14:50:14,622 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:50:14,622 INFO L82 GeneralOperation]: Start isEquivalent. First operand 115 states. Second operand 79 states. [2019-01-31 14:50:14,622 INFO L74 IsIncluded]: Start isIncluded. First operand 115 states. Second operand 79 states. [2019-01-31 14:50:14,622 INFO L87 Difference]: Start difference. First operand 115 states. Second operand 79 states. [2019-01-31 14:50:14,626 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:50:14,626 INFO L93 Difference]: Finished difference Result 115 states and 425 transitions. [2019-01-31 14:50:14,626 INFO L276 IsEmpty]: Start isEmpty. Operand 115 states and 425 transitions. [2019-01-31 14:50:14,626 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:50:14,626 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:50:14,626 INFO L74 IsIncluded]: Start isIncluded. First operand 79 states. Second operand 115 states. [2019-01-31 14:50:14,626 INFO L87 Difference]: Start difference. First operand 79 states. Second operand 115 states. [2019-01-31 14:50:14,628 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:50:14,629 INFO L93 Difference]: Finished difference Result 115 states and 425 transitions. [2019-01-31 14:50:14,629 INFO L276 IsEmpty]: Start isEmpty. Operand 115 states and 425 transitions. [2019-01-31 14:50:14,629 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:50:14,629 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:50:14,629 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:50:14,629 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:50:14,629 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 79 states. [2019-01-31 14:50:14,631 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 79 states to 79 states and 373 transitions. [2019-01-31 14:50:14,631 INFO L78 Accepts]: Start accepts. Automaton has 79 states and 373 transitions. Word has length 6 [2019-01-31 14:50:14,631 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:50:14,631 INFO L480 AbstractCegarLoop]: Abstraction has 79 states and 373 transitions. [2019-01-31 14:50:14,631 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-31 14:50:14,631 INFO L276 IsEmpty]: Start isEmpty. Operand 79 states and 373 transitions. [2019-01-31 14:50:14,631 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:50:14,632 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:50:14,632 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:50:14,632 INFO L423 AbstractCegarLoop]: === Iteration 49 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:50:14,632 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:50:14,632 INFO L82 PathProgramCache]: Analyzing trace with hash 904550232, now seen corresponding path program 1 times [2019-01-31 14:50:14,632 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:50:14,633 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:50:14,633 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:50:14,633 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:50:14,633 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:50:14,635 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:50:14,867 INFO L273 TraceCheckUtils]: 0: Hoare triple {17921#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {17923#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:50:14,869 INFO L273 TraceCheckUtils]: 1: Hoare triple {17923#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {17924#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:50:14,870 INFO L273 TraceCheckUtils]: 2: Hoare triple {17924#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {17925#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:50:14,871 INFO L273 TraceCheckUtils]: 3: Hoare triple {17925#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {17926#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:50:14,872 INFO L273 TraceCheckUtils]: 4: Hoare triple {17926#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {17927#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:50:14,872 INFO L273 TraceCheckUtils]: 5: Hoare triple {17927#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {17922#false} is VALID [2019-01-31 14:50:14,873 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:50:14,873 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:50:14,873 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:50:14,873 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-31 14:50:14,874 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [14], [18], [23] [2019-01-31 14:50:14,874 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:50:14,875 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:50:14,882 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:50:14,882 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 68 root evaluator evaluations with a maximum evaluation depth of 3. Performed 68 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 4 fixpoints after 4 different actions. Largest state had 0 variables. [2019-01-31 14:50:14,883 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:50:14,883 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:50:14,883 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:50:14,883 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 47 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 47 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:50:14,893 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:50:14,893 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:50:14,897 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:50:14,901 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:50:14,901 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:50:14,916 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 18 treesize of output 21 [2019-01-31 14:50:14,923 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:14,923 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 21 treesize of output 27 [2019-01-31 14:50:14,935 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:14,937 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:14,937 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:50:14,952 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:14,953 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:14,954 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:14,955 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:50:14,974 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:14,976 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:14,977 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:14,978 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:14,979 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:50:14,983 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:50:15,014 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:50:15,032 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:50:15,046 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:50:15,056 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:50:15,077 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:50:15,078 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 2 variables, input treesize:31, output treesize:38 [2019-01-31 14:50:15,084 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:50:15,084 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_270|, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store (store |v_#memory_int_270| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:50:15,084 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p5]. (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:50:15,146 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,148 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,149 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,150 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,152 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,153 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,154 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,155 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,157 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,158 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,159 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,160 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 66 [2019-01-31 14:50:15,164 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:50:15,205 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:50:15,206 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:48, output treesize:38 [2019-01-31 14:50:15,340 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:50:15,340 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_271|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_271| ULTIMATE.start_main_p4))) (and (= 0 .cse0) (= (select |v_#memory_int_271| ULTIMATE.start_main_p1) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_271| ULTIMATE.start_main_p5)) (= (select |v_#memory_int_271| ULTIMATE.start_main_p3) 0) (= (store |v_#memory_int_271| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_271| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:50:15,340 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:50:15,422 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,424 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,425 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,426 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,428 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,429 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,430 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,431 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,433 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,434 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,435 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,436 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,437 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:15,438 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 88 [2019-01-31 14:50:15,442 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:50:15,520 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:50:15,520 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:50, output treesize:40 [2019-01-31 14:50:20,911 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:50:20,911 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_272|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_272| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_272| ULTIMATE.start_main_p5) 0) (= (+ (select |v_#memory_int_272| ULTIMATE.start_main_p4) 1) 0) (= .cse0 0) (= 0 (select |v_#memory_int_272| ULTIMATE.start_main_p1)) (= (store |v_#memory_int_272| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 (select |v_#memory_int_272| ULTIMATE.start_main_p2)))) [2019-01-31 14:50:20,912 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:50:21,073 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:21,074 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:21,076 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:21,077 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:21,078 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:21,079 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:21,081 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:21,082 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:21,083 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:21,084 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:21,086 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:21,087 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:21,088 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:21,089 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:21,090 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:21,090 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:50:21,091 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 104 [2019-01-31 14:50:21,096 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:50:21,158 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:50:21,158 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:50, output treesize:40 [2019-01-31 14:50:21,167 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:50:21,167 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_273|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_273| ULTIMATE.start_main_p1))) (and (= 0 (select |v_#memory_int_273| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_273| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= (+ (select |v_#memory_int_273| ULTIMATE.start_main_p4) 1) 0) (= .cse0 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |v_#memory_int_273| ULTIMATE.start_main_p5) 0) (= 1 (select |v_#memory_int_273| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:50:21,167 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:50:21,293 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:21,295 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:21,296 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:21,297 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:21,299 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:21,300 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:21,302 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:21,303 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:21,304 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:21,306 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:21,307 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:21,308 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:21,309 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:50:21,310 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:21,311 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 97 [2019-01-31 14:50:21,316 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:50:21,370 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:50:21,370 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:50, output treesize:38 [2019-01-31 14:50:21,389 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:50:21,389 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_274|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_274| ULTIMATE.start_main_p2))) (and (= 0 (+ (select |v_#memory_int_274| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_274| ULTIMATE.start_main_p1) 1) (= (select |v_#memory_int_274| ULTIMATE.start_main_p5) 0) (= (select |v_#memory_int_274| ULTIMATE.start_main_p3) 1) (= |#memory_int| (store |v_#memory_int_274| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= .cse0 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:50:21,389 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:50:21,450 INFO L273 TraceCheckUtils]: 0: Hoare triple {17921#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {17931#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:50:21,453 INFO L273 TraceCheckUtils]: 1: Hoare triple {17931#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {17935#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:50:21,457 INFO L273 TraceCheckUtils]: 2: Hoare triple {17935#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {17939#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:50:21,460 INFO L273 TraceCheckUtils]: 3: Hoare triple {17939#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {17943#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:50:21,465 INFO L273 TraceCheckUtils]: 4: Hoare triple {17943#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {17947#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-31 14:50:21,465 INFO L273 TraceCheckUtils]: 5: Hoare triple {17947#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {17922#false} is VALID [2019-01-31 14:50:21,466 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:50:21,466 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:50:21,556 INFO L273 TraceCheckUtils]: 5: Hoare triple {17951#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {17922#false} is VALID [2019-01-31 14:50:21,557 INFO L273 TraceCheckUtils]: 4: Hoare triple {17955#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {17951#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:50:21,558 INFO L273 TraceCheckUtils]: 3: Hoare triple {17959#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {17955#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:50:21,560 INFO L273 TraceCheckUtils]: 2: Hoare triple {17963#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {17959#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:50:21,562 INFO L273 TraceCheckUtils]: 1: Hoare triple {17967#(<= 0 (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {17963#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:50:21,565 INFO L273 TraceCheckUtils]: 0: Hoare triple {17921#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {17967#(<= 0 (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:50:21,565 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 6 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:50:21,585 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:50:21,585 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5, 5] total 15 [2019-01-31 14:50:21,585 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:50:21,586 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-31 14:50:21,586 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:50:21,586 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-01-31 14:50:21,612 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:50:21,612 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-01-31 14:50:21,613 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-01-31 14:50:21,613 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=102, Invalid=170, Unknown=0, NotChecked=0, Total=272 [2019-01-31 14:50:21,613 INFO L87 Difference]: Start difference. First operand 79 states and 373 transitions. Second operand 12 states. [2019-01-31 14:50:25,696 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:50:25,696 INFO L93 Difference]: Finished difference Result 140 states and 516 transitions. [2019-01-31 14:50:25,696 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-31 14:50:25,696 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-31 14:50:25,696 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:50:25,696 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-31 14:50:25,697 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 89 transitions. [2019-01-31 14:50:25,697 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-31 14:50:25,697 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 89 transitions. [2019-01-31 14:50:25,697 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 89 transitions. [2019-01-31 14:50:25,938 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 89 edges. 89 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:50:25,942 INFO L225 Difference]: With dead ends: 140 [2019-01-31 14:50:25,942 INFO L226 Difference]: Without dead ends: 139 [2019-01-31 14:50:25,942 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 18 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 100 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=134, Invalid=246, Unknown=0, NotChecked=0, Total=380 [2019-01-31 14:50:25,943 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 139 states. [2019-01-31 14:50:27,470 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 139 to 76. [2019-01-31 14:50:27,470 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:50:27,470 INFO L82 GeneralOperation]: Start isEquivalent. First operand 139 states. Second operand 76 states. [2019-01-31 14:50:27,470 INFO L74 IsIncluded]: Start isIncluded. First operand 139 states. Second operand 76 states. [2019-01-31 14:50:27,470 INFO L87 Difference]: Start difference. First operand 139 states. Second operand 76 states. [2019-01-31 14:50:27,474 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:50:27,474 INFO L93 Difference]: Finished difference Result 139 states and 514 transitions. [2019-01-31 14:50:27,474 INFO L276 IsEmpty]: Start isEmpty. Operand 139 states and 514 transitions. [2019-01-31 14:50:27,474 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:50:27,474 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:50:27,475 INFO L74 IsIncluded]: Start isIncluded. First operand 76 states. Second operand 139 states. [2019-01-31 14:50:27,475 INFO L87 Difference]: Start difference. First operand 76 states. Second operand 139 states. [2019-01-31 14:50:27,477 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:50:27,478 INFO L93 Difference]: Finished difference Result 139 states and 514 transitions. [2019-01-31 14:50:27,478 INFO L276 IsEmpty]: Start isEmpty. Operand 139 states and 514 transitions. [2019-01-31 14:50:27,478 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:50:27,478 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:50:27,478 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:50:27,478 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:50:27,478 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 76 states. [2019-01-31 14:50:27,480 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 76 states to 76 states and 355 transitions. [2019-01-31 14:50:27,480 INFO L78 Accepts]: Start accepts. Automaton has 76 states and 355 transitions. Word has length 6 [2019-01-31 14:50:27,480 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:50:27,480 INFO L480 AbstractCegarLoop]: Abstraction has 76 states and 355 transitions. [2019-01-31 14:50:27,480 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-01-31 14:50:27,480 INFO L276 IsEmpty]: Start isEmpty. Operand 76 states and 355 transitions. [2019-01-31 14:50:27,480 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:50:27,480 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:50:27,481 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:50:27,481 INFO L423 AbstractCegarLoop]: === Iteration 50 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:50:27,481 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:50:27,481 INFO L82 PathProgramCache]: Analyzing trace with hash 904568030, now seen corresponding path program 1 times [2019-01-31 14:50:27,481 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:50:27,481 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:50:27,482 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:50:27,482 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:50:27,482 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:50:27,485 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:50:27,633 INFO L273 TraceCheckUtils]: 0: Hoare triple {18602#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {18604#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:50:27,634 INFO L273 TraceCheckUtils]: 1: Hoare triple {18604#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {18605#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-31 14:50:27,635 INFO L273 TraceCheckUtils]: 2: Hoare triple {18605#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {18606#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:50:27,636 INFO L273 TraceCheckUtils]: 3: Hoare triple {18606#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {18606#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:50:27,636 INFO L273 TraceCheckUtils]: 4: Hoare triple {18606#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {18606#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:50:27,637 INFO L273 TraceCheckUtils]: 5: Hoare triple {18606#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {18603#false} is VALID [2019-01-31 14:50:27,637 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:50:27,637 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:50:27,637 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:50:27,638 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-31 14:50:27,638 INFO L207 CegarAbsIntRunner]: [0], [14], [18], [24], [26], [27] [2019-01-31 14:50:27,639 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:50:27,639 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:50:27,647 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:50:27,648 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 68 root evaluator evaluations with a maximum evaluation depth of 3. Performed 68 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-31 14:50:27,648 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:50:27,648 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:50:27,648 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:50:27,649 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 48 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 48 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:50:27,662 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:50:27,662 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:50:27,666 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:50:27,669 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:50:27,670 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:50:27,682 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 18 treesize of output 21 [2019-01-31 14:50:27,688 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 23 [2019-01-31 14:50:27,697 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 25 [2019-01-31 14:50:27,712 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:27,713 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 1 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 31 [2019-01-31 14:50:27,727 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:27,735 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:27,736 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 3 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 38 [2019-01-31 14:50:27,740 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:50:27,757 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:50:27,770 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:50:27,782 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:50:27,794 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:50:27,812 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:50:27,812 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 4 variables, input treesize:25, output treesize:32 [2019-01-31 14:50:27,819 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:50:27,820 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_279|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5]. (and (= |#memory_int| (store (store (store (store (store |v_#memory_int_279| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5)) [2019-01-31 14:50:27,820 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p5, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:50:27,871 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:27,872 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:27,874 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:27,875 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:27,877 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 28 [2019-01-31 14:50:27,882 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:50:27,899 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:50:27,900 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:32, output treesize:22 [2019-01-31 14:50:27,907 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:50:27,907 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_280|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_280| ULTIMATE.start_main_p4))) (and (= .cse0 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_280| ULTIMATE.start_main_p3) 0) (= 0 (select |v_#memory_int_280| ULTIMATE.start_main_p5)) (= (store |v_#memory_int_280| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) [2019-01-31 14:50:27,907 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5)) [2019-01-31 14:50:27,945 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:27,947 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:27,948 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:27,949 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:27,950 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:27,951 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:27,952 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 28 treesize of output 50 [2019-01-31 14:50:27,955 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:50:27,978 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:50:27,979 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:34, output treesize:24 [2019-01-31 14:50:27,986 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:50:27,986 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_281|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_281| ULTIMATE.start_main_p3))) (and (= (store |v_#memory_int_281| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (select |v_#memory_int_281| ULTIMATE.start_main_p5) 0) (= (+ (select |v_#memory_int_281| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) [2019-01-31 14:50:27,986 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5)) [2019-01-31 14:50:28,030 INFO L273 TraceCheckUtils]: 0: Hoare triple {18602#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {18610#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-31 14:50:28,032 INFO L273 TraceCheckUtils]: 1: Hoare triple {18610#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {18614#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} is VALID [2019-01-31 14:50:28,034 INFO L273 TraceCheckUtils]: 2: Hoare triple {18614#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {18618#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} is VALID [2019-01-31 14:50:28,035 INFO L273 TraceCheckUtils]: 3: Hoare triple {18618#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} assume #memory_int[main_p1] >= 0; {18618#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} is VALID [2019-01-31 14:50:28,036 INFO L273 TraceCheckUtils]: 4: Hoare triple {18618#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} assume #memory_int[main_p2] <= 0; {18618#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} is VALID [2019-01-31 14:50:28,037 INFO L273 TraceCheckUtils]: 5: Hoare triple {18618#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} assume !(#memory_int[main_p3] >= 0); {18603#false} is VALID [2019-01-31 14:50:28,037 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:50:28,037 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:50:28,069 INFO L273 TraceCheckUtils]: 5: Hoare triple {18606#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {18603#false} is VALID [2019-01-31 14:50:28,070 INFO L273 TraceCheckUtils]: 4: Hoare triple {18606#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {18606#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:50:28,070 INFO L273 TraceCheckUtils]: 3: Hoare triple {18606#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {18606#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:50:28,071 INFO L273 TraceCheckUtils]: 2: Hoare triple {18637#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {18606#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:50:28,072 INFO L273 TraceCheckUtils]: 1: Hoare triple {18641#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {18637#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1))} is VALID [2019-01-31 14:50:28,075 INFO L273 TraceCheckUtils]: 0: Hoare triple {18602#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {18641#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1))} is VALID [2019-01-31 14:50:28,075 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:50:28,094 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:50:28,095 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 8 [2019-01-31 14:50:28,095 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:50:28,095 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-31 14:50:28,095 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:50:28,095 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:50:28,112 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:50:28,112 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:50:28,112 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:50:28,113 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=39, Invalid=51, Unknown=0, NotChecked=0, Total=90 [2019-01-31 14:50:28,113 INFO L87 Difference]: Start difference. First operand 76 states and 355 transitions. Second operand 8 states. [2019-01-31 14:50:30,957 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:50:30,957 INFO L93 Difference]: Finished difference Result 112 states and 470 transitions. [2019-01-31 14:50:30,957 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-31 14:50:30,957 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-31 14:50:30,958 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:50:30,958 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:50:30,958 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 59 transitions. [2019-01-31 14:50:30,958 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:50:30,958 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 59 transitions. [2019-01-31 14:50:30,959 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 59 transitions. [2019-01-31 14:50:31,037 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 59 edges. 59 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:50:31,040 INFO L225 Difference]: With dead ends: 112 [2019-01-31 14:50:31,040 INFO L226 Difference]: Without dead ends: 111 [2019-01-31 14:50:31,041 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 5 SyntacticMatches, 0 SemanticMatches, 9 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 24 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=47, Invalid=63, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:50:31,041 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 111 states. [2019-01-31 14:50:32,807 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 111 to 80. [2019-01-31 14:50:32,807 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:50:32,807 INFO L82 GeneralOperation]: Start isEquivalent. First operand 111 states. Second operand 80 states. [2019-01-31 14:50:32,807 INFO L74 IsIncluded]: Start isIncluded. First operand 111 states. Second operand 80 states. [2019-01-31 14:50:32,807 INFO L87 Difference]: Start difference. First operand 111 states. Second operand 80 states. [2019-01-31 14:50:32,811 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:50:32,811 INFO L93 Difference]: Finished difference Result 111 states and 468 transitions. [2019-01-31 14:50:32,811 INFO L276 IsEmpty]: Start isEmpty. Operand 111 states and 468 transitions. [2019-01-31 14:50:32,811 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:50:32,811 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:50:32,811 INFO L74 IsIncluded]: Start isIncluded. First operand 80 states. Second operand 111 states. [2019-01-31 14:50:32,811 INFO L87 Difference]: Start difference. First operand 80 states. Second operand 111 states. [2019-01-31 14:50:32,814 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:50:32,814 INFO L93 Difference]: Finished difference Result 111 states and 468 transitions. [2019-01-31 14:50:32,814 INFO L276 IsEmpty]: Start isEmpty. Operand 111 states and 468 transitions. [2019-01-31 14:50:32,814 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:50:32,814 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:50:32,814 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:50:32,814 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:50:32,815 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 80 states. [2019-01-31 14:50:32,816 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 80 states to 80 states and 380 transitions. [2019-01-31 14:50:32,816 INFO L78 Accepts]: Start accepts. Automaton has 80 states and 380 transitions. Word has length 6 [2019-01-31 14:50:32,816 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:50:32,816 INFO L480 AbstractCegarLoop]: Abstraction has 80 states and 380 transitions. [2019-01-31 14:50:32,816 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:50:32,816 INFO L276 IsEmpty]: Start isEmpty. Operand 80 states and 380 transitions. [2019-01-31 14:50:32,817 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:50:32,817 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:50:32,817 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:50:32,817 INFO L423 AbstractCegarLoop]: === Iteration 51 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:50:32,817 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:50:32,817 INFO L82 PathProgramCache]: Analyzing trace with hash 906170478, now seen corresponding path program 2 times [2019-01-31 14:50:32,817 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:50:32,818 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:50:32,818 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:50:32,818 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:50:32,818 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:50:32,820 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:50:33,090 INFO L273 TraceCheckUtils]: 0: Hoare triple {19192#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {19194#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:50:33,091 INFO L273 TraceCheckUtils]: 1: Hoare triple {19194#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {19195#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:50:33,092 INFO L273 TraceCheckUtils]: 2: Hoare triple {19195#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {19196#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:50:33,093 INFO L273 TraceCheckUtils]: 3: Hoare triple {19196#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {19197#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:50:33,093 INFO L273 TraceCheckUtils]: 4: Hoare triple {19197#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {19198#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:50:33,094 INFO L273 TraceCheckUtils]: 5: Hoare triple {19198#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {19193#false} is VALID [2019-01-31 14:50:33,095 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:50:33,095 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:50:33,095 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:50:33,095 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-31 14:50:33,095 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-31 14:50:33,095 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:50:33,096 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 49 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 49 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:50:33,106 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-31 14:50:33,107 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-31 14:50:33,113 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-31 14:50:33,113 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-31 14:50:33,116 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:50:33,117 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:50:33,136 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 18 treesize of output 21 [2019-01-31 14:50:33,142 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:33,143 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 21 treesize of output 27 [2019-01-31 14:50:33,154 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:33,155 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:33,156 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:50:33,171 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:33,173 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:33,174 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:33,175 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:50:33,195 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:33,196 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:33,198 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:33,200 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:33,200 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:50:33,205 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:50:33,238 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:50:33,257 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:50:33,271 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:50:33,293 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:50:33,324 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:50:33,325 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 2 variables, input treesize:31, output treesize:38 [2019-01-31 14:50:33,335 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:50:33,335 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_284|, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store (store |v_#memory_int_284| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:50:33,335 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:50:33,401 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:33,403 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:33,404 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:33,406 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:33,407 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:33,409 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:33,410 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:33,412 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:33,413 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:33,415 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:33,416 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:33,417 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 72 [2019-01-31 14:50:33,421 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:50:33,470 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:50:33,470 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:48, output treesize:38 [2019-01-31 14:50:38,186 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:50:38,186 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_285|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_285| ULTIMATE.start_main_p5))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= (select |v_#memory_int_285| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_285| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= |#memory_int| (store |v_#memory_int_285| ULTIMATE.start_main_p5 (+ .cse0 1))) (= 0 (select |v_#memory_int_285| ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_285| ULTIMATE.start_main_p4)))) [2019-01-31 14:50:38,187 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:50:38,264 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,265 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,266 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,268 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,269 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,270 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,271 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,273 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,274 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,275 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,276 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,278 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,278 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:50:38,279 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 80 [2019-01-31 14:50:38,282 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:50:38,334 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:50:38,335 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:48, output treesize:38 [2019-01-31 14:50:38,345 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:50:38,346 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_286|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_286| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_286| ULTIMATE.start_main_p3)) (= (store |v_#memory_int_286| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= (select |v_#memory_int_286| ULTIMATE.start_main_p5) 1) (= (select |v_#memory_int_286| ULTIMATE.start_main_p4) 0) (= 0 .cse0) (= (select |v_#memory_int_286| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:50:38,346 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:50:38,414 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,416 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,417 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,418 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,420 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,421 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,423 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,424 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,426 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,427 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,428 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,430 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,431 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,432 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 78 [2019-01-31 14:50:38,435 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:50:38,484 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:50:38,485 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:48, output treesize:38 [2019-01-31 14:50:38,500 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:50:38,500 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_287|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_287| ULTIMATE.start_main_p4))) (and (= |#memory_int| (store |v_#memory_int_287| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= (select |v_#memory_int_287| ULTIMATE.start_main_p5) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_287| ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_287| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 .cse0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 1 (select |v_#memory_int_287| ULTIMATE.start_main_p1)))) [2019-01-31 14:50:38,500 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:50:38,575 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,577 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,578 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,580 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,582 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,583 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,585 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,586 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,587 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,589 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,590 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,591 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,592 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:50:38,593 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:38,594 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 93 [2019-01-31 14:50:38,598 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:50:38,663 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:50:38,663 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:50, output treesize:38 [2019-01-31 14:50:38,682 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:50:38,683 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_288|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_288| ULTIMATE.start_main_p2))) (and (= (select |v_#memory_int_288| ULTIMATE.start_main_p3) 0) (= .cse0 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_288| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= (+ (select |v_#memory_int_288| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_288| ULTIMATE.start_main_p5) 1) (= 1 (select |v_#memory_int_288| ULTIMATE.start_main_p1)))) [2019-01-31 14:50:38,683 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:50:38,757 INFO L273 TraceCheckUtils]: 0: Hoare triple {19192#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {19202#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:50:38,759 INFO L273 TraceCheckUtils]: 1: Hoare triple {19202#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {19206#(and (exists ((ULTIMATE.start_main_p5 Int)) (and (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:50:38,762 INFO L273 TraceCheckUtils]: 2: Hoare triple {19206#(and (exists ((ULTIMATE.start_main_p5 Int)) (and (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {19210#(and (exists ((ULTIMATE.start_main_p5 Int)) (and (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:50:38,766 INFO L273 TraceCheckUtils]: 3: Hoare triple {19210#(and (exists ((ULTIMATE.start_main_p5 Int)) (and (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {19214#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:50:38,774 INFO L273 TraceCheckUtils]: 4: Hoare triple {19214#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {19218#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-31 14:50:38,775 INFO L273 TraceCheckUtils]: 5: Hoare triple {19218#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {19193#false} is VALID [2019-01-31 14:50:38,775 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:50:38,775 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:50:38,874 INFO L273 TraceCheckUtils]: 5: Hoare triple {19222#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {19193#false} is VALID [2019-01-31 14:50:38,875 INFO L273 TraceCheckUtils]: 4: Hoare triple {19226#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {19222#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:50:38,876 INFO L273 TraceCheckUtils]: 3: Hoare triple {19230#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {19226#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:50:38,878 INFO L273 TraceCheckUtils]: 2: Hoare triple {19234#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {19230#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:50:38,881 INFO L273 TraceCheckUtils]: 1: Hoare triple {19238#(<= 0 (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {19234#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:50:38,884 INFO L273 TraceCheckUtils]: 0: Hoare triple {19192#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {19238#(<= 0 (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:50:38,884 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 5 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:50:38,904 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:50:38,904 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5, 5] total 15 [2019-01-31 14:50:38,904 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:50:38,904 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-31 14:50:38,904 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:50:38,905 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-01-31 14:50:38,934 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:50:38,934 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-01-31 14:50:38,934 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-01-31 14:50:38,935 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=100, Invalid=172, Unknown=0, NotChecked=0, Total=272 [2019-01-31 14:50:38,935 INFO L87 Difference]: Start difference. First operand 80 states and 380 transitions. Second operand 12 states. [2019-01-31 14:50:46,591 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:50:46,592 INFO L93 Difference]: Finished difference Result 137 states and 479 transitions. [2019-01-31 14:50:46,592 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-31 14:50:46,592 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-31 14:50:46,592 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:50:46,592 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-31 14:50:46,593 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 94 transitions. [2019-01-31 14:50:46,593 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-31 14:50:46,593 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 94 transitions. [2019-01-31 14:50:46,593 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 94 transitions. [2019-01-31 14:50:46,830 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 94 edges. 94 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:50:46,833 INFO L225 Difference]: With dead ends: 137 [2019-01-31 14:50:46,833 INFO L226 Difference]: Without dead ends: 135 [2019-01-31 14:50:46,833 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 18 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 99 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=132, Invalid=248, Unknown=0, NotChecked=0, Total=380 [2019-01-31 14:50:46,833 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 135 states. [2019-01-31 14:50:48,648 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 135 to 77. [2019-01-31 14:50:48,648 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:50:48,648 INFO L82 GeneralOperation]: Start isEquivalent. First operand 135 states. Second operand 77 states. [2019-01-31 14:50:48,648 INFO L74 IsIncluded]: Start isIncluded. First operand 135 states. Second operand 77 states. [2019-01-31 14:50:48,648 INFO L87 Difference]: Start difference. First operand 135 states. Second operand 77 states. [2019-01-31 14:50:48,652 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:50:48,652 INFO L93 Difference]: Finished difference Result 135 states and 474 transitions. [2019-01-31 14:50:48,652 INFO L276 IsEmpty]: Start isEmpty. Operand 135 states and 474 transitions. [2019-01-31 14:50:48,652 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:50:48,653 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:50:48,653 INFO L74 IsIncluded]: Start isIncluded. First operand 77 states. Second operand 135 states. [2019-01-31 14:50:48,653 INFO L87 Difference]: Start difference. First operand 77 states. Second operand 135 states. [2019-01-31 14:50:48,655 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:50:48,656 INFO L93 Difference]: Finished difference Result 135 states and 474 transitions. [2019-01-31 14:50:48,656 INFO L276 IsEmpty]: Start isEmpty. Operand 135 states and 474 transitions. [2019-01-31 14:50:48,656 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:50:48,656 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:50:48,656 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:50:48,656 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:50:48,656 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 77 states. [2019-01-31 14:50:48,658 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 77 states to 77 states and 361 transitions. [2019-01-31 14:50:48,658 INFO L78 Accepts]: Start accepts. Automaton has 77 states and 361 transitions. Word has length 6 [2019-01-31 14:50:48,658 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:50:48,658 INFO L480 AbstractCegarLoop]: Abstraction has 77 states and 361 transitions. [2019-01-31 14:50:48,658 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-01-31 14:50:48,658 INFO L276 IsEmpty]: Start isEmpty. Operand 77 states and 361 transitions. [2019-01-31 14:50:48,658 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:50:48,659 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:50:48,659 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:50:48,659 INFO L423 AbstractCegarLoop]: === Iteration 52 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:50:48,659 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:50:48,659 INFO L82 PathProgramCache]: Analyzing trace with hash 906163226, now seen corresponding path program 1 times [2019-01-31 14:50:48,659 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:50:48,660 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:50:48,660 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-31 14:50:48,660 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:50:48,660 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:50:48,662 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:50:48,878 INFO L273 TraceCheckUtils]: 0: Hoare triple {19857#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {19859#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:50:48,880 INFO L273 TraceCheckUtils]: 1: Hoare triple {19859#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {19860#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:50:48,881 INFO L273 TraceCheckUtils]: 2: Hoare triple {19860#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {19860#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:50:48,882 INFO L273 TraceCheckUtils]: 3: Hoare triple {19860#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {19861#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (<= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-31 14:50:48,883 INFO L273 TraceCheckUtils]: 4: Hoare triple {19861#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (<= (select |#memory_int| ULTIMATE.start_main_p2) 0))} assume #memory_int[main_p1] >= 0; {19862#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:50:48,883 INFO L273 TraceCheckUtils]: 5: Hoare triple {19862#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {19858#false} is VALID [2019-01-31 14:50:48,884 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-31 14:50:48,884 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:50:48,884 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:50:48,884 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-31 14:50:48,885 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [20], [24], [25] [2019-01-31 14:50:48,885 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:50:48,886 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:50:48,903 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:50:48,903 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 68 root evaluator evaluations with a maximum evaluation depth of 3. Performed 68 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-31 14:50:48,903 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:50:48,904 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:50:48,904 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:50:48,904 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 50 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 50 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:50:48,913 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:50:48,913 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:50:48,918 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:50:48,923 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:50:48,923 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:50:48,942 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 18 treesize of output 21 [2019-01-31 14:50:48,950 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:48,951 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 21 treesize of output 27 [2019-01-31 14:50:48,961 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:48,963 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:48,964 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:50:48,979 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:48,980 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:48,982 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:48,983 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:50:49,003 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:49,004 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:49,006 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:49,007 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:49,008 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:50:49,016 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:50:49,048 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:50:49,067 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:50:49,080 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:50:49,093 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:50:49,120 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:50:49,120 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 3 variables, input treesize:31, output treesize:38 [2019-01-31 14:50:49,130 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:50:49,130 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_293|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store (store |v_#memory_int_293| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:50:49,130 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:50:49,193 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:49,195 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:49,196 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:49,198 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:49,199 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:49,200 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:49,202 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:49,203 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:49,204 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:49,205 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:49,207 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:50:49,208 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 72 [2019-01-31 14:50:49,215 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:50:49,266 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:50:49,267 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:48, output treesize:38 [2019-01-31 14:50:59,827 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:50:59,827 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_294|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_294| ULTIMATE.start_main_p5))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_294| ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_294| ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_294| ULTIMATE.start_main_p1)) (= 0 .cse0) (= 0 (select |v_#memory_int_294| ULTIMATE.start_main_p3)) (= (store |v_#memory_int_294| ULTIMATE.start_main_p5 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:50:59,828 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:51:00,285 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:00,287 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:00,288 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:00,290 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:00,291 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:00,293 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:00,294 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:00,296 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:00,297 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:00,299 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:00,300 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:00,301 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:00,302 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:51:00,303 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 80 [2019-01-31 14:51:00,307 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:51:00,364 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:51:00,365 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:48, output treesize:38 [2019-01-31 14:51:00,628 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:51:00,628 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_295|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_295| ULTIMATE.start_main_p1))) (and (= |#memory_int| (store |v_#memory_int_295| ULTIMATE.start_main_p1 (+ .cse0 1))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_295| ULTIMATE.start_main_p3)) (= (select |v_#memory_int_295| ULTIMATE.start_main_p4) 0) (= 1 (select |v_#memory_int_295| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 .cse0) (= 0 (select |v_#memory_int_295| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:51:00,628 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:51:00,709 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:00,710 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:00,711 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:00,712 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:00,713 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:00,714 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:00,716 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:00,717 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:00,718 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:00,720 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:00,721 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:00,722 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:00,723 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:00,724 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 86 [2019-01-31 14:51:00,729 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:51:00,786 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:51:00,786 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:48, output treesize:38 [2019-01-31 14:51:00,893 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:51:00,893 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_296|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_296| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_296| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_296| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_296| ULTIMATE.start_main_p1) 1) (= (select |v_#memory_int_296| ULTIMATE.start_main_p5) 1) (= (select |v_#memory_int_296| ULTIMATE.start_main_p4) 0) (= .cse0 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-31 14:51:00,893 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:51:00,972 INFO L273 TraceCheckUtils]: 0: Hoare triple {19857#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {19866#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:51:00,975 INFO L273 TraceCheckUtils]: 1: Hoare triple {19866#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {19870#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:51:00,977 INFO L273 TraceCheckUtils]: 2: Hoare triple {19870#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {19874#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-31 14:51:00,982 INFO L273 TraceCheckUtils]: 3: Hoare triple {19874#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {19878#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-31 14:51:00,983 INFO L273 TraceCheckUtils]: 4: Hoare triple {19878#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p1] >= 0; {19878#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-31 14:51:00,984 INFO L273 TraceCheckUtils]: 5: Hoare triple {19878#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume !(#memory_int[main_p2] <= 0); {19858#false} is VALID [2019-01-31 14:51:00,984 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:51:00,984 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:51:01,037 INFO L273 TraceCheckUtils]: 5: Hoare triple {19862#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {19858#false} is VALID [2019-01-31 14:51:01,038 INFO L273 TraceCheckUtils]: 4: Hoare triple {19862#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {19862#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:51:01,039 INFO L273 TraceCheckUtils]: 3: Hoare triple {19891#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {19862#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:51:01,040 INFO L273 TraceCheckUtils]: 2: Hoare triple {19895#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {19891#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} is VALID [2019-01-31 14:51:01,041 INFO L273 TraceCheckUtils]: 1: Hoare triple {19899#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {19895#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1)} is VALID [2019-01-31 14:51:01,044 INFO L273 TraceCheckUtils]: 0: Hoare triple {19857#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {19899#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1)} is VALID [2019-01-31 14:51:01,044 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 2 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:51:01,064 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:51:01,064 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-31 14:51:01,064 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:51:01,064 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-31 14:51:01,064 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:51:01,064 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-31 14:51:01,091 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:51:01,091 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-31 14:51:01,092 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-31 14:51:01,092 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=63, Invalid=93, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:51:01,092 INFO L87 Difference]: Start difference. First operand 77 states and 361 transitions. Second operand 10 states. [2019-01-31 14:51:07,521 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:51:07,521 INFO L93 Difference]: Finished difference Result 124 states and 454 transitions. [2019-01-31 14:51:07,525 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-31 14:51:07,525 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-31 14:51:07,525 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:51:07,525 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:51:07,526 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 77 transitions. [2019-01-31 14:51:07,526 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:51:07,527 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 77 transitions. [2019-01-31 14:51:07,527 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 77 transitions. [2019-01-31 14:51:07,678 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 77 edges. 77 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:51:07,681 INFO L225 Difference]: With dead ends: 124 [2019-01-31 14:51:07,681 INFO L226 Difference]: Without dead ends: 123 [2019-01-31 14:51:07,681 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 3 SyntacticMatches, 1 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 51 ImplicationChecksByTransitivity, 0.8s TimeCoverageRelationStatistics Valid=91, Invalid=149, Unknown=0, NotChecked=0, Total=240 [2019-01-31 14:51:07,682 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 123 states. [2019-01-31 14:51:09,789 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 123 to 84. [2019-01-31 14:51:09,790 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:51:09,790 INFO L82 GeneralOperation]: Start isEquivalent. First operand 123 states. Second operand 84 states. [2019-01-31 14:51:09,790 INFO L74 IsIncluded]: Start isIncluded. First operand 123 states. Second operand 84 states. [2019-01-31 14:51:09,790 INFO L87 Difference]: Start difference. First operand 123 states. Second operand 84 states. [2019-01-31 14:51:09,793 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:51:09,793 INFO L93 Difference]: Finished difference Result 123 states and 452 transitions. [2019-01-31 14:51:09,794 INFO L276 IsEmpty]: Start isEmpty. Operand 123 states and 452 transitions. [2019-01-31 14:51:09,794 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:51:09,794 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:51:09,794 INFO L74 IsIncluded]: Start isIncluded. First operand 84 states. Second operand 123 states. [2019-01-31 14:51:09,794 INFO L87 Difference]: Start difference. First operand 84 states. Second operand 123 states. [2019-01-31 14:51:09,797 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:51:09,798 INFO L93 Difference]: Finished difference Result 123 states and 452 transitions. [2019-01-31 14:51:09,798 INFO L276 IsEmpty]: Start isEmpty. Operand 123 states and 452 transitions. [2019-01-31 14:51:09,798 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:51:09,798 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:51:09,798 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:51:09,798 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:51:09,798 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 84 states. [2019-01-31 14:51:09,801 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 84 states to 84 states and 403 transitions. [2019-01-31 14:51:09,801 INFO L78 Accepts]: Start accepts. Automaton has 84 states and 403 transitions. Word has length 6 [2019-01-31 14:51:09,801 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:51:09,801 INFO L480 AbstractCegarLoop]: Abstraction has 84 states and 403 transitions. [2019-01-31 14:51:09,801 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-31 14:51:09,801 INFO L276 IsEmpty]: Start isEmpty. Operand 84 states and 403 transitions. [2019-01-31 14:51:09,802 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:51:09,802 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:51:09,802 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:51:09,802 INFO L423 AbstractCegarLoop]: === Iteration 53 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:51:09,802 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:51:09,803 INFO L82 PathProgramCache]: Analyzing trace with hash 906167070, now seen corresponding path program 1 times [2019-01-31 14:51:09,803 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:51:09,803 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:51:09,803 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:51:09,804 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:51:09,804 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:51:09,806 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:51:10,062 INFO L273 TraceCheckUtils]: 0: Hoare triple {20493#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {20495#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:51:10,064 INFO L273 TraceCheckUtils]: 1: Hoare triple {20495#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {20496#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:51:10,065 INFO L273 TraceCheckUtils]: 2: Hoare triple {20496#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {20496#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:51:10,065 INFO L273 TraceCheckUtils]: 3: Hoare triple {20496#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {20497#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:51:10,065 INFO L273 TraceCheckUtils]: 4: Hoare triple {20497#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {20497#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:51:10,066 INFO L273 TraceCheckUtils]: 5: Hoare triple {20497#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {20494#false} is VALID [2019-01-31 14:51:10,066 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-31 14:51:10,067 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:51:10,067 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:51:10,067 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-31 14:51:10,067 INFO L207 CegarAbsIntRunner]: [0], [6], [14], [20], [24], [25] [2019-01-31 14:51:10,069 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:51:10,069 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:51:10,078 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:51:10,078 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 68 root evaluator evaluations with a maximum evaluation depth of 3. Performed 68 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-31 14:51:10,078 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:51:10,078 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:51:10,079 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:51:10,079 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 51 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 51 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:51:10,089 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:51:10,090 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:51:10,094 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:51:10,098 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:51:10,099 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:51:10,117 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 18 treesize of output 21 [2019-01-31 14:51:10,126 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:10,127 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 21 treesize of output 27 [2019-01-31 14:51:10,138 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:10,139 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:10,140 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:51:10,156 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:10,157 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:10,159 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:10,159 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:51:10,180 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:10,182 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:10,183 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:10,185 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:10,186 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:51:10,189 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:51:10,222 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:51:10,240 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:51:10,252 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:51:10,265 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:51:10,291 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:51:10,291 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 2 variables, input treesize:31, output treesize:38 [2019-01-31 14:51:10,300 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:51:10,300 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_300|, ULTIMATE.start_main_p4]. (and (= (store (store (store (store (store |v_#memory_int_300| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:51:10,301 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:51:10,363 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:10,364 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:10,365 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:10,367 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:10,368 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:10,370 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:10,371 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:10,372 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:10,374 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:10,375 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:10,376 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:10,377 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 72 [2019-01-31 14:51:10,381 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:51:10,433 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:51:10,434 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:48, output treesize:38 [2019-01-31 14:51:10,474 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:51:10,475 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_301|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_301| ULTIMATE.start_main_p5))) (and (= 0 (select |v_#memory_int_301| ULTIMATE.start_main_p4)) (= .cse0 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_301| ULTIMATE.start_main_p1)) (= (store |v_#memory_int_301| ULTIMATE.start_main_p5 (+ .cse0 1)) |#memory_int|) (= 0 (select |v_#memory_int_301| ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_301| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:51:10,475 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:51:10,540 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:10,541 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:10,543 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:10,544 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:10,545 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:10,547 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:10,548 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:10,549 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:10,550 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:10,552 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:10,553 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:10,554 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:10,555 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:51:10,555 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 80 [2019-01-31 14:51:10,560 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:51:10,620 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:51:10,620 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:48, output treesize:38 [2019-01-31 14:51:15,416 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:51:15,416 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_302|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_302| ULTIMATE.start_main_p1))) (and (= (select |v_#memory_int_302| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (select |v_#memory_int_302| ULTIMATE.start_main_p3) 0) (= (store |v_#memory_int_302| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= (select |v_#memory_int_302| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |v_#memory_int_302| ULTIMATE.start_main_p5) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-31 14:51:15,416 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:51:15,557 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:15,558 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:15,559 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:15,560 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:15,562 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:15,563 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:15,565 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:15,566 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:15,568 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:15,569 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:15,571 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:15,572 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:15,573 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:51:15,574 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 80 [2019-01-31 14:51:15,579 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:51:15,635 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:51:15,635 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:48, output treesize:38 [2019-01-31 14:51:15,706 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:51:15,706 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_303|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_303| ULTIMATE.start_main_p3))) (and (= (select |v_#memory_int_303| ULTIMATE.start_main_p2) 0) (= 0 .cse0) (= 1 (select |v_#memory_int_303| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_303| ULTIMATE.start_main_p3 (+ .cse0 1))) (= (select |v_#memory_int_303| ULTIMATE.start_main_p5) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 (select |v_#memory_int_303| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-31 14:51:15,706 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:51:15,776 INFO L273 TraceCheckUtils]: 0: Hoare triple {20493#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {20501#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:51:15,778 INFO L273 TraceCheckUtils]: 1: Hoare triple {20501#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {20505#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:51:15,782 INFO L273 TraceCheckUtils]: 2: Hoare triple {20505#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {20509#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:51:15,787 INFO L273 TraceCheckUtils]: 3: Hoare triple {20509#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {20513#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:51:15,788 INFO L273 TraceCheckUtils]: 4: Hoare triple {20513#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume #memory_int[main_p1] >= 0; {20513#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:51:15,788 INFO L273 TraceCheckUtils]: 5: Hoare triple {20513#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume !(#memory_int[main_p2] <= 0); {20494#false} is VALID [2019-01-31 14:51:15,789 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:51:15,789 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:51:15,863 INFO L273 TraceCheckUtils]: 5: Hoare triple {20520#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {20494#false} is VALID [2019-01-31 14:51:15,863 INFO L273 TraceCheckUtils]: 4: Hoare triple {20520#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {20520#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:51:15,865 INFO L273 TraceCheckUtils]: 3: Hoare triple {20527#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {20520#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:51:15,866 INFO L273 TraceCheckUtils]: 2: Hoare triple {20531#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {20527#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:51:15,869 INFO L273 TraceCheckUtils]: 1: Hoare triple {20535#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {20531#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:51:15,871 INFO L273 TraceCheckUtils]: 0: Hoare triple {20493#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {20535#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:51:15,872 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:51:15,893 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:51:15,893 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 4, 4] total 11 [2019-01-31 14:51:15,893 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:51:15,894 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 6 [2019-01-31 14:51:15,894 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:51:15,894 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states. [2019-01-31 14:51:15,917 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:51:15,918 INFO L459 AbstractCegarLoop]: Interpolant automaton has 9 states [2019-01-31 14:51:15,918 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2019-01-31 14:51:15,918 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=57, Invalid=99, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:51:15,918 INFO L87 Difference]: Start difference. First operand 84 states and 403 transitions. Second operand 9 states. [2019-01-31 14:51:19,633 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:51:19,633 INFO L93 Difference]: Finished difference Result 119 states and 475 transitions. [2019-01-31 14:51:19,633 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-31 14:51:19,633 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 6 [2019-01-31 14:51:19,634 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:51:19,634 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2019-01-31 14:51:19,634 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 64 transitions. [2019-01-31 14:51:19,634 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2019-01-31 14:51:19,635 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 64 transitions. [2019-01-31 14:51:19,635 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 64 transitions. [2019-01-31 14:51:19,761 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 64 edges. 64 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:51:19,764 INFO L225 Difference]: With dead ends: 119 [2019-01-31 14:51:19,764 INFO L226 Difference]: Without dead ends: 118 [2019-01-31 14:51:19,764 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 3 SyntacticMatches, 1 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 51 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=87, Invalid=153, Unknown=0, NotChecked=0, Total=240 [2019-01-31 14:51:19,764 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 118 states. [2019-01-31 14:51:22,360 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 118 to 91. [2019-01-31 14:51:22,360 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:51:22,360 INFO L82 GeneralOperation]: Start isEquivalent. First operand 118 states. Second operand 91 states. [2019-01-31 14:51:22,360 INFO L74 IsIncluded]: Start isIncluded. First operand 118 states. Second operand 91 states. [2019-01-31 14:51:22,361 INFO L87 Difference]: Start difference. First operand 118 states. Second operand 91 states. [2019-01-31 14:51:22,365 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:51:22,365 INFO L93 Difference]: Finished difference Result 118 states and 473 transitions. [2019-01-31 14:51:22,365 INFO L276 IsEmpty]: Start isEmpty. Operand 118 states and 473 transitions. [2019-01-31 14:51:22,365 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:51:22,365 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:51:22,366 INFO L74 IsIncluded]: Start isIncluded. First operand 91 states. Second operand 118 states. [2019-01-31 14:51:22,366 INFO L87 Difference]: Start difference. First operand 91 states. Second operand 118 states. [2019-01-31 14:51:22,368 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:51:22,368 INFO L93 Difference]: Finished difference Result 118 states and 473 transitions. [2019-01-31 14:51:22,368 INFO L276 IsEmpty]: Start isEmpty. Operand 118 states and 473 transitions. [2019-01-31 14:51:22,369 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:51:22,369 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:51:22,369 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:51:22,369 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:51:22,369 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 91 states. [2019-01-31 14:51:22,371 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 91 states to 91 states and 445 transitions. [2019-01-31 14:51:22,371 INFO L78 Accepts]: Start accepts. Automaton has 91 states and 445 transitions. Word has length 6 [2019-01-31 14:51:22,371 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:51:22,371 INFO L480 AbstractCegarLoop]: Abstraction has 91 states and 445 transitions. [2019-01-31 14:51:22,371 INFO L481 AbstractCegarLoop]: Interpolant automaton has 9 states. [2019-01-31 14:51:22,371 INFO L276 IsEmpty]: Start isEmpty. Operand 91 states and 445 transitions. [2019-01-31 14:51:22,372 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:51:22,372 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:51:22,372 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:51:22,372 INFO L423 AbstractCegarLoop]: === Iteration 54 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:51:22,372 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:51:22,372 INFO L82 PathProgramCache]: Analyzing trace with hash 906285674, now seen corresponding path program 1 times [2019-01-31 14:51:22,372 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:51:22,373 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:51:22,373 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:51:22,373 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:51:22,373 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:51:22,376 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:51:22,599 INFO L273 TraceCheckUtils]: 0: Hoare triple {21133#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {21135#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:51:22,601 INFO L273 TraceCheckUtils]: 1: Hoare triple {21135#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {21136#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:51:22,602 INFO L273 TraceCheckUtils]: 2: Hoare triple {21136#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {21137#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:51:22,603 INFO L273 TraceCheckUtils]: 3: Hoare triple {21137#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {21138#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-31 14:51:22,604 INFO L273 TraceCheckUtils]: 4: Hoare triple {21138#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {21139#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:51:22,604 INFO L273 TraceCheckUtils]: 5: Hoare triple {21139#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {21134#false} is VALID [2019-01-31 14:51:22,605 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:51:22,605 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:51:22,605 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:51:22,606 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-31 14:51:22,606 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [14], [20], [23] [2019-01-31 14:51:22,607 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:51:22,607 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:51:22,614 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:51:22,614 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 68 root evaluator evaluations with a maximum evaluation depth of 3. Performed 68 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 4 fixpoints after 4 different actions. Largest state had 0 variables. [2019-01-31 14:51:22,614 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:51:22,615 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:51:22,615 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:51:22,615 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 52 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 52 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:51:22,625 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:51:22,625 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:51:22,632 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:51:22,642 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:51:22,642 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:51:22,665 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 18 treesize of output 21 [2019-01-31 14:51:22,673 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:22,674 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 21 treesize of output 27 [2019-01-31 14:51:22,686 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:22,687 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:22,688 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:51:22,703 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:22,705 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:22,706 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:22,707 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:51:22,728 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:22,729 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:22,731 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:22,732 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:22,733 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:51:22,738 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:51:22,771 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:51:22,789 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:51:22,802 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:51:22,815 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:51:22,839 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:51:22,840 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 2 variables, input treesize:31, output treesize:38 [2019-01-31 14:51:22,851 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:51:22,852 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_307|, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store (store |v_#memory_int_307| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:51:22,852 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:51:22,917 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:22,918 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:22,919 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:22,920 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:22,922 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:22,923 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:22,925 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:22,926 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:22,928 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:22,929 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:22,931 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:22,932 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 72 [2019-01-31 14:51:22,936 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:51:22,984 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:51:22,984 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:48, output treesize:38 [2019-01-31 14:51:32,999 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:51:32,999 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_308|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_308| ULTIMATE.start_main_p5))) (and (= 0 (select |v_#memory_int_308| ULTIMATE.start_main_p2)) (= |#memory_int| (store |v_#memory_int_308| ULTIMATE.start_main_p5 (+ .cse0 1))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_308| ULTIMATE.start_main_p1)) (= .cse0 0) (= 0 (select |v_#memory_int_308| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= 0 (select |v_#memory_int_308| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:51:32,999 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:51:33,088 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,090 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,091 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,093 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,094 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,095 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,097 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,098 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,099 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,100 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,102 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,103 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,104 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,105 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 86 [2019-01-31 14:51:33,110 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:51:33,166 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:51:33,166 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:48, output treesize:38 [2019-01-31 14:51:33,202 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:51:33,203 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_309|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_309| ULTIMATE.start_main_p2))) (and (= 0 (select |v_#memory_int_309| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_309| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_309| ULTIMATE.start_main_p5) 1) (= 0 .cse0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (store |v_#memory_int_309| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= 0 (select |v_#memory_int_309| ULTIMATE.start_main_p3)))) [2019-01-31 14:51:33,203 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:51:33,279 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,281 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,282 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,284 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,285 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,286 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,288 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,289 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,291 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,292 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,294 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,295 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,296 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,297 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,298 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:51:33,299 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 98 [2019-01-31 14:51:33,304 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:51:33,366 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:51:33,367 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:50, output treesize:40 [2019-01-31 14:51:33,431 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:51:33,431 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_310|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_310| ULTIMATE.start_main_p3))) (and (= |#memory_int| (store |v_#memory_int_310| ULTIMATE.start_main_p3 (+ .cse0 1))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_310| ULTIMATE.start_main_p1)) (= (select |v_#memory_int_310| ULTIMATE.start_main_p4) 0) (= (+ (select |v_#memory_int_310| ULTIMATE.start_main_p2) 1) 0) (= 0 .cse0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_310| ULTIMATE.start_main_p5) 1))) [2019-01-31 14:51:33,431 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-31 14:51:33,535 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,536 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,538 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,539 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,541 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,542 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,544 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,545 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,547 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,548 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,550 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,551 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,552 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,554 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:33,554 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:51:33,555 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 98 [2019-01-31 14:51:33,560 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:51:33,620 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:51:33,620 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:50, output treesize:40 [2019-01-31 14:51:33,642 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:51:33,643 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_311|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_311| ULTIMATE.start_main_p1))) (and (= 1 (select |v_#memory_int_311| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_311| ULTIMATE.start_main_p4)) (= 0 (+ (select |v_#memory_int_311| ULTIMATE.start_main_p2) 1)) (= |#memory_int| (store |v_#memory_int_311| ULTIMATE.start_main_p1 (+ .cse0 1))) (= 0 .cse0) (= (select |v_#memory_int_311| ULTIMATE.start_main_p5) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:51:33,643 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-31 14:51:33,701 INFO L273 TraceCheckUtils]: 0: Hoare triple {21133#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {21143#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:51:33,704 INFO L273 TraceCheckUtils]: 1: Hoare triple {21143#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {21147#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:51:33,707 INFO L273 TraceCheckUtils]: 2: Hoare triple {21147#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {21151#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-31 14:51:33,711 INFO L273 TraceCheckUtils]: 3: Hoare triple {21151#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {21155#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-31 14:51:33,721 INFO L273 TraceCheckUtils]: 4: Hoare triple {21155#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {21159#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-31 14:51:33,722 INFO L273 TraceCheckUtils]: 5: Hoare triple {21159#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume !(#memory_int[main_p1] >= 0); {21134#false} is VALID [2019-01-31 14:51:33,722 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:51:33,723 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:51:33,803 INFO L273 TraceCheckUtils]: 5: Hoare triple {21139#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {21134#false} is VALID [2019-01-31 14:51:33,804 INFO L273 TraceCheckUtils]: 4: Hoare triple {21166#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {21139#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:51:33,806 INFO L273 TraceCheckUtils]: 3: Hoare triple {21170#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {21166#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} is VALID [2019-01-31 14:51:33,807 INFO L273 TraceCheckUtils]: 2: Hoare triple {21174#(<= 0 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {21170#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1))} is VALID [2019-01-31 14:51:33,810 INFO L273 TraceCheckUtils]: 1: Hoare triple {21178#(<= 0 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {21174#(<= 0 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1))} is VALID [2019-01-31 14:51:33,812 INFO L273 TraceCheckUtils]: 0: Hoare triple {21133#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {21178#(<= 0 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1))} is VALID [2019-01-31 14:51:33,813 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 6 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:51:33,834 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:51:33,834 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5, 5] total 14 [2019-01-31 14:51:33,834 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:51:33,834 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-31 14:51:33,834 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:51:33,834 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-01-31 14:51:33,864 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:51:33,864 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-01-31 14:51:33,864 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-01-31 14:51:33,864 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=97, Invalid=143, Unknown=0, NotChecked=0, Total=240 [2019-01-31 14:51:33,865 INFO L87 Difference]: Start difference. First operand 91 states and 445 transitions. Second operand 12 states. [2019-01-31 14:51:38,421 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:51:38,421 INFO L93 Difference]: Finished difference Result 149 states and 594 transitions. [2019-01-31 14:51:38,421 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-31 14:51:38,421 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-31 14:51:38,421 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:51:38,421 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-31 14:51:38,422 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 88 transitions. [2019-01-31 14:51:38,422 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-31 14:51:38,422 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 88 transitions. [2019-01-31 14:51:38,422 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 88 transitions. [2019-01-31 14:51:38,689 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 88 edges. 88 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:51:38,693 INFO L225 Difference]: With dead ends: 149 [2019-01-31 14:51:38,693 INFO L226 Difference]: Without dead ends: 148 [2019-01-31 14:51:38,693 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 1 SyntacticMatches, 0 SemanticMatches, 17 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 86 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=133, Invalid=209, Unknown=0, NotChecked=0, Total=342 [2019-01-31 14:51:38,694 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 148 states. [2019-01-31 14:51:41,161 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 148 to 98. [2019-01-31 14:51:41,161 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:51:41,161 INFO L82 GeneralOperation]: Start isEquivalent. First operand 148 states. Second operand 98 states. [2019-01-31 14:51:41,162 INFO L74 IsIncluded]: Start isIncluded. First operand 148 states. Second operand 98 states. [2019-01-31 14:51:41,162 INFO L87 Difference]: Start difference. First operand 148 states. Second operand 98 states. [2019-01-31 14:51:41,167 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:51:41,167 INFO L93 Difference]: Finished difference Result 148 states and 592 transitions. [2019-01-31 14:51:41,167 INFO L276 IsEmpty]: Start isEmpty. Operand 148 states and 592 transitions. [2019-01-31 14:51:41,167 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:51:41,167 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:51:41,167 INFO L74 IsIncluded]: Start isIncluded. First operand 98 states. Second operand 148 states. [2019-01-31 14:51:41,167 INFO L87 Difference]: Start difference. First operand 98 states. Second operand 148 states. [2019-01-31 14:51:41,170 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:51:41,171 INFO L93 Difference]: Finished difference Result 148 states and 592 transitions. [2019-01-31 14:51:41,171 INFO L276 IsEmpty]: Start isEmpty. Operand 148 states and 592 transitions. [2019-01-31 14:51:41,171 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:51:41,171 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:51:41,171 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:51:41,171 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:51:41,171 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 98 states. [2019-01-31 14:51:41,173 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 98 states to 98 states and 487 transitions. [2019-01-31 14:51:41,173 INFO L78 Accepts]: Start accepts. Automaton has 98 states and 487 transitions. Word has length 6 [2019-01-31 14:51:41,173 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:51:41,173 INFO L480 AbstractCegarLoop]: Abstraction has 98 states and 487 transitions. [2019-01-31 14:51:41,173 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-01-31 14:51:41,174 INFO L276 IsEmpty]: Start isEmpty. Operand 98 states and 487 transitions. [2019-01-31 14:51:41,174 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:51:41,174 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:51:41,174 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:51:41,174 INFO L423 AbstractCegarLoop]: === Iteration 55 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:51:41,174 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:51:41,174 INFO L82 PathProgramCache]: Analyzing trace with hash 906286234, now seen corresponding path program 1 times [2019-01-31 14:51:41,174 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:51:41,175 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:51:41,175 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:51:41,175 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:51:41,175 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:51:41,177 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:51:41,312 INFO L273 TraceCheckUtils]: 0: Hoare triple {21898#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {21900#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:51:41,332 INFO L273 TraceCheckUtils]: 1: Hoare triple {21900#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {21901#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-31 14:51:41,345 INFO L273 TraceCheckUtils]: 2: Hoare triple {21901#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {21902#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-31 14:51:41,359 INFO L273 TraceCheckUtils]: 3: Hoare triple {21902#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {21903#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-01-31 14:51:41,372 INFO L273 TraceCheckUtils]: 4: Hoare triple {21903#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume #memory_int[main_p1] >= 0; {21903#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-01-31 14:51:41,380 INFO L273 TraceCheckUtils]: 5: Hoare triple {21903#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume !(#memory_int[main_p2] <= 0); {21899#false} is VALID [2019-01-31 14:51:41,380 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:51:41,380 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:51:41,380 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:51:41,380 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-31 14:51:41,380 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [20], [24], [25] [2019-01-31 14:51:41,382 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:51:41,382 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:51:41,394 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:51:41,394 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 68 root evaluator evaluations with a maximum evaluation depth of 3. Performed 68 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-31 14:51:41,394 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:51:41,394 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:51:41,394 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:51:41,394 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 53 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 53 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:51:41,406 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:51:41,407 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:51:41,416 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:51:41,419 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:51:41,419 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:51:41,437 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 18 treesize of output 21 [2019-01-31 14:51:41,443 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 23 [2019-01-31 14:51:41,455 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:41,456 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 23 treesize of output 29 [2019-01-31 14:51:41,470 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:41,472 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:41,472 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 39 [2019-01-31 14:51:41,488 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:41,494 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:41,495 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:41,496 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 50 [2019-01-31 14:51:41,500 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:51:41,520 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:51:41,534 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:51:41,545 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:51:41,556 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:51:41,577 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:51:41,577 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 3 variables, input treesize:28, output treesize:35 [2019-01-31 14:51:41,585 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:51:41,585 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_316|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= |#memory_int| (store (store (store (store (store |v_#memory_int_316| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0))) [2019-01-31 14:51:41,585 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:51:41,648 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:41,649 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:41,650 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:41,651 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:41,653 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:41,654 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:41,655 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:41,656 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-31 14:51:41,659 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:51:41,691 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:51:41,691 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-31 14:51:41,703 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:51:41,703 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_317|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_317| ULTIMATE.start_main_p5))) (and (= 0 .cse0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_317| ULTIMATE.start_main_p2)) (= (select |v_#memory_int_317| ULTIMATE.start_main_p3) 0) (= 0 (select |v_#memory_int_317| ULTIMATE.start_main_p4)) (= (store |v_#memory_int_317| ULTIMATE.start_main_p5 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-31 14:51:41,704 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:51:41,753 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:41,755 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:41,756 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:41,757 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:41,758 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:41,760 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:41,761 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:41,762 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:41,763 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:41,764 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 65 [2019-01-31 14:51:41,767 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:51:41,802 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:51:41,802 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-31 14:51:41,813 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:51:41,813 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_318|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_318| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_318| ULTIMATE.start_main_p3)) (= 0 .cse0) (= 1 (select |v_#memory_int_318| ULTIMATE.start_main_p5)) (= 0 (select |v_#memory_int_318| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= |#memory_int| (store |v_#memory_int_318| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-31 14:51:41,814 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:51:41,872 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:41,873 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:41,875 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:41,876 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:41,877 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:41,878 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:41,879 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:41,880 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:41,881 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:41,882 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:41,883 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:51:41,883 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 77 [2019-01-31 14:51:41,887 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:51:41,925 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:51:41,925 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-31 14:51:41,961 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:51:41,961 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_319|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_319| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_319| ULTIMATE.start_main_p4) 0) (= 0 .cse0) (= (store |v_#memory_int_319| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= 0 (+ (select |v_#memory_int_319| ULTIMATE.start_main_p2) 1)) (= (select |v_#memory_int_319| ULTIMATE.start_main_p5) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-31 14:51:41,961 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-31 14:51:42,012 INFO L273 TraceCheckUtils]: 0: Hoare triple {21898#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {21907#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:51:42,014 INFO L273 TraceCheckUtils]: 1: Hoare triple {21907#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {21911#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:51:42,016 INFO L273 TraceCheckUtils]: 2: Hoare triple {21911#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {21915#(and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:51:42,019 INFO L273 TraceCheckUtils]: 3: Hoare triple {21915#(and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {21919#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-31 14:51:42,020 INFO L273 TraceCheckUtils]: 4: Hoare triple {21919#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume #memory_int[main_p1] >= 0; {21919#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-31 14:51:42,021 INFO L273 TraceCheckUtils]: 5: Hoare triple {21919#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume !(#memory_int[main_p2] <= 0); {21899#false} is VALID [2019-01-31 14:51:42,021 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:51:42,022 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:51:42,083 INFO L273 TraceCheckUtils]: 5: Hoare triple {21926#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {21899#false} is VALID [2019-01-31 14:51:42,101 INFO L273 TraceCheckUtils]: 4: Hoare triple {21926#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {21926#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:51:42,114 INFO L273 TraceCheckUtils]: 3: Hoare triple {21933#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {21926#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:51:42,117 INFO L273 TraceCheckUtils]: 2: Hoare triple {21937#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {21933#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:51:42,118 INFO L273 TraceCheckUtils]: 1: Hoare triple {21941#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {21937#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:51:42,120 INFO L273 TraceCheckUtils]: 0: Hoare triple {21898#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {21941#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:51:42,120 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 3 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:51:42,138 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:51:42,139 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-31 14:51:42,139 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:51:42,139 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-31 14:51:42,139 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:51:42,139 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-31 14:51:42,158 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:51:42,158 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-31 14:51:42,158 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-31 14:51:42,158 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=70, Invalid=112, Unknown=0, NotChecked=0, Total=182 [2019-01-31 14:51:42,159 INFO L87 Difference]: Start difference. First operand 98 states and 487 transitions. Second operand 10 states. [2019-01-31 14:51:46,258 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:51:46,258 INFO L93 Difference]: Finished difference Result 139 states and 554 transitions. [2019-01-31 14:51:46,258 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-31 14:51:46,258 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-31 14:51:46,259 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:51:46,259 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:51:46,259 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 78 transitions. [2019-01-31 14:51:46,259 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:51:46,260 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 78 transitions. [2019-01-31 14:51:46,260 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 78 transitions. [2019-01-31 14:51:46,373 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 78 edges. 78 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:51:46,376 INFO L225 Difference]: With dead ends: 139 [2019-01-31 14:51:46,376 INFO L226 Difference]: Without dead ends: 138 [2019-01-31 14:51:46,376 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 16 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 59 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=88, Invalid=152, Unknown=0, NotChecked=0, Total=240 [2019-01-31 14:51:46,377 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 138 states. [2019-01-31 14:51:49,027 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 138 to 101. [2019-01-31 14:51:49,027 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:51:49,027 INFO L82 GeneralOperation]: Start isEquivalent. First operand 138 states. Second operand 101 states. [2019-01-31 14:51:49,027 INFO L74 IsIncluded]: Start isIncluded. First operand 138 states. Second operand 101 states. [2019-01-31 14:51:49,027 INFO L87 Difference]: Start difference. First operand 138 states. Second operand 101 states. [2019-01-31 14:51:49,031 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:51:49,031 INFO L93 Difference]: Finished difference Result 138 states and 552 transitions. [2019-01-31 14:51:49,031 INFO L276 IsEmpty]: Start isEmpty. Operand 138 states and 552 transitions. [2019-01-31 14:51:49,032 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:51:49,032 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:51:49,032 INFO L74 IsIncluded]: Start isIncluded. First operand 101 states. Second operand 138 states. [2019-01-31 14:51:49,032 INFO L87 Difference]: Start difference. First operand 101 states. Second operand 138 states. [2019-01-31 14:51:49,036 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:51:49,036 INFO L93 Difference]: Finished difference Result 138 states and 552 transitions. [2019-01-31 14:51:49,036 INFO L276 IsEmpty]: Start isEmpty. Operand 138 states and 552 transitions. [2019-01-31 14:51:49,037 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:51:49,037 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:51:49,037 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:51:49,037 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:51:49,037 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 101 states. [2019-01-31 14:51:49,040 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 101 states to 101 states and 505 transitions. [2019-01-31 14:51:49,040 INFO L78 Accepts]: Start accepts. Automaton has 101 states and 505 transitions. Word has length 6 [2019-01-31 14:51:49,040 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:51:49,040 INFO L480 AbstractCegarLoop]: Abstraction has 101 states and 505 transitions. [2019-01-31 14:51:49,040 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-31 14:51:49,040 INFO L276 IsEmpty]: Start isEmpty. Operand 101 states and 505 transitions. [2019-01-31 14:51:49,041 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:51:49,041 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:51:49,041 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:51:49,041 INFO L423 AbstractCegarLoop]: === Iteration 56 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:51:49,041 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:51:49,041 INFO L82 PathProgramCache]: Analyzing trace with hash 906397274, now seen corresponding path program 2 times [2019-01-31 14:51:49,042 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:51:49,042 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:51:49,042 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:51:49,042 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:51:49,042 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:51:49,045 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:51:49,271 INFO L273 TraceCheckUtils]: 0: Hoare triple {22629#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {22631#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:51:49,273 INFO L273 TraceCheckUtils]: 1: Hoare triple {22631#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {22632#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:51:49,274 INFO L273 TraceCheckUtils]: 2: Hoare triple {22632#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {22633#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:51:49,275 INFO L273 TraceCheckUtils]: 3: Hoare triple {22633#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {22634#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:51:49,275 INFO L273 TraceCheckUtils]: 4: Hoare triple {22634#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {22635#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:51:49,276 INFO L273 TraceCheckUtils]: 5: Hoare triple {22635#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {22630#false} is VALID [2019-01-31 14:51:49,277 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:51:49,277 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:51:49,277 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:51:49,277 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-31 14:51:49,277 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-31 14:51:49,277 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:51:49,277 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 54 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 54 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:51:49,289 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-31 14:51:49,289 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-31 14:51:49,295 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-31 14:51:49,295 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-31 14:51:49,302 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:51:49,302 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:51:49,321 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 18 treesize of output 21 [2019-01-31 14:51:49,329 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:49,329 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 21 treesize of output 27 [2019-01-31 14:51:49,338 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:49,339 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:49,340 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:51:49,354 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:49,355 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:49,357 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:49,357 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:51:49,377 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:49,379 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:49,380 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:49,381 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:49,382 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:51:49,387 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:51:49,418 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:51:49,435 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:51:49,448 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:51:49,460 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:51:49,484 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:51:49,484 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 2 variables, input treesize:31, output treesize:38 [2019-01-31 14:51:49,491 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:51:49,491 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_323|, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store (store |v_#memory_int_323| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:51:49,491 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:51:49,554 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:49,555 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:49,557 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:49,558 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:49,559 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:49,561 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:49,562 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:49,563 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:49,565 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:49,566 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:49,567 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:49,568 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 72 [2019-01-31 14:51:49,573 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:51:49,622 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:51:49,622 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:48, output treesize:38 [2019-01-31 14:51:51,150 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:51:51,151 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_324|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_324| ULTIMATE.start_main_p5))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_324| ULTIMATE.start_main_p3)) (= (select |v_#memory_int_324| ULTIMATE.start_main_p2) 0) (= 0 (select |v_#memory_int_324| ULTIMATE.start_main_p4)) (= 0 .cse0) (= 0 (select |v_#memory_int_324| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= |#memory_int| (store |v_#memory_int_324| ULTIMATE.start_main_p5 (+ .cse0 1))))) [2019-01-31 14:51:51,151 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:51:51,226 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:51,227 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:51,228 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:51,228 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:51,230 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:51,231 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:51,232 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:51,234 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:51,235 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:51,236 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:51,237 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:51,238 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:51,239 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:51:51,240 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 80 [2019-01-31 14:51:51,245 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:51:51,295 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:51:51,296 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:48, output treesize:38 [2019-01-31 14:51:51,307 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:51:51,307 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_325|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_325| ULTIMATE.start_main_p3))) (and (= .cse0 0) (= |#memory_int| (store |v_#memory_int_325| ULTIMATE.start_main_p3 (+ .cse0 1))) (= (select |v_#memory_int_325| ULTIMATE.start_main_p5) 1) (= (select |v_#memory_int_325| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_325| ULTIMATE.start_main_p4)) (= (select |v_#memory_int_325| ULTIMATE.start_main_p1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:51:51,307 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:51:51,386 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:51,388 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:51,389 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:51,390 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:51,392 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:51,393 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:51,394 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:51,396 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:51,397 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:51,398 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:51,399 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:51,401 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:51,401 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:51:51,402 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 80 [2019-01-31 14:51:51,407 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:51:51,455 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:51:51,455 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:48, output treesize:38 [2019-01-31 14:51:51,463 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:51:51,464 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_326|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_326| ULTIMATE.start_main_p1))) (and (= |#memory_int| (store |v_#memory_int_326| ULTIMATE.start_main_p1 (+ .cse0 1))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= 0 (select |v_#memory_int_326| ULTIMATE.start_main_p2)) (= (select |v_#memory_int_326| ULTIMATE.start_main_p3) 1) (= (select |v_#memory_int_326| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_326| ULTIMATE.start_main_p5) 1))) [2019-01-31 14:51:51,464 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:51:51,537 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:51,539 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:51,540 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:51,541 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:51,543 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:51,544 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:51,545 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:51,546 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:51,548 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:51,549 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:51,550 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:51,551 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:51,553 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:51:51,553 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 86 [2019-01-31 14:51:51,558 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:51:51,613 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:51:51,613 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:48, output treesize:38 [2019-01-31 14:51:51,633 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:51:51,634 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_327|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_327| ULTIMATE.start_main_p2))) (and (= (select |v_#memory_int_327| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |v_#memory_int_327| ULTIMATE.start_main_p3)) (= 0 .cse0) (= (select |v_#memory_int_327| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_327| ULTIMATE.start_main_p5) 1) (= |#memory_int| (store |v_#memory_int_327| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:51:51,634 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:51:51,687 INFO L273 TraceCheckUtils]: 0: Hoare triple {22629#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {22639#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:51:51,689 INFO L273 TraceCheckUtils]: 1: Hoare triple {22639#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {22643#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:51:51,691 INFO L273 TraceCheckUtils]: 2: Hoare triple {22643#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {22647#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:51:51,695 INFO L273 TraceCheckUtils]: 3: Hoare triple {22647#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {22651#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:51:51,701 INFO L273 TraceCheckUtils]: 4: Hoare triple {22651#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {22655#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 1))} is VALID [2019-01-31 14:51:51,701 INFO L273 TraceCheckUtils]: 5: Hoare triple {22655#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 1))} assume !(#memory_int[main_p1] >= 0); {22630#false} is VALID [2019-01-31 14:51:51,702 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:51:51,702 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:51:51,799 INFO L273 TraceCheckUtils]: 5: Hoare triple {22659#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {22630#false} is VALID [2019-01-31 14:51:51,800 INFO L273 TraceCheckUtils]: 4: Hoare triple {22663#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {22659#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:51:51,802 INFO L273 TraceCheckUtils]: 3: Hoare triple {22667#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {22663#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:51:51,803 INFO L273 TraceCheckUtils]: 2: Hoare triple {22671#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {22667#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:51:51,805 INFO L273 TraceCheckUtils]: 1: Hoare triple {22675#(<= 0 (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {22671#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:51:51,808 INFO L273 TraceCheckUtils]: 0: Hoare triple {22629#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {22675#(<= 0 (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:51:51,808 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 9 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:51:51,828 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:51:51,828 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5, 5] total 15 [2019-01-31 14:51:51,828 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:51:51,829 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-31 14:51:51,829 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:51:51,829 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-01-31 14:51:51,855 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:51:51,855 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-01-31 14:51:51,855 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-01-31 14:51:51,855 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=104, Invalid=168, Unknown=0, NotChecked=0, Total=272 [2019-01-31 14:51:51,855 INFO L87 Difference]: Start difference. First operand 101 states and 505 transitions. Second operand 12 states. [2019-01-31 14:51:57,147 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:51:57,147 INFO L93 Difference]: Finished difference Result 164 states and 623 transitions. [2019-01-31 14:51:57,147 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-31 14:51:57,147 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-31 14:51:57,147 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:51:57,147 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-31 14:51:57,148 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 93 transitions. [2019-01-31 14:51:57,148 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-31 14:51:57,148 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 93 transitions. [2019-01-31 14:51:57,148 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 93 transitions. [2019-01-31 14:51:57,355 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 93 edges. 93 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:51:57,359 INFO L225 Difference]: With dead ends: 164 [2019-01-31 14:51:57,359 INFO L226 Difference]: Without dead ends: 163 [2019-01-31 14:51:57,359 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 18 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 99 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=136, Invalid=244, Unknown=0, NotChecked=0, Total=380 [2019-01-31 14:51:57,359 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 163 states. [2019-01-31 14:52:00,063 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 163 to 100. [2019-01-31 14:52:00,063 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:52:00,063 INFO L82 GeneralOperation]: Start isEquivalent. First operand 163 states. Second operand 100 states. [2019-01-31 14:52:00,063 INFO L74 IsIncluded]: Start isIncluded. First operand 163 states. Second operand 100 states. [2019-01-31 14:52:00,064 INFO L87 Difference]: Start difference. First operand 163 states. Second operand 100 states. [2019-01-31 14:52:00,067 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:52:00,067 INFO L93 Difference]: Finished difference Result 163 states and 621 transitions. [2019-01-31 14:52:00,067 INFO L276 IsEmpty]: Start isEmpty. Operand 163 states and 621 transitions. [2019-01-31 14:52:00,067 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:52:00,068 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:52:00,068 INFO L74 IsIncluded]: Start isIncluded. First operand 100 states. Second operand 163 states. [2019-01-31 14:52:00,068 INFO L87 Difference]: Start difference. First operand 100 states. Second operand 163 states. [2019-01-31 14:52:00,071 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:52:00,071 INFO L93 Difference]: Finished difference Result 163 states and 621 transitions. [2019-01-31 14:52:00,071 INFO L276 IsEmpty]: Start isEmpty. Operand 163 states and 621 transitions. [2019-01-31 14:52:00,072 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:52:00,072 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:52:00,072 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:52:00,072 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:52:00,072 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 100 states. [2019-01-31 14:52:00,074 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 100 states to 100 states and 499 transitions. [2019-01-31 14:52:00,074 INFO L78 Accepts]: Start accepts. Automaton has 100 states and 499 transitions. Word has length 6 [2019-01-31 14:52:00,074 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:52:00,074 INFO L480 AbstractCegarLoop]: Abstraction has 100 states and 499 transitions. [2019-01-31 14:52:00,074 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-01-31 14:52:00,074 INFO L276 IsEmpty]: Start isEmpty. Operand 100 states and 499 transitions. [2019-01-31 14:52:00,075 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:52:00,075 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:52:00,075 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:52:00,075 INFO L423 AbstractCegarLoop]: === Iteration 57 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:52:00,075 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:52:00,075 INFO L82 PathProgramCache]: Analyzing trace with hash 893366614, now seen corresponding path program 1 times [2019-01-31 14:52:00,075 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:52:00,076 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:52:00,076 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-31 14:52:00,076 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:52:00,076 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:52:00,078 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:52:00,237 INFO L273 TraceCheckUtils]: 0: Hoare triple {23447#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {23449#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:52:00,238 INFO L273 TraceCheckUtils]: 1: Hoare triple {23449#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {23449#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:52:00,239 INFO L273 TraceCheckUtils]: 2: Hoare triple {23449#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {23450#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-31 14:52:00,240 INFO L273 TraceCheckUtils]: 3: Hoare triple {23450#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p1] >= 0; {23450#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-31 14:52:00,241 INFO L273 TraceCheckUtils]: 4: Hoare triple {23450#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p2] <= 0; {23451#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-31 14:52:00,241 INFO L273 TraceCheckUtils]: 5: Hoare triple {23451#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume !(#memory_int[main_p3] >= 0); {23448#false} is VALID [2019-01-31 14:52:00,242 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-31 14:52:00,242 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:52:00,242 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:52:00,242 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-31 14:52:00,242 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [24], [26], [27] [2019-01-31 14:52:00,244 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:52:00,244 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:52:00,252 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:52:00,252 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 68 root evaluator evaluations with a maximum evaluation depth of 3. Performed 68 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-31 14:52:00,252 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:52:00,252 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:52:00,253 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:52:00,253 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 55 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 55 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:52:00,264 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:52:00,264 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:52:00,268 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:52:00,271 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:52:00,272 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:52:00,292 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 18 treesize of output 21 [2019-01-31 14:52:00,302 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:00,302 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 21 treesize of output 27 [2019-01-31 14:52:00,314 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:00,315 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:00,316 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:52:00,331 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:00,332 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:00,333 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:00,334 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:52:00,355 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:00,357 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:00,358 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:00,359 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:00,360 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:52:00,365 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:52:00,396 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:52:00,411 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:52:00,425 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:52:00,437 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:52:00,460 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:52:00,461 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 3 variables, input treesize:31, output treesize:38 [2019-01-31 14:52:00,469 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:52:00,469 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_332|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store (store |v_#memory_int_332| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:52:00,470 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:52:00,536 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:00,537 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:00,538 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:00,540 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:00,541 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:00,542 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:00,544 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:00,545 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:00,546 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:00,548 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:00,549 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:00,550 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 72 [2019-01-31 14:52:00,555 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:52:00,601 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:52:00,602 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:48, output treesize:38 [2019-01-31 14:52:00,654 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:52:00,654 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_333|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_333| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_333| ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_333| ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_333| ULTIMATE.start_main_p5)) (= |#memory_int| (store |v_#memory_int_333| ULTIMATE.start_main_p1 (+ .cse0 1))) (= 0 .cse0) (= (select |v_#memory_int_333| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-31 14:52:00,655 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:52:00,712 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:00,713 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:00,714 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:00,715 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:00,716 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:00,718 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:00,719 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:00,720 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:00,721 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:00,722 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:00,723 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:00,724 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:00,726 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:00,726 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 86 [2019-01-31 14:52:00,731 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:52:00,783 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:52:00,783 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:48, output treesize:38 [2019-01-31 14:52:00,834 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:52:00,834 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_334|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_334| ULTIMATE.start_main_p2))) (and (= 0 (select |v_#memory_int_334| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_334| ULTIMATE.start_main_p4)) (= (select |v_#memory_int_334| ULTIMATE.start_main_p1) 1) (= (select |v_#memory_int_334| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= .cse0 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (store |v_#memory_int_334| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-31 14:52:00,834 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:52:00,931 INFO L273 TraceCheckUtils]: 0: Hoare triple {23447#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {23455#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:52:00,933 INFO L273 TraceCheckUtils]: 1: Hoare triple {23455#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {23459#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:52:00,936 INFO L273 TraceCheckUtils]: 2: Hoare triple {23459#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {23463#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-31 14:52:00,937 INFO L273 TraceCheckUtils]: 3: Hoare triple {23463#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p1] >= 0; {23463#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-31 14:52:00,938 INFO L273 TraceCheckUtils]: 4: Hoare triple {23463#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p2] <= 0; {23463#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-31 14:52:00,939 INFO L273 TraceCheckUtils]: 5: Hoare triple {23463#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume !(#memory_int[main_p3] >= 0); {23448#false} is VALID [2019-01-31 14:52:00,940 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:52:00,940 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:52:00,984 INFO L273 TraceCheckUtils]: 5: Hoare triple {23473#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {23448#false} is VALID [2019-01-31 14:52:00,984 INFO L273 TraceCheckUtils]: 4: Hoare triple {23473#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {23473#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:52:00,985 INFO L273 TraceCheckUtils]: 3: Hoare triple {23473#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {23473#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:52:00,986 INFO L273 TraceCheckUtils]: 2: Hoare triple {23483#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {23473#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:52:00,987 INFO L273 TraceCheckUtils]: 1: Hoare triple {23487#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {23483#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:52:00,989 INFO L273 TraceCheckUtils]: 0: Hoare triple {23447#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {23487#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:52:00,990 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:52:01,011 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:52:01,011 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:52:01,011 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:52:01,011 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-31 14:52:01,011 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:52:01,011 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:52:01,030 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:52:01,030 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:52:01,031 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:52:01,031 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:52:01,031 INFO L87 Difference]: Start difference. First operand 100 states and 499 transitions. Second operand 8 states. [2019-01-31 14:52:04,957 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:52:04,957 INFO L93 Difference]: Finished difference Result 122 states and 529 transitions. [2019-01-31 14:52:04,957 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-31 14:52:04,957 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-31 14:52:04,957 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:52:04,957 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:52:04,957 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 54 transitions. [2019-01-31 14:52:04,958 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:52:04,958 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 54 transitions. [2019-01-31 14:52:04,958 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 54 transitions. [2019-01-31 14:52:05,037 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 54 edges. 54 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:52:05,039 INFO L225 Difference]: With dead ends: 122 [2019-01-31 14:52:05,039 INFO L226 Difference]: Without dead ends: 121 [2019-01-31 14:52:05,040 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 17 GetRequests, 4 SyntacticMatches, 2 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:52:05,040 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 121 states. [2019-01-31 14:52:08,001 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 121 to 102. [2019-01-31 14:52:08,001 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:52:08,001 INFO L82 GeneralOperation]: Start isEquivalent. First operand 121 states. Second operand 102 states. [2019-01-31 14:52:08,001 INFO L74 IsIncluded]: Start isIncluded. First operand 121 states. Second operand 102 states. [2019-01-31 14:52:08,002 INFO L87 Difference]: Start difference. First operand 121 states. Second operand 102 states. [2019-01-31 14:52:08,005 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:52:08,005 INFO L93 Difference]: Finished difference Result 121 states and 527 transitions. [2019-01-31 14:52:08,005 INFO L276 IsEmpty]: Start isEmpty. Operand 121 states and 527 transitions. [2019-01-31 14:52:08,005 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:52:08,006 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:52:08,006 INFO L74 IsIncluded]: Start isIncluded. First operand 102 states. Second operand 121 states. [2019-01-31 14:52:08,006 INFO L87 Difference]: Start difference. First operand 102 states. Second operand 121 states. [2019-01-31 14:52:08,008 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:52:08,008 INFO L93 Difference]: Finished difference Result 121 states and 527 transitions. [2019-01-31 14:52:08,009 INFO L276 IsEmpty]: Start isEmpty. Operand 121 states and 527 transitions. [2019-01-31 14:52:08,009 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:52:08,009 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:52:08,009 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:52:08,009 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:52:08,009 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 102 states. [2019-01-31 14:52:08,011 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 102 states to 102 states and 511 transitions. [2019-01-31 14:52:08,011 INFO L78 Accepts]: Start accepts. Automaton has 102 states and 511 transitions. Word has length 6 [2019-01-31 14:52:08,011 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:52:08,012 INFO L480 AbstractCegarLoop]: Abstraction has 102 states and 511 transitions. [2019-01-31 14:52:08,012 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:52:08,012 INFO L276 IsEmpty]: Start isEmpty. Operand 102 states and 511 transitions. [2019-01-31 14:52:08,012 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:52:08,012 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:52:08,012 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:52:08,012 INFO L423 AbstractCegarLoop]: === Iteration 58 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:52:08,012 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:52:08,013 INFO L82 PathProgramCache]: Analyzing trace with hash 893472260, now seen corresponding path program 1 times [2019-01-31 14:52:08,013 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:52:08,013 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:52:08,013 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:52:08,013 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:52:08,014 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:52:08,022 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:52:08,724 WARN L181 SmtUtils]: Spent 449.00 ms on a formula simplification. DAG size of input: 29 DAG size of output: 17 [2019-01-31 14:52:08,818 INFO L273 TraceCheckUtils]: 0: Hoare triple {24124#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {24126#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:52:08,819 INFO L273 TraceCheckUtils]: 1: Hoare triple {24126#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {24126#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:52:08,820 INFO L273 TraceCheckUtils]: 2: Hoare triple {24126#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {24127#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-31 14:52:08,821 INFO L273 TraceCheckUtils]: 3: Hoare triple {24127#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {24128#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (<= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-31 14:52:08,822 INFO L273 TraceCheckUtils]: 4: Hoare triple {24128#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (<= (select |#memory_int| ULTIMATE.start_main_p2) 0))} assume #memory_int[main_p1] >= 0; {24129#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:52:08,822 INFO L273 TraceCheckUtils]: 5: Hoare triple {24129#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {24125#false} is VALID [2019-01-31 14:52:08,823 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-31 14:52:08,823 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:52:08,823 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:52:08,823 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-31 14:52:08,823 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [14], [24], [25] [2019-01-31 14:52:08,824 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:52:08,824 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:52:08,832 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:52:08,832 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 68 root evaluator evaluations with a maximum evaluation depth of 3. Performed 68 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-31 14:52:08,832 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:52:08,833 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:52:08,833 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:52:08,833 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 56 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 56 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:52:08,843 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:52:08,843 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:52:08,847 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:52:08,851 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:52:08,852 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:52:08,869 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 18 treesize of output 21 [2019-01-31 14:52:08,877 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:08,877 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 21 treesize of output 27 [2019-01-31 14:52:08,889 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:08,890 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:08,891 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:52:08,906 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:08,908 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:08,909 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:08,910 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:52:08,930 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:08,931 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:08,933 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:08,934 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:08,935 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:52:08,939 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:52:08,969 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:52:08,986 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:52:08,999 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:52:09,011 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:52:09,034 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:52:09,034 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 3 variables, input treesize:31, output treesize:38 [2019-01-31 14:52:09,042 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:52:09,042 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_337|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= |#memory_int| (store (store (store (store (store |v_#memory_int_337| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:52:09,042 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:52:09,105 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:09,107 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:09,108 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:09,110 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:09,111 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:09,112 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:09,114 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:09,115 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:09,116 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:09,118 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:09,119 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:09,120 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 72 [2019-01-31 14:52:09,125 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:52:09,170 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:52:09,171 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:48, output treesize:38 [2019-01-31 14:52:09,194 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:52:09,194 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_338|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_338| ULTIMATE.start_main_p1))) (and (= 0 (select |v_#memory_int_338| ULTIMATE.start_main_p5)) (= .cse0 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_338| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_338| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_338| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= |#memory_int| (store |v_#memory_int_338| ULTIMATE.start_main_p1 (+ .cse0 1))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-31 14:52:09,194 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:52:09,261 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:09,263 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:09,264 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:09,265 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:09,266 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:09,267 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:09,269 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:09,270 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:09,271 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:09,272 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:09,273 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:09,274 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:09,275 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:52:09,275 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 80 [2019-01-31 14:52:09,288 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:52:09,340 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:52:09,340 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:48, output treesize:38 [2019-01-31 14:52:09,378 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:52:09,379 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_339|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_339| ULTIMATE.start_main_p3))) (and (= 1 (select |v_#memory_int_339| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_339| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= .cse0 0) (= (select |v_#memory_int_339| ULTIMATE.start_main_p4) 0) (= 0 (select |v_#memory_int_339| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |v_#memory_int_339| ULTIMATE.start_main_p2) 0))) [2019-01-31 14:52:09,379 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:52:09,453 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:09,455 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:09,456 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:09,458 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:09,459 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:09,460 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:09,461 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:09,463 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:09,464 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:09,465 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:09,467 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:09,468 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:09,469 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:09,470 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 86 [2019-01-31 14:52:09,475 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:52:09,532 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:52:09,532 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:48, output treesize:38 [2019-01-31 14:52:09,572 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:52:09,572 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_340|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_340| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_340| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= .cse0 0) (= (select |v_#memory_int_340| ULTIMATE.start_main_p5) 0) (= (select |v_#memory_int_340| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_340| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |v_#memory_int_340| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:52:09,573 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:52:09,654 INFO L273 TraceCheckUtils]: 0: Hoare triple {24124#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {24133#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:52:09,656 INFO L273 TraceCheckUtils]: 1: Hoare triple {24133#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {24137#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:52:09,660 INFO L273 TraceCheckUtils]: 2: Hoare triple {24137#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {24141#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:52:09,662 INFO L273 TraceCheckUtils]: 3: Hoare triple {24141#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {24145#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))} is VALID [2019-01-31 14:52:09,663 INFO L273 TraceCheckUtils]: 4: Hoare triple {24145#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))} assume #memory_int[main_p1] >= 0; {24145#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))} is VALID [2019-01-31 14:52:09,664 INFO L273 TraceCheckUtils]: 5: Hoare triple {24145#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))} assume !(#memory_int[main_p2] <= 0); {24125#false} is VALID [2019-01-31 14:52:09,664 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:52:09,664 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:52:09,713 INFO L273 TraceCheckUtils]: 5: Hoare triple {24129#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {24125#false} is VALID [2019-01-31 14:52:09,714 INFO L273 TraceCheckUtils]: 4: Hoare triple {24129#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {24129#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:52:09,715 INFO L273 TraceCheckUtils]: 3: Hoare triple {24158#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {24129#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:52:09,716 INFO L273 TraceCheckUtils]: 2: Hoare triple {24162#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {24158#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} is VALID [2019-01-31 14:52:09,717 INFO L273 TraceCheckUtils]: 1: Hoare triple {24166#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {24162#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1)} is VALID [2019-01-31 14:52:09,719 INFO L273 TraceCheckUtils]: 0: Hoare triple {24124#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {24166#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1)} is VALID [2019-01-31 14:52:09,720 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 2 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:52:09,739 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:52:09,739 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-31 14:52:09,740 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:52:09,740 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-31 14:52:09,740 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:52:09,740 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-31 14:52:09,761 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:52:09,761 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-31 14:52:09,761 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-31 14:52:09,761 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=61, Invalid=95, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:52:09,762 INFO L87 Difference]: Start difference. First operand 102 states and 511 transitions. Second operand 10 states. [2019-01-31 14:52:14,828 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:52:14,828 INFO L93 Difference]: Finished difference Result 154 states and 624 transitions. [2019-01-31 14:52:14,828 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-31 14:52:14,828 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-31 14:52:14,828 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:52:14,828 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:52:14,829 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 79 transitions. [2019-01-31 14:52:14,829 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:52:14,829 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 79 transitions. [2019-01-31 14:52:14,829 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 79 transitions. [2019-01-31 14:52:14,968 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 79 edges. 79 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:52:14,970 INFO L225 Difference]: With dead ends: 154 [2019-01-31 14:52:14,970 INFO L226 Difference]: Without dead ends: 153 [2019-01-31 14:52:14,971 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 3 SyntacticMatches, 1 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 45 ImplicationChecksByTransitivity, 1.0s TimeCoverageRelationStatistics Valid=89, Invalid=151, Unknown=0, NotChecked=0, Total=240 [2019-01-31 14:52:14,971 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 153 states. [2019-01-31 14:52:18,575 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 153 to 111. [2019-01-31 14:52:18,575 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:52:18,575 INFO L82 GeneralOperation]: Start isEquivalent. First operand 153 states. Second operand 111 states. [2019-01-31 14:52:18,575 INFO L74 IsIncluded]: Start isIncluded. First operand 153 states. Second operand 111 states. [2019-01-31 14:52:18,576 INFO L87 Difference]: Start difference. First operand 153 states. Second operand 111 states. [2019-01-31 14:52:18,580 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:52:18,580 INFO L93 Difference]: Finished difference Result 153 states and 622 transitions. [2019-01-31 14:52:18,580 INFO L276 IsEmpty]: Start isEmpty. Operand 153 states and 622 transitions. [2019-01-31 14:52:18,580 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:52:18,580 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:52:18,580 INFO L74 IsIncluded]: Start isIncluded. First operand 111 states. Second operand 153 states. [2019-01-31 14:52:18,581 INFO L87 Difference]: Start difference. First operand 111 states. Second operand 153 states. [2019-01-31 14:52:18,584 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:52:18,584 INFO L93 Difference]: Finished difference Result 153 states and 622 transitions. [2019-01-31 14:52:18,584 INFO L276 IsEmpty]: Start isEmpty. Operand 153 states and 622 transitions. [2019-01-31 14:52:18,584 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:52:18,584 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:52:18,584 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:52:18,584 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:52:18,584 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 111 states. [2019-01-31 14:52:18,587 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 111 states to 111 states and 566 transitions. [2019-01-31 14:52:18,587 INFO L78 Accepts]: Start accepts. Automaton has 111 states and 566 transitions. Word has length 6 [2019-01-31 14:52:18,587 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:52:18,587 INFO L480 AbstractCegarLoop]: Abstraction has 111 states and 566 transitions. [2019-01-31 14:52:18,587 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-31 14:52:18,587 INFO L276 IsEmpty]: Start isEmpty. Operand 111 states and 566 transitions. [2019-01-31 14:52:18,587 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:52:18,587 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:52:18,587 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:52:18,587 INFO L423 AbstractCegarLoop]: === Iteration 59 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:52:18,588 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:52:18,588 INFO L82 PathProgramCache]: Analyzing trace with hash 897358608, now seen corresponding path program 1 times [2019-01-31 14:52:18,588 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:52:18,588 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:52:18,588 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:52:18,588 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:52:18,588 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:52:18,591 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:52:18,831 INFO L273 TraceCheckUtils]: 0: Hoare triple {24932#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {24934#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:52:18,833 INFO L273 TraceCheckUtils]: 1: Hoare triple {24934#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {24934#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:52:18,834 INFO L273 TraceCheckUtils]: 2: Hoare triple {24934#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {24935#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-31 14:52:18,834 INFO L273 TraceCheckUtils]: 3: Hoare triple {24935#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p1] >= 0; {24935#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-31 14:52:18,835 INFO L273 TraceCheckUtils]: 4: Hoare triple {24935#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p2] <= 0; {24936#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-31 14:52:18,835 INFO L273 TraceCheckUtils]: 5: Hoare triple {24936#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume !(#memory_int[main_p3] >= 0); {24933#false} is VALID [2019-01-31 14:52:18,836 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-31 14:52:18,836 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:52:18,836 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:52:18,836 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-31 14:52:18,837 INFO L207 CegarAbsIntRunner]: [0], [10], [20], [24], [26], [27] [2019-01-31 14:52:18,837 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:52:18,837 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:52:18,867 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:52:18,867 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 68 root evaluator evaluations with a maximum evaluation depth of 3. Performed 68 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-31 14:52:18,868 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:52:18,868 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:52:18,868 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:52:18,868 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 57 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 57 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:52:18,878 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:52:18,878 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:52:18,882 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:52:18,885 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:52:18,885 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:52:18,902 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 18 treesize of output 21 [2019-01-31 14:52:18,911 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 23 [2019-01-31 14:52:18,922 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:18,923 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 23 treesize of output 29 [2019-01-31 14:52:18,939 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:18,940 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:18,941 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 39 [2019-01-31 14:52:18,958 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:18,963 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:18,964 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:18,965 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 50 [2019-01-31 14:52:18,970 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:52:18,991 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:52:19,005 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:52:19,017 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:52:19,028 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:52:19,050 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:52:19,051 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 3 variables, input treesize:28, output treesize:35 [2019-01-31 14:52:19,059 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:52:19,060 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_344|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (= (store (store (store (store (store |v_#memory_int_344| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:52:19,060 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:52:19,132 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:19,133 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:19,134 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:19,136 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:19,137 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:19,138 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:19,139 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:19,140 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-31 14:52:19,145 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:52:19,176 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:52:19,177 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-31 14:52:19,743 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:52:19,743 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_345|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_345| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_345| ULTIMATE.start_main_p3)) (= (select |v_#memory_int_345| ULTIMATE.start_main_p5) 0) (= (select |v_#memory_int_345| ULTIMATE.start_main_p4) 0) (= |#memory_int| (store |v_#memory_int_345| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= 0 .cse0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-31 14:52:19,743 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:52:19,811 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:19,813 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:19,814 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:19,815 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:19,816 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:19,818 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:19,819 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:19,820 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:19,821 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:19,822 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 67 [2019-01-31 14:52:19,826 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:52:19,864 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:52:19,865 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-31 14:52:19,940 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:52:19,941 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_346|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_346| ULTIMATE.start_main_p5))) (and (= |#memory_int| (store |v_#memory_int_346| ULTIMATE.start_main_p5 (+ .cse0 1))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_346| ULTIMATE.start_main_p4) 0) (= 0 (+ (select |v_#memory_int_346| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= 0 (select |v_#memory_int_346| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= .cse0 0))) [2019-01-31 14:52:19,941 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:52:20,034 INFO L273 TraceCheckUtils]: 0: Hoare triple {24932#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {24940#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:52:20,036 INFO L273 TraceCheckUtils]: 1: Hoare triple {24940#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {24944#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-31 14:52:20,038 INFO L273 TraceCheckUtils]: 2: Hoare triple {24944#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {24948#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-31 14:52:20,039 INFO L273 TraceCheckUtils]: 3: Hoare triple {24948#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p1] >= 0; {24948#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-31 14:52:20,040 INFO L273 TraceCheckUtils]: 4: Hoare triple {24948#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p2] <= 0; {24948#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-31 14:52:20,041 INFO L273 TraceCheckUtils]: 5: Hoare triple {24948#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume !(#memory_int[main_p3] >= 0); {24933#false} is VALID [2019-01-31 14:52:20,042 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:52:20,042 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:52:20,092 INFO L273 TraceCheckUtils]: 5: Hoare triple {24958#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {24933#false} is VALID [2019-01-31 14:52:20,093 INFO L273 TraceCheckUtils]: 4: Hoare triple {24958#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {24958#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:52:20,093 INFO L273 TraceCheckUtils]: 3: Hoare triple {24958#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {24958#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:52:20,094 INFO L273 TraceCheckUtils]: 2: Hoare triple {24968#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {24958#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:52:20,096 INFO L273 TraceCheckUtils]: 1: Hoare triple {24972#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {24968#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:52:20,098 INFO L273 TraceCheckUtils]: 0: Hoare triple {24932#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {24972#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:52:20,098 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:52:20,118 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:52:20,119 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:52:20,119 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:52:20,119 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-31 14:52:20,119 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:52:20,119 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:52:20,140 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:52:20,140 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:52:20,140 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:52:20,140 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:52:20,141 INFO L87 Difference]: Start difference. First operand 111 states and 566 transitions. Second operand 8 states. [2019-01-31 14:52:24,272 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:52:24,272 INFO L93 Difference]: Finished difference Result 130 states and 583 transitions. [2019-01-31 14:52:24,272 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-31 14:52:24,272 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-31 14:52:24,272 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:52:24,272 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:52:24,273 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 53 transitions. [2019-01-31 14:52:24,273 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:52:24,273 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 53 transitions. [2019-01-31 14:52:24,273 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 53 transitions. [2019-01-31 14:52:24,349 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 53 edges. 53 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:52:24,352 INFO L225 Difference]: With dead ends: 130 [2019-01-31 14:52:24,352 INFO L226 Difference]: Without dead ends: 129 [2019-01-31 14:52:24,352 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 16 GetRequests, 4 SyntacticMatches, 1 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 29 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:52:24,353 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 129 states. [2019-01-31 14:52:27,820 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 129 to 111. [2019-01-31 14:52:27,820 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:52:27,820 INFO L82 GeneralOperation]: Start isEquivalent. First operand 129 states. Second operand 111 states. [2019-01-31 14:52:27,820 INFO L74 IsIncluded]: Start isIncluded. First operand 129 states. Second operand 111 states. [2019-01-31 14:52:27,820 INFO L87 Difference]: Start difference. First operand 129 states. Second operand 111 states. [2019-01-31 14:52:27,824 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:52:27,824 INFO L93 Difference]: Finished difference Result 129 states and 581 transitions. [2019-01-31 14:52:27,825 INFO L276 IsEmpty]: Start isEmpty. Operand 129 states and 581 transitions. [2019-01-31 14:52:27,825 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:52:27,825 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:52:27,825 INFO L74 IsIncluded]: Start isIncluded. First operand 111 states. Second operand 129 states. [2019-01-31 14:52:27,825 INFO L87 Difference]: Start difference. First operand 111 states. Second operand 129 states. [2019-01-31 14:52:27,828 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:52:27,829 INFO L93 Difference]: Finished difference Result 129 states and 581 transitions. [2019-01-31 14:52:27,829 INFO L276 IsEmpty]: Start isEmpty. Operand 129 states and 581 transitions. [2019-01-31 14:52:27,829 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:52:27,829 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:52:27,829 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:52:27,829 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:52:27,829 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 111 states. [2019-01-31 14:52:27,831 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 111 states to 111 states and 566 transitions. [2019-01-31 14:52:27,831 INFO L78 Accepts]: Start accepts. Automaton has 111 states and 566 transitions. Word has length 6 [2019-01-31 14:52:27,832 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:52:27,832 INFO L480 AbstractCegarLoop]: Abstraction has 111 states and 566 transitions. [2019-01-31 14:52:27,832 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:52:27,832 INFO L276 IsEmpty]: Start isEmpty. Operand 111 states and 566 transitions. [2019-01-31 14:52:27,832 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:52:27,832 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:52:27,832 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:52:27,832 INFO L423 AbstractCegarLoop]: === Iteration 60 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:52:27,832 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:52:27,832 INFO L82 PathProgramCache]: Analyzing trace with hash 896931860, now seen corresponding path program 2 times [2019-01-31 14:52:27,832 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:52:27,833 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:52:27,833 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:52:27,833 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:52:27,833 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:52:27,835 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:52:28,107 INFO L273 TraceCheckUtils]: 0: Hoare triple {25660#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {25662#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-31 14:52:28,108 INFO L273 TraceCheckUtils]: 1: Hoare triple {25662#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {25663#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-31 14:52:28,109 INFO L273 TraceCheckUtils]: 2: Hoare triple {25663#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {25663#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-31 14:52:28,110 INFO L273 TraceCheckUtils]: 3: Hoare triple {25663#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {25664#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-01-31 14:52:28,111 INFO L273 TraceCheckUtils]: 4: Hoare triple {25664#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume #memory_int[main_p1] >= 0; {25664#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-01-31 14:52:28,111 INFO L273 TraceCheckUtils]: 5: Hoare triple {25664#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume !(#memory_int[main_p2] <= 0); {25661#false} is VALID [2019-01-31 14:52:28,112 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-31 14:52:28,112 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:52:28,112 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:52:28,112 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-31 14:52:28,112 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-31 14:52:28,112 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:52:28,113 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 58 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 58 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:52:28,122 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-31 14:52:28,122 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-31 14:52:28,129 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-31 14:52:28,129 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-31 14:52:28,131 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:52:28,132 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:52:28,155 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 18 treesize of output 21 [2019-01-31 14:52:28,164 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,165 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 21 treesize of output 27 [2019-01-31 14:52:28,181 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,183 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,183 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:52:28,200 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,201 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,202 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,202 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:52:28,227 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,229 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,230 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,242 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,243 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:52:28,247 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:52:28,278 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:52:28,294 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:52:28,308 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:52:28,320 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:52:28,344 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:52:28,344 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 3 variables, input treesize:31, output treesize:38 [2019-01-31 14:52:28,352 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:52:28,352 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_349|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= |#memory_int| (store (store (store (store (store |v_#memory_int_349| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0))) [2019-01-31 14:52:28,352 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:52:28,418 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,419 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,421 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,422 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,423 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,424 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,425 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,427 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,428 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,429 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,430 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,431 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 72 [2019-01-31 14:52:28,447 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:52:28,493 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:52:28,493 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:48, output treesize:38 [2019-01-31 14:52:28,503 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:52:28,503 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_350|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_350| ULTIMATE.start_main_p2))) (and (= .cse0 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_350| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_350| ULTIMATE.start_main_p4) 0) (= (store |v_#memory_int_350| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |v_#memory_int_350| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_350| ULTIMATE.start_main_p5) 0))) [2019-01-31 14:52:28,503 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:52:28,612 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,614 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,615 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,616 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,617 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,618 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,620 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,621 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,622 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,623 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,624 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,625 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,626 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,627 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 88 [2019-01-31 14:52:28,634 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:52:28,684 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:52:28,684 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:50, output treesize:40 [2019-01-31 14:52:28,700 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:52:28,700 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_351|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_351| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_351| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= (select |v_#memory_int_351| ULTIMATE.start_main_p5) 0) (= (select |v_#memory_int_351| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (+ (select |v_#memory_int_351| ULTIMATE.start_main_p2) 1) 0) (= 0 .cse0) (= 0 (select |v_#memory_int_351| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-31 14:52:28,700 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-31 14:52:28,762 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,763 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,764 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,766 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,767 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,768 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,770 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,771 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,772 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,774 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,775 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,776 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,777 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,778 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:28,779 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:52:28,780 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 98 [2019-01-31 14:52:28,785 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:52:28,841 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:52:28,841 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:50, output treesize:40 [2019-01-31 14:52:28,885 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:52:28,885 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_352|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_352| ULTIMATE.start_main_p3))) (and (= (select |v_#memory_int_352| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_352| ULTIMATE.start_main_p2) 1)) (= 0 .cse0) (= 1 (select |v_#memory_int_352| ULTIMATE.start_main_p1)) (= |#memory_int| (store |v_#memory_int_352| ULTIMATE.start_main_p3 (+ .cse0 1))) (= (select |v_#memory_int_352| ULTIMATE.start_main_p5) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-31 14:52:28,885 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-31 14:52:28,958 INFO L273 TraceCheckUtils]: 0: Hoare triple {25660#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {25668#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:52:28,961 INFO L273 TraceCheckUtils]: 1: Hoare triple {25668#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {25672#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:52:28,964 INFO L273 TraceCheckUtils]: 2: Hoare triple {25672#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {25676#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-31 14:52:28,968 INFO L273 TraceCheckUtils]: 3: Hoare triple {25676#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {25680#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-31 14:52:28,969 INFO L273 TraceCheckUtils]: 4: Hoare triple {25680#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume #memory_int[main_p1] >= 0; {25680#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-31 14:52:28,970 INFO L273 TraceCheckUtils]: 5: Hoare triple {25680#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume !(#memory_int[main_p2] <= 0); {25661#false} is VALID [2019-01-31 14:52:28,970 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:52:28,970 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:52:29,040 INFO L273 TraceCheckUtils]: 5: Hoare triple {25687#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {25661#false} is VALID [2019-01-31 14:52:29,040 INFO L273 TraceCheckUtils]: 4: Hoare triple {25687#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {25687#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:52:29,041 INFO L273 TraceCheckUtils]: 3: Hoare triple {25694#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {25687#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:52:29,043 INFO L273 TraceCheckUtils]: 2: Hoare triple {25698#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {25694#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:52:29,044 INFO L273 TraceCheckUtils]: 1: Hoare triple {25702#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {25698#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:52:29,047 INFO L273 TraceCheckUtils]: 0: Hoare triple {25660#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {25702#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:52:29,047 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 2 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:52:29,066 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:52:29,066 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 4, 4] total 11 [2019-01-31 14:52:29,066 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:52:29,066 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 6 [2019-01-31 14:52:29,067 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:52:29,067 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states. [2019-01-31 14:52:29,092 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:52:29,092 INFO L459 AbstractCegarLoop]: Interpolant automaton has 9 states [2019-01-31 14:52:29,092 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2019-01-31 14:52:29,092 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=60, Invalid=96, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:52:29,092 INFO L87 Difference]: Start difference. First operand 111 states and 566 transitions. Second operand 9 states. [2019-01-31 14:52:34,468 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:52:34,469 INFO L93 Difference]: Finished difference Result 160 states and 682 transitions. [2019-01-31 14:52:34,469 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-31 14:52:34,469 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 6 [2019-01-31 14:52:34,469 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:52:34,469 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2019-01-31 14:52:34,469 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 78 transitions. [2019-01-31 14:52:34,469 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2019-01-31 14:52:34,470 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 78 transitions. [2019-01-31 14:52:34,470 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 78 transitions. [2019-01-31 14:52:34,598 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 78 edges. 78 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:52:34,601 INFO L225 Difference]: With dead ends: 160 [2019-01-31 14:52:34,601 INFO L226 Difference]: Without dead ends: 159 [2019-01-31 14:52:34,601 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 17 GetRequests, 3 SyntacticMatches, 1 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 48 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=78, Invalid=132, Unknown=0, NotChecked=0, Total=210 [2019-01-31 14:52:34,602 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 159 states. [2019-01-31 14:52:38,858 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 159 to 117. [2019-01-31 14:52:38,858 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:52:38,858 INFO L82 GeneralOperation]: Start isEquivalent. First operand 159 states. Second operand 117 states. [2019-01-31 14:52:38,858 INFO L74 IsIncluded]: Start isIncluded. First operand 159 states. Second operand 117 states. [2019-01-31 14:52:38,859 INFO L87 Difference]: Start difference. First operand 159 states. Second operand 117 states. [2019-01-31 14:52:38,863 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:52:38,864 INFO L93 Difference]: Finished difference Result 159 states and 680 transitions. [2019-01-31 14:52:38,864 INFO L276 IsEmpty]: Start isEmpty. Operand 159 states and 680 transitions. [2019-01-31 14:52:38,864 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:52:38,864 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:52:38,864 INFO L74 IsIncluded]: Start isIncluded. First operand 117 states. Second operand 159 states. [2019-01-31 14:52:38,864 INFO L87 Difference]: Start difference. First operand 117 states. Second operand 159 states. [2019-01-31 14:52:38,867 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:52:38,868 INFO L93 Difference]: Finished difference Result 159 states and 680 transitions. [2019-01-31 14:52:38,868 INFO L276 IsEmpty]: Start isEmpty. Operand 159 states and 680 transitions. [2019-01-31 14:52:38,868 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:52:38,868 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:52:38,868 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:52:38,868 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:52:38,868 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 117 states. [2019-01-31 14:52:38,871 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 117 states to 117 states and 603 transitions. [2019-01-31 14:52:38,871 INFO L78 Accepts]: Start accepts. Automaton has 117 states and 603 transitions. Word has length 6 [2019-01-31 14:52:38,871 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:52:38,871 INFO L480 AbstractCegarLoop]: Abstraction has 117 states and 603 transitions. [2019-01-31 14:52:38,871 INFO L481 AbstractCegarLoop]: Interpolant automaton has 9 states. [2019-01-31 14:52:38,871 INFO L276 IsEmpty]: Start isEmpty. Operand 117 states and 603 transitions. [2019-01-31 14:52:38,871 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:52:38,871 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:52:38,871 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:52:38,871 INFO L423 AbstractCegarLoop]: === Iteration 61 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:52:38,872 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:52:38,872 INFO L82 PathProgramCache]: Analyzing trace with hash 897479758, now seen corresponding path program 1 times [2019-01-31 14:52:38,872 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:52:38,872 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:52:38,872 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-31 14:52:38,872 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:52:38,873 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:52:38,875 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:52:39,050 INFO L273 TraceCheckUtils]: 0: Hoare triple {26506#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {26508#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:52:39,051 INFO L273 TraceCheckUtils]: 1: Hoare triple {26508#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {26509#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-31 14:52:39,051 INFO L273 TraceCheckUtils]: 2: Hoare triple {26509#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {26509#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-31 14:52:39,052 INFO L273 TraceCheckUtils]: 3: Hoare triple {26509#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {26509#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-31 14:52:39,052 INFO L273 TraceCheckUtils]: 4: Hoare triple {26509#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {26509#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-31 14:52:39,053 INFO L273 TraceCheckUtils]: 5: Hoare triple {26509#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {26507#false} is VALID [2019-01-31 14:52:39,054 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:52:39,054 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:52:39,054 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:52:39,054 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-31 14:52:39,054 INFO L207 CegarAbsIntRunner]: [0], [10], [24], [26], [28], [29] [2019-01-31 14:52:39,057 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:52:39,057 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:52:39,074 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:52:39,074 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 68 root evaluator evaluations with a maximum evaluation depth of 3. Performed 68 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-31 14:52:39,074 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:52:39,074 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:52:39,074 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:52:39,074 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 59 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 59 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:52:39,085 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:52:39,085 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:52:39,089 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:52:39,093 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:52:39,093 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:52:39,115 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 18 treesize of output 21 [2019-01-31 14:52:39,123 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 23 [2019-01-31 14:52:39,136 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:39,137 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 23 treesize of output 29 [2019-01-31 14:52:39,153 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:39,154 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:39,155 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 39 [2019-01-31 14:52:39,174 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:39,178 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:39,180 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:39,180 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 50 [2019-01-31 14:52:39,186 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:52:39,209 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:52:39,223 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:52:39,236 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:52:39,249 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:52:39,270 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:52:39,270 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 4 variables, input treesize:28, output treesize:35 [2019-01-31 14:52:39,283 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:52:39,283 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_356|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (store (store (store (store (store |v_#memory_int_356| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:52:39,283 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p5, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:52:39,354 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:39,355 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:39,356 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:39,358 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:39,359 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:39,360 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:39,361 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:39,362 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-31 14:52:39,367 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:52:39,398 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:52:39,398 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-31 14:52:39,411 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:52:39,411 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_357|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_357| ULTIMATE.start_main_p2))) (and (= |#memory_int| (store |v_#memory_int_357| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= (select |v_#memory_int_357| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_357| ULTIMATE.start_main_p3)) (= (select |v_#memory_int_357| ULTIMATE.start_main_p5) 0) (= .cse0 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-31 14:52:39,411 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:52:39,506 INFO L273 TraceCheckUtils]: 0: Hoare triple {26506#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {26513#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-31 14:52:39,509 INFO L273 TraceCheckUtils]: 1: Hoare triple {26513#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {26517#(and (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-31 14:52:39,509 INFO L273 TraceCheckUtils]: 2: Hoare triple {26517#(and (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p1] >= 0; {26517#(and (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-31 14:52:39,510 INFO L273 TraceCheckUtils]: 3: Hoare triple {26517#(and (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p2] <= 0; {26517#(and (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-31 14:52:39,511 INFO L273 TraceCheckUtils]: 4: Hoare triple {26517#(and (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p3] >= 0; {26517#(and (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-31 14:52:39,512 INFO L273 TraceCheckUtils]: 5: Hoare triple {26517#(and (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume !(#memory_int[main_p4] <= 0); {26507#false} is VALID [2019-01-31 14:52:39,513 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:52:39,513 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:52:39,539 INFO L273 TraceCheckUtils]: 5: Hoare triple {26530#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {26507#false} is VALID [2019-01-31 14:52:39,539 INFO L273 TraceCheckUtils]: 4: Hoare triple {26530#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {26530#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-31 14:52:39,540 INFO L273 TraceCheckUtils]: 3: Hoare triple {26530#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {26530#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-31 14:52:39,540 INFO L273 TraceCheckUtils]: 2: Hoare triple {26530#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {26530#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-31 14:52:39,541 INFO L273 TraceCheckUtils]: 1: Hoare triple {26543#(<= (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {26530#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-31 14:52:39,543 INFO L273 TraceCheckUtils]: 0: Hoare triple {26506#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {26543#(<= (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-31 14:52:39,544 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:52:39,564 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-01-31 14:52:39,564 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [2, 2] total 6 [2019-01-31 14:52:39,564 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-31 14:52:39,564 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 6 [2019-01-31 14:52:39,564 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:52:39,564 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-01-31 14:52:39,569 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 6 edges. 6 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:52:39,570 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-01-31 14:52:39,570 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-01-31 14:52:39,570 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=26, Invalid=30, Unknown=0, NotChecked=0, Total=56 [2019-01-31 14:52:39,570 INFO L87 Difference]: Start difference. First operand 117 states and 603 transitions. Second operand 4 states. [2019-01-31 14:52:47,473 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:52:47,473 INFO L93 Difference]: Finished difference Result 121 states and 607 transitions. [2019-01-31 14:52:47,473 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-31 14:52:47,473 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 6 [2019-01-31 14:52:47,473 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:52:47,474 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-31 14:52:47,474 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 25 transitions. [2019-01-31 14:52:47,474 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-31 14:52:47,474 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 25 transitions. [2019-01-31 14:52:47,474 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 25 transitions. [2019-01-31 14:52:47,495 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 25 edges. 25 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:52:47,498 INFO L225 Difference]: With dead ends: 121 [2019-01-31 14:52:47,498 INFO L226 Difference]: Without dead ends: 117 [2019-01-31 14:52:47,499 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 13 GetRequests, 7 SyntacticMatches, 0 SemanticMatches, 6 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=26, Invalid=30, Unknown=0, NotChecked=0, Total=56 [2019-01-31 14:52:47,499 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 117 states. [2019-01-31 14:52:52,158 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 117 to 114. [2019-01-31 14:52:52,159 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:52:52,159 INFO L82 GeneralOperation]: Start isEquivalent. First operand 117 states. Second operand 114 states. [2019-01-31 14:52:52,159 INFO L74 IsIncluded]: Start isIncluded. First operand 117 states. Second operand 114 states. [2019-01-31 14:52:52,159 INFO L87 Difference]: Start difference. First operand 117 states. Second operand 114 states. [2019-01-31 14:52:52,163 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:52:52,163 INFO L93 Difference]: Finished difference Result 117 states and 602 transitions. [2019-01-31 14:52:52,163 INFO L276 IsEmpty]: Start isEmpty. Operand 117 states and 602 transitions. [2019-01-31 14:52:52,163 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:52:52,163 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:52:52,163 INFO L74 IsIncluded]: Start isIncluded. First operand 114 states. Second operand 117 states. [2019-01-31 14:52:52,163 INFO L87 Difference]: Start difference. First operand 114 states. Second operand 117 states. [2019-01-31 14:52:52,166 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:52:52,166 INFO L93 Difference]: Finished difference Result 117 states and 602 transitions. [2019-01-31 14:52:52,166 INFO L276 IsEmpty]: Start isEmpty. Operand 117 states and 602 transitions. [2019-01-31 14:52:52,166 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:52:52,167 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:52:52,167 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:52:52,167 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:52:52,167 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 114 states. [2019-01-31 14:52:52,169 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 114 states to 114 states and 599 transitions. [2019-01-31 14:52:52,169 INFO L78 Accepts]: Start accepts. Automaton has 114 states and 599 transitions. Word has length 6 [2019-01-31 14:52:52,169 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:52:52,169 INFO L480 AbstractCegarLoop]: Abstraction has 114 states and 599 transitions. [2019-01-31 14:52:52,169 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-01-31 14:52:52,169 INFO L276 IsEmpty]: Start isEmpty. Operand 114 states and 599 transitions. [2019-01-31 14:52:52,170 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:52:52,170 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:52:52,170 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:52:52,170 INFO L423 AbstractCegarLoop]: === Iteration 62 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:52:52,170 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:52:52,170 INFO L82 PathProgramCache]: Analyzing trace with hash 897162312, now seen corresponding path program 2 times [2019-01-31 14:52:52,170 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:52:52,171 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:52:52,171 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:52:52,171 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:52:52,171 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:52:52,173 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:52:52,473 INFO L273 TraceCheckUtils]: 0: Hoare triple {27209#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {27211#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:52:52,474 INFO L273 TraceCheckUtils]: 1: Hoare triple {27211#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {27212#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:52:52,475 INFO L273 TraceCheckUtils]: 2: Hoare triple {27212#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {27213#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:52:52,476 INFO L273 TraceCheckUtils]: 3: Hoare triple {27213#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {27214#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:52:52,477 INFO L273 TraceCheckUtils]: 4: Hoare triple {27214#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {27215#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:52:52,478 INFO L273 TraceCheckUtils]: 5: Hoare triple {27215#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {27210#false} is VALID [2019-01-31 14:52:52,478 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:52:52,479 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:52:52,479 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:52:52,479 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-31 14:52:52,479 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-31 14:52:52,479 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:52:52,479 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 60 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 60 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:52:52,489 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-31 14:52:52,489 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-31 14:52:52,501 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-31 14:52:52,501 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-31 14:52:52,505 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:52:52,506 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:52:52,526 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 18 treesize of output 21 [2019-01-31 14:52:52,535 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:52,535 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 21 treesize of output 27 [2019-01-31 14:52:52,548 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:52,549 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:52,550 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:52:52,567 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:52,568 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:52,569 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:52,570 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:52:52,593 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:52,594 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:52,595 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:52,596 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:52,597 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:52:52,603 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:52:52,633 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:52:52,651 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:52:52,665 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:52:52,678 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:52:52,700 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:52:52,700 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 2 variables, input treesize:31, output treesize:38 [2019-01-31 14:52:52,707 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:52:52,707 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_359|, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store (store |v_#memory_int_359| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:52:52,707 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p5]. (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:52:52,783 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:52,784 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:52,785 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:52,786 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:52,788 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:52,789 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:52,790 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:52,791 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:52,792 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:52,794 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:52,796 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:52,796 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 72 [2019-01-31 14:52:52,802 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:52:52,848 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:52:52,848 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:48, output treesize:38 [2019-01-31 14:52:55,966 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:52:55,966 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_360|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_360| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_360| ULTIMATE.start_main_p1)) (= (select |v_#memory_int_360| ULTIMATE.start_main_p3) 0) (= .cse0 0) (= (select |v_#memory_int_360| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_360| ULTIMATE.start_main_p5) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (store |v_#memory_int_360| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-31 14:52:55,967 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:52:56,053 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,054 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,055 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,057 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,058 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,059 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,060 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,061 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,063 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,064 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,065 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,066 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,067 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,068 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 88 [2019-01-31 14:52:56,075 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:52:56,129 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:52:56,130 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:50, output treesize:40 [2019-01-31 14:52:56,156 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:52:56,156 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_361|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_361| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_361| ULTIMATE.start_main_p2) 1)) (= 0 (select |v_#memory_int_361| ULTIMATE.start_main_p4)) (= (select |v_#memory_int_361| ULTIMATE.start_main_p1) 0) (= 0 (select |v_#memory_int_361| ULTIMATE.start_main_p5)) (= .cse0 0) (= (store |v_#memory_int_361| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:52:56,156 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:52:56,240 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,241 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,243 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,244 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,245 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,246 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,247 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,249 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,250 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,251 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,252 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,253 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,254 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,255 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,256 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,257 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:52:56,257 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 104 [2019-01-31 14:52:56,264 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:52:56,321 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:52:56,322 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:50, output treesize:40 [2019-01-31 14:52:56,332 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:52:56,332 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_362|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_362| ULTIMATE.start_main_p1))) (and (= 0 .cse0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_362| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= 0 (select |v_#memory_int_362| ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_362| ULTIMATE.start_main_p5)) (= (+ (select |v_#memory_int_362| ULTIMATE.start_main_p2) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 1 (select |v_#memory_int_362| ULTIMATE.start_main_p3)))) [2019-01-31 14:52:56,332 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:52:56,405 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,406 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,407 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,409 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,410 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,411 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,412 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,413 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,414 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,416 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,448 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,475 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,503 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,524 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,552 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:52:56,560 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:52:56,561 INFO L303 Elim1Store]: Index analysis took 158 ms [2019-01-31 14:52:56,562 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 99 [2019-01-31 14:52:56,569 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:52:56,628 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:52:56,628 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:50, output treesize:40 [2019-01-31 14:52:56,642 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:52:56,642 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_363|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_363| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |v_#memory_int_363| ULTIMATE.start_main_p3)) (= .cse0 0) (= (store |v_#memory_int_363| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (+ (select |v_#memory_int_363| ULTIMATE.start_main_p2) 1) 0) (= (select |v_#memory_int_363| ULTIMATE.start_main_p5) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 1 (select |v_#memory_int_363| ULTIMATE.start_main_p1)))) [2019-01-31 14:52:56,643 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-31 14:52:56,689 INFO L273 TraceCheckUtils]: 0: Hoare triple {27209#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {27219#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:52:56,691 INFO L273 TraceCheckUtils]: 1: Hoare triple {27219#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {27223#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-31 14:52:56,693 INFO L273 TraceCheckUtils]: 2: Hoare triple {27223#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {27227#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-31 14:52:56,695 INFO L273 TraceCheckUtils]: 3: Hoare triple {27227#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {27231#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-31 14:52:56,703 INFO L273 TraceCheckUtils]: 4: Hoare triple {27231#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {27235#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-31 14:52:56,704 INFO L273 TraceCheckUtils]: 5: Hoare triple {27235#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume !(#memory_int[main_p1] >= 0); {27210#false} is VALID [2019-01-31 14:52:56,704 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:52:56,705 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:52:56,812 INFO L273 TraceCheckUtils]: 5: Hoare triple {27239#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {27210#false} is VALID [2019-01-31 14:52:56,813 INFO L273 TraceCheckUtils]: 4: Hoare triple {27243#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {27239#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:52:56,814 INFO L273 TraceCheckUtils]: 3: Hoare triple {27247#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {27243#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:52:56,816 INFO L273 TraceCheckUtils]: 2: Hoare triple {27251#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {27247#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:52:56,818 INFO L273 TraceCheckUtils]: 1: Hoare triple {27255#(<= 0 (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {27251#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:52:56,820 INFO L273 TraceCheckUtils]: 0: Hoare triple {27209#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {27255#(<= 0 (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:52:56,821 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 6 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:52:56,840 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:52:56,840 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5, 5] total 15 [2019-01-31 14:52:56,840 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:52:56,841 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-31 14:52:56,841 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:52:56,841 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-01-31 14:52:56,871 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:52:56,871 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-01-31 14:52:56,872 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-01-31 14:52:56,872 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=102, Invalid=170, Unknown=0, NotChecked=0, Total=272 [2019-01-31 14:52:56,872 INFO L87 Difference]: Start difference. First operand 114 states and 599 transitions. Second operand 12 states. [2019-01-31 14:53:05,605 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:53:05,605 INFO L93 Difference]: Finished difference Result 186 states and 791 transitions. [2019-01-31 14:53:05,605 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-31 14:53:05,605 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-31 14:53:05,605 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:53:05,606 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-31 14:53:05,606 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 88 transitions. [2019-01-31 14:53:05,606 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-31 14:53:05,606 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 88 transitions. [2019-01-31 14:53:05,607 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 88 transitions. [2019-01-31 14:53:05,846 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 88 edges. 88 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:53:05,850 INFO L225 Difference]: With dead ends: 186 [2019-01-31 14:53:05,850 INFO L226 Difference]: Without dead ends: 184 [2019-01-31 14:53:05,850 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 18 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 100 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=134, Invalid=246, Unknown=0, NotChecked=0, Total=380 [2019-01-31 14:53:05,850 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 184 states. [2019-01-31 14:53:10,692 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 184 to 121. [2019-01-31 14:53:10,692 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:53:10,692 INFO L82 GeneralOperation]: Start isEquivalent. First operand 184 states. Second operand 121 states. [2019-01-31 14:53:10,693 INFO L74 IsIncluded]: Start isIncluded. First operand 184 states. Second operand 121 states. [2019-01-31 14:53:10,693 INFO L87 Difference]: Start difference. First operand 184 states. Second operand 121 states. [2019-01-31 14:53:10,702 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:53:10,702 INFO L93 Difference]: Finished difference Result 184 states and 785 transitions. [2019-01-31 14:53:10,702 INFO L276 IsEmpty]: Start isEmpty. Operand 184 states and 785 transitions. [2019-01-31 14:53:10,702 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:53:10,702 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:53:10,702 INFO L74 IsIncluded]: Start isIncluded. First operand 121 states. Second operand 184 states. [2019-01-31 14:53:10,703 INFO L87 Difference]: Start difference. First operand 121 states. Second operand 184 states. [2019-01-31 14:53:10,707 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:53:10,707 INFO L93 Difference]: Finished difference Result 184 states and 785 transitions. [2019-01-31 14:53:10,707 INFO L276 IsEmpty]: Start isEmpty. Operand 184 states and 785 transitions. [2019-01-31 14:53:10,708 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:53:10,708 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:53:10,708 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:53:10,708 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:53:10,708 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 121 states. [2019-01-31 14:53:10,710 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 121 states to 121 states and 632 transitions. [2019-01-31 14:53:10,710 INFO L78 Accepts]: Start accepts. Automaton has 121 states and 632 transitions. Word has length 6 [2019-01-31 14:53:10,711 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:53:10,711 INFO L480 AbstractCegarLoop]: Abstraction has 121 states and 632 transitions. [2019-01-31 14:53:10,711 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-01-31 14:53:10,711 INFO L276 IsEmpty]: Start isEmpty. Operand 121 states and 632 transitions. [2019-01-31 14:53:10,711 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:53:10,711 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:53:10,711 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:53:10,711 INFO L423 AbstractCegarLoop]: === Iteration 63 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:53:10,712 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:53:10,712 INFO L82 PathProgramCache]: Analyzing trace with hash 897179862, now seen corresponding path program 1 times [2019-01-31 14:53:10,712 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:53:10,713 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:53:10,713 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-31 14:53:10,713 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:53:10,713 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:53:10,716 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:53:10,822 INFO L273 TraceCheckUtils]: 0: Hoare triple {28162#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {28164#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:53:10,823 INFO L273 TraceCheckUtils]: 1: Hoare triple {28164#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {28164#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:53:10,824 INFO L273 TraceCheckUtils]: 2: Hoare triple {28164#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {28165#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= 0 (select |#memory_int| ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:53:10,825 INFO L273 TraceCheckUtils]: 3: Hoare triple {28165#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= 0 (select |#memory_int| ULTIMATE.start_main_p3)))} assume #memory_int[main_p1] >= 0; {28165#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= 0 (select |#memory_int| ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:53:10,825 INFO L273 TraceCheckUtils]: 4: Hoare triple {28165#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= 0 (select |#memory_int| ULTIMATE.start_main_p3)))} assume #memory_int[main_p2] <= 0; {28166#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:53:10,826 INFO L273 TraceCheckUtils]: 5: Hoare triple {28166#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {28163#false} is VALID [2019-01-31 14:53:10,826 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-31 14:53:10,826 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:53:10,826 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:53:10,826 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-31 14:53:10,827 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [24], [26], [27] [2019-01-31 14:53:10,827 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:53:10,828 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:53:10,836 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:53:10,836 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 68 root evaluator evaluations with a maximum evaluation depth of 3. Performed 68 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-31 14:53:10,836 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:53:10,837 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:53:10,837 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:53:10,837 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 61 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 61 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:53:10,848 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:53:10,848 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:53:10,852 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:53:10,856 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:53:10,856 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:53:10,877 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 18 treesize of output 21 [2019-01-31 14:53:10,887 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 23 [2019-01-31 14:53:10,898 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:10,899 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 23 treesize of output 29 [2019-01-31 14:53:10,917 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:10,918 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:10,919 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 39 [2019-01-31 14:53:10,937 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:10,942 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:10,943 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:10,944 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 50 [2019-01-31 14:53:10,950 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:53:10,972 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:53:10,985 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:53:10,998 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:53:11,011 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:53:11,034 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:53:11,034 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 4 variables, input treesize:28, output treesize:35 [2019-01-31 14:53:11,045 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:53:11,045 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_368|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store (store |v_#memory_int_368| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:53:11,045 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:53:11,112 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:11,113 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:11,114 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:11,116 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:11,117 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:11,118 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:11,119 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:11,120 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-31 14:53:11,125 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:53:11,159 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:53:11,160 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-31 14:53:14,619 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:53:14,619 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_369|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_369| ULTIMATE.start_main_p2))) (and (= |#memory_int| (store |v_#memory_int_369| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_369| ULTIMATE.start_main_p5) 0) (= 0 (select |v_#memory_int_369| ULTIMATE.start_main_p4)) (= 0 .cse0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |v_#memory_int_369| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-31 14:53:14,619 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:53:14,702 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:14,703 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:14,705 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:14,706 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:14,707 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:14,708 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:14,709 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:14,710 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:14,711 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:14,712 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 67 [2019-01-31 14:53:14,716 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:53:14,750 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:53:14,751 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-31 14:53:14,765 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:53:14,765 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_370|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_370| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_370| ULTIMATE.start_main_p4) 0) (= .cse0 0) (= 0 (+ (select |v_#memory_int_370| ULTIMATE.start_main_p2) 1)) (= (store |v_#memory_int_370| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |v_#memory_int_370| ULTIMATE.start_main_p5) 0))) [2019-01-31 14:53:14,765 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:53:14,861 INFO L273 TraceCheckUtils]: 0: Hoare triple {28162#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {28170#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:53:14,862 INFO L273 TraceCheckUtils]: 1: Hoare triple {28170#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {28174#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-31 14:53:14,864 INFO L273 TraceCheckUtils]: 2: Hoare triple {28174#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {28178#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-31 14:53:14,865 INFO L273 TraceCheckUtils]: 3: Hoare triple {28178#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p1] >= 0; {28178#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-31 14:53:14,866 INFO L273 TraceCheckUtils]: 4: Hoare triple {28178#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p2] <= 0; {28178#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-31 14:53:14,867 INFO L273 TraceCheckUtils]: 5: Hoare triple {28178#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume !(#memory_int[main_p3] >= 0); {28163#false} is VALID [2019-01-31 14:53:14,868 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:53:14,868 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:53:14,900 INFO L273 TraceCheckUtils]: 5: Hoare triple {28166#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {28163#false} is VALID [2019-01-31 14:53:14,901 INFO L273 TraceCheckUtils]: 4: Hoare triple {28166#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {28166#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:53:14,902 INFO L273 TraceCheckUtils]: 3: Hoare triple {28166#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {28166#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:53:14,902 INFO L273 TraceCheckUtils]: 2: Hoare triple {28197#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {28166#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:53:14,903 INFO L273 TraceCheckUtils]: 1: Hoare triple {28201#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {28197#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1))} is VALID [2019-01-31 14:53:14,906 INFO L273 TraceCheckUtils]: 0: Hoare triple {28162#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {28201#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1))} is VALID [2019-01-31 14:53:14,906 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:53:14,926 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:53:14,926 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 8 [2019-01-31 14:53:14,926 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:53:14,926 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-31 14:53:14,926 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:53:14,926 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:53:14,945 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:53:14,945 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:53:14,946 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:53:14,946 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=38, Invalid=52, Unknown=0, NotChecked=0, Total=90 [2019-01-31 14:53:14,946 INFO L87 Difference]: Start difference. First operand 121 states and 632 transitions. Second operand 8 states. [2019-01-31 14:53:21,646 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:53:21,646 INFO L93 Difference]: Finished difference Result 161 states and 745 transitions. [2019-01-31 14:53:21,646 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-31 14:53:21,646 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-31 14:53:21,647 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:53:21,647 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:53:21,648 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 60 transitions. [2019-01-31 14:53:21,648 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:53:21,649 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 60 transitions. [2019-01-31 14:53:21,649 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 60 transitions. [2019-01-31 14:53:21,733 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 60 edges. 60 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:53:21,737 INFO L225 Difference]: With dead ends: 161 [2019-01-31 14:53:21,737 INFO L226 Difference]: Without dead ends: 160 [2019-01-31 14:53:21,738 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 16 GetRequests, 5 SyntacticMatches, 1 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 24 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=53, Invalid=79, Unknown=0, NotChecked=0, Total=132 [2019-01-31 14:53:21,738 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 160 states. [2019-01-31 14:53:27,539 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 160 to 133. [2019-01-31 14:53:27,539 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:53:27,539 INFO L82 GeneralOperation]: Start isEquivalent. First operand 160 states. Second operand 133 states. [2019-01-31 14:53:27,539 INFO L74 IsIncluded]: Start isIncluded. First operand 160 states. Second operand 133 states. [2019-01-31 14:53:27,540 INFO L87 Difference]: Start difference. First operand 160 states. Second operand 133 states. [2019-01-31 14:53:27,547 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:53:27,547 INFO L93 Difference]: Finished difference Result 160 states and 742 transitions. [2019-01-31 14:53:27,547 INFO L276 IsEmpty]: Start isEmpty. Operand 160 states and 742 transitions. [2019-01-31 14:53:27,548 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:53:27,548 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:53:27,548 INFO L74 IsIncluded]: Start isIncluded. First operand 133 states. Second operand 160 states. [2019-01-31 14:53:27,548 INFO L87 Difference]: Start difference. First operand 133 states. Second operand 160 states. [2019-01-31 14:53:27,555 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:53:27,555 INFO L93 Difference]: Finished difference Result 160 states and 742 transitions. [2019-01-31 14:53:27,556 INFO L276 IsEmpty]: Start isEmpty. Operand 160 states and 742 transitions. [2019-01-31 14:53:27,556 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:53:27,556 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:53:27,556 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:53:27,556 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:53:27,556 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 133 states. [2019-01-31 14:53:27,564 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 133 states to 133 states and 714 transitions. [2019-01-31 14:53:27,564 INFO L78 Accepts]: Start accepts. Automaton has 133 states and 714 transitions. Word has length 6 [2019-01-31 14:53:27,564 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:53:27,564 INFO L480 AbstractCegarLoop]: Abstraction has 133 states and 714 transitions. [2019-01-31 14:53:27,564 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:53:27,564 INFO L276 IsEmpty]: Start isEmpty. Operand 133 states and 714 transitions. [2019-01-31 14:53:27,565 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:53:27,565 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:53:27,565 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:53:27,565 INFO L423 AbstractCegarLoop]: === Iteration 64 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:53:27,565 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:53:27,565 INFO L82 PathProgramCache]: Analyzing trace with hash 900993110, now seen corresponding path program 2 times [2019-01-31 14:53:27,565 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:53:27,566 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:53:27,566 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:53:27,566 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:53:27,566 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:53:27,568 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:53:27,685 INFO L273 TraceCheckUtils]: 0: Hoare triple {29055#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {29057#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-31 14:53:27,686 INFO L273 TraceCheckUtils]: 1: Hoare triple {29057#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {29058#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:53:27,687 INFO L273 TraceCheckUtils]: 2: Hoare triple {29058#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {29059#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:53:27,687 INFO L273 TraceCheckUtils]: 3: Hoare triple {29059#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {29059#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:53:27,688 INFO L273 TraceCheckUtils]: 4: Hoare triple {29059#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {29059#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:53:27,689 INFO L273 TraceCheckUtils]: 5: Hoare triple {29059#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {29056#false} is VALID [2019-01-31 14:53:27,689 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:53:27,689 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:53:27,689 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:53:27,689 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-31 14:53:27,690 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-31 14:53:27,690 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:53:27,690 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 62 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 62 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:53:27,703 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-31 14:53:27,704 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-31 14:53:27,709 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 2 check-sat command(s) [2019-01-31 14:53:27,709 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-31 14:53:27,715 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:53:27,715 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:53:27,730 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 18 treesize of output 21 [2019-01-31 14:53:27,738 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 23 [2019-01-31 14:53:27,748 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 25 [2019-01-31 14:53:27,767 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:27,768 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 1 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 31 [2019-01-31 14:53:27,783 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:27,790 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:27,790 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 3 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 38 [2019-01-31 14:53:27,796 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:53:27,814 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:53:27,826 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:53:27,838 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:53:27,851 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:53:27,869 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:53:27,869 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 4 variables, input treesize:25, output treesize:32 [2019-01-31 14:53:27,876 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:53:27,882 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_373|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store (store |v_#memory_int_373| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5)) [2019-01-31 14:53:27,882 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p5, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:53:27,939 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:27,940 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:27,941 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:27,942 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:27,943 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 34 [2019-01-31 14:53:27,947 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:53:27,965 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:53:27,966 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:22 [2019-01-31 14:53:27,978 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:53:27,979 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_374|, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_374| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_374| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_374| ULTIMATE.start_main_p5) 0) (= (store |v_#memory_int_374| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= 0 .cse0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) [2019-01-31 14:53:27,979 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p5]. (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:53:28,034 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:28,035 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:28,037 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:28,038 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:28,039 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:28,040 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:28,041 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 40 [2019-01-31 14:53:28,045 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:53:28,066 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:53:28,067 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:32, output treesize:22 [2019-01-31 14:53:28,307 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:53:28,307 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_375|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_375| ULTIMATE.start_main_p4))) (and (= (select |v_#memory_int_375| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_375| ULTIMATE.start_main_p5) 0) (= 0 .cse0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= |#memory_int| (store |v_#memory_int_375| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))))) [2019-01-31 14:53:28,308 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5)) [2019-01-31 14:53:28,364 INFO L273 TraceCheckUtils]: 0: Hoare triple {29055#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {29063#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-31 14:53:28,366 INFO L273 TraceCheckUtils]: 1: Hoare triple {29063#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {29067#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-31 14:53:28,367 INFO L273 TraceCheckUtils]: 2: Hoare triple {29067#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {29071#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} is VALID [2019-01-31 14:53:28,367 INFO L273 TraceCheckUtils]: 3: Hoare triple {29071#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} assume #memory_int[main_p1] >= 0; {29071#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} is VALID [2019-01-31 14:53:28,368 INFO L273 TraceCheckUtils]: 4: Hoare triple {29071#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} assume #memory_int[main_p2] <= 0; {29071#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} is VALID [2019-01-31 14:53:28,369 INFO L273 TraceCheckUtils]: 5: Hoare triple {29071#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))))} assume !(#memory_int[main_p3] >= 0); {29056#false} is VALID [2019-01-31 14:53:28,369 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:53:28,370 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:53:28,415 INFO L273 TraceCheckUtils]: 5: Hoare triple {29081#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {29056#false} is VALID [2019-01-31 14:53:28,416 INFO L273 TraceCheckUtils]: 4: Hoare triple {29081#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {29081#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:53:28,417 INFO L273 TraceCheckUtils]: 3: Hoare triple {29081#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {29081#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:53:28,418 INFO L273 TraceCheckUtils]: 2: Hoare triple {29091#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {29081#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:53:28,419 INFO L273 TraceCheckUtils]: 1: Hoare triple {29095#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {29091#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:53:28,421 INFO L273 TraceCheckUtils]: 0: Hoare triple {29055#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {29095#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:53:28,421 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:53:28,441 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:53:28,441 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:53:28,441 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:53:28,441 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-31 14:53:28,441 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:53:28,442 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:53:28,456 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:53:28,457 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:53:28,457 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:53:28,457 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:53:28,457 INFO L87 Difference]: Start difference. First operand 133 states and 714 transitions. Second operand 8 states. [2019-01-31 14:53:35,164 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:53:35,164 INFO L93 Difference]: Finished difference Result 172 states and 801 transitions. [2019-01-31 14:53:35,164 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-31 14:53:35,164 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-31 14:53:35,165 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:53:35,165 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:53:35,165 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 66 transitions. [2019-01-31 14:53:35,165 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:53:35,166 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 66 transitions. [2019-01-31 14:53:35,166 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 66 transitions. [2019-01-31 14:53:35,282 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 66 edges. 66 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:53:35,286 INFO L225 Difference]: With dead ends: 172 [2019-01-31 14:53:35,286 INFO L226 Difference]: Without dead ends: 170 [2019-01-31 14:53:35,286 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 4 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 28 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=53, Invalid=79, Unknown=0, NotChecked=0, Total=132 [2019-01-31 14:53:35,287 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 170 states. [2019-01-31 14:53:41,366 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 170 to 137. [2019-01-31 14:53:41,367 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:53:41,367 INFO L82 GeneralOperation]: Start isEquivalent. First operand 170 states. Second operand 137 states. [2019-01-31 14:53:41,367 INFO L74 IsIncluded]: Start isIncluded. First operand 170 states. Second operand 137 states. [2019-01-31 14:53:41,367 INFO L87 Difference]: Start difference. First operand 170 states. Second operand 137 states. [2019-01-31 14:53:41,374 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:53:41,374 INFO L93 Difference]: Finished difference Result 170 states and 798 transitions. [2019-01-31 14:53:41,374 INFO L276 IsEmpty]: Start isEmpty. Operand 170 states and 798 transitions. [2019-01-31 14:53:41,375 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:53:41,375 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:53:41,375 INFO L74 IsIncluded]: Start isIncluded. First operand 137 states. Second operand 170 states. [2019-01-31 14:53:41,375 INFO L87 Difference]: Start difference. First operand 137 states. Second operand 170 states. [2019-01-31 14:53:41,382 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:53:41,382 INFO L93 Difference]: Finished difference Result 170 states and 798 transitions. [2019-01-31 14:53:41,382 INFO L276 IsEmpty]: Start isEmpty. Operand 170 states and 798 transitions. [2019-01-31 14:53:41,382 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:53:41,382 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:53:41,383 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:53:41,383 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:53:41,383 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 137 states. [2019-01-31 14:53:41,388 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 137 states to 137 states and 738 transitions. [2019-01-31 14:53:41,389 INFO L78 Accepts]: Start accepts. Automaton has 137 states and 738 transitions. Word has length 6 [2019-01-31 14:53:41,389 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:53:41,389 INFO L480 AbstractCegarLoop]: Abstraction has 137 states and 738 transitions. [2019-01-31 14:53:41,389 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:53:41,389 INFO L276 IsEmpty]: Start isEmpty. Operand 137 states and 738 transitions. [2019-01-31 14:53:41,389 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:53:41,390 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:53:41,390 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:53:41,390 INFO L423 AbstractCegarLoop]: === Iteration 65 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:53:41,390 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:53:41,390 INFO L82 PathProgramCache]: Analyzing trace with hash 900629352, now seen corresponding path program 3 times [2019-01-31 14:53:41,390 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:53:41,391 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:53:41,391 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-31 14:53:41,391 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:53:41,391 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:53:41,393 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:53:41,871 INFO L273 TraceCheckUtils]: 0: Hoare triple {29995#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {29997#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:53:41,873 INFO L273 TraceCheckUtils]: 1: Hoare triple {29997#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {29998#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:53:41,874 INFO L273 TraceCheckUtils]: 2: Hoare triple {29998#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {29999#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:53:41,875 INFO L273 TraceCheckUtils]: 3: Hoare triple {29999#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {30000#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:53:41,876 INFO L273 TraceCheckUtils]: 4: Hoare triple {30000#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {30001#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:53:41,876 INFO L273 TraceCheckUtils]: 5: Hoare triple {30001#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {29996#false} is VALID [2019-01-31 14:53:41,877 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:53:41,877 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:53:41,877 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:53:41,877 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-31 14:53:41,877 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-31 14:53:41,877 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:53:41,878 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 63 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 63 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:53:41,887 INFO L103 rtionOrderModulation]: Keeping assertion order TERMS_WITH_SMALL_CONSTANTS_FIRST [2019-01-31 14:53:41,887 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder TERMS_WITH_SMALL_CONSTANTS_FIRST (IT: FPandBP) [2019-01-31 14:53:41,892 INFO L249 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2019-01-31 14:53:41,892 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-31 14:53:41,895 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:53:41,895 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:53:41,919 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 18 treesize of output 21 [2019-01-31 14:53:41,928 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:41,929 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 21 treesize of output 27 [2019-01-31 14:53:41,942 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:41,943 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:41,944 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:53:41,967 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:41,968 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:41,969 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:41,970 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:53:41,996 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:41,998 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:41,999 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:42,000 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:42,001 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:53:42,007 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:53:42,038 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:53:42,054 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:53:42,067 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:53:42,079 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:53:42,101 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:53:42,102 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 2 variables, input treesize:31, output treesize:38 [2019-01-31 14:53:42,110 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:53:42,110 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_378|, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store (store |v_#memory_int_378| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:53:42,110 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p5]. (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:53:42,187 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:42,189 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:42,190 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:42,191 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:42,193 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:42,194 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:42,195 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:42,197 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:42,198 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:42,199 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:42,200 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:42,201 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 72 [2019-01-31 14:53:42,208 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:53:42,257 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:53:42,257 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:48, output treesize:38 [2019-01-31 14:53:42,939 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:53:42,939 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_379|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_379| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= |#memory_int| (store |v_#memory_int_379| ULTIMATE.start_main_p3 (+ .cse0 1))) (= (select |v_#memory_int_379| ULTIMATE.start_main_p2) 0) (= 0 (select |v_#memory_int_379| ULTIMATE.start_main_p4)) (= (select |v_#memory_int_379| ULTIMATE.start_main_p5) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_379| ULTIMATE.start_main_p1) 0))) [2019-01-31 14:53:42,939 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p5, ULTIMATE.start_main_p3]. (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:53:43,020 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,021 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,023 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,024 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,025 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,026 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,027 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,028 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,030 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,031 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,032 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,033 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,033 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:53:43,034 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 80 [2019-01-31 14:53:43,041 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:53:43,090 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:53:43,091 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:48, output treesize:38 [2019-01-31 14:53:43,104 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:53:43,105 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_380|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_380| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_380| ULTIMATE.start_main_p3) 1) (= (select |v_#memory_int_380| ULTIMATE.start_main_p5) 0) (= (select |v_#memory_int_380| ULTIMATE.start_main_p4) 0) (= (store |v_#memory_int_380| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= .cse0 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |v_#memory_int_380| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:53:43,105 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p5, ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:53:43,186 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,187 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,188 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,190 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,191 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,192 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,193 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,194 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,196 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,197 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,198 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,199 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,200 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,201 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 78 [2019-01-31 14:53:43,208 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:53:43,260 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:53:43,260 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:48, output treesize:38 [2019-01-31 14:53:43,273 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:53:43,273 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_381|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_381| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_381| ULTIMATE.start_main_p3) 1) (= (select |v_#memory_int_381| ULTIMATE.start_main_p2) 0) (= (store |v_#memory_int_381| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= 0 (select |v_#memory_int_381| ULTIMATE.start_main_p5)) (= (select |v_#memory_int_381| ULTIMATE.start_main_p1) 1) (= .cse0 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:53:43,273 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:53:43,355 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,356 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,357 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,358 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,359 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,360 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,362 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,363 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,364 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,365 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,367 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,368 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,368 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:53:43,369 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:53:43,370 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 97 [2019-01-31 14:53:43,377 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:53:43,435 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:53:43,436 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:50, output treesize:38 [2019-01-31 14:53:43,465 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:53:43,466 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_382|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_382| ULTIMATE.start_main_p2))) (and (= (select |v_#memory_int_382| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_382| ULTIMATE.start_main_p4) 1)) (= 1 (select |v_#memory_int_382| ULTIMATE.start_main_p3)) (= |#memory_int| (store |v_#memory_int_382| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= .cse0 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_382| ULTIMATE.start_main_p5) 0))) [2019-01-31 14:53:43,466 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:53:43,540 INFO L273 TraceCheckUtils]: 0: Hoare triple {29995#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {30005#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:53:43,543 INFO L273 TraceCheckUtils]: 1: Hoare triple {30005#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {30009#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:53:43,545 INFO L273 TraceCheckUtils]: 2: Hoare triple {30009#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {30013#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:53:43,549 INFO L273 TraceCheckUtils]: 3: Hoare triple {30013#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p5 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {30017#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:53:43,555 INFO L273 TraceCheckUtils]: 4: Hoare triple {30017#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {30021#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-31 14:53:43,555 INFO L273 TraceCheckUtils]: 5: Hoare triple {30021#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {29996#false} is VALID [2019-01-31 14:53:43,556 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:53:43,556 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:53:43,678 INFO L273 TraceCheckUtils]: 5: Hoare triple {30025#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {29996#false} is VALID [2019-01-31 14:53:43,679 INFO L273 TraceCheckUtils]: 4: Hoare triple {30029#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {30025#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:53:43,680 INFO L273 TraceCheckUtils]: 3: Hoare triple {30033#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {30029#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:53:43,682 INFO L273 TraceCheckUtils]: 2: Hoare triple {30037#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {30033#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:53:43,685 INFO L273 TraceCheckUtils]: 1: Hoare triple {30041#(<= 0 (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {30037#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:53:43,687 INFO L273 TraceCheckUtils]: 0: Hoare triple {29995#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {30041#(<= 0 (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:53:43,687 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 5 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:53:43,709 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:53:43,709 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5, 5] total 15 [2019-01-31 14:53:43,709 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:53:43,709 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-31 14:53:43,710 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:53:43,710 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-01-31 14:53:43,733 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:53:43,733 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-01-31 14:53:43,733 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-01-31 14:53:43,733 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=100, Invalid=172, Unknown=0, NotChecked=0, Total=272 [2019-01-31 14:53:43,734 INFO L87 Difference]: Start difference. First operand 137 states and 738 transitions. Second operand 12 states. [2019-01-31 14:53:56,130 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:53:56,130 INFO L93 Difference]: Finished difference Result 209 states and 906 transitions. [2019-01-31 14:53:56,130 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-31 14:53:56,130 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-31 14:53:56,131 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:53:56,131 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-31 14:53:56,131 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 91 transitions. [2019-01-31 14:53:56,131 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-31 14:53:56,132 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 91 transitions. [2019-01-31 14:53:56,132 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 91 transitions. [2019-01-31 14:53:56,330 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 91 edges. 91 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:53:56,335 INFO L225 Difference]: With dead ends: 209 [2019-01-31 14:53:56,335 INFO L226 Difference]: Without dead ends: 207 [2019-01-31 14:53:56,335 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 18 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 99 ImplicationChecksByTransitivity, 0.8s TimeCoverageRelationStatistics Valid=132, Invalid=248, Unknown=0, NotChecked=0, Total=380 [2019-01-31 14:53:56,335 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 207 states. [2019-01-31 14:54:01,817 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 207 to 123. [2019-01-31 14:54:01,818 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:54:01,818 INFO L82 GeneralOperation]: Start isEquivalent. First operand 207 states. Second operand 123 states. [2019-01-31 14:54:01,818 INFO L74 IsIncluded]: Start isIncluded. First operand 207 states. Second operand 123 states. [2019-01-31 14:54:01,818 INFO L87 Difference]: Start difference. First operand 207 states. Second operand 123 states. [2019-01-31 14:54:01,824 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:54:01,824 INFO L93 Difference]: Finished difference Result 207 states and 901 transitions. [2019-01-31 14:54:01,824 INFO L276 IsEmpty]: Start isEmpty. Operand 207 states and 901 transitions. [2019-01-31 14:54:01,825 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:54:01,825 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:54:01,825 INFO L74 IsIncluded]: Start isIncluded. First operand 123 states. Second operand 207 states. [2019-01-31 14:54:01,825 INFO L87 Difference]: Start difference. First operand 123 states. Second operand 207 states. [2019-01-31 14:54:01,830 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:54:01,830 INFO L93 Difference]: Finished difference Result 207 states and 901 transitions. [2019-01-31 14:54:01,830 INFO L276 IsEmpty]: Start isEmpty. Operand 207 states and 901 transitions. [2019-01-31 14:54:01,830 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:54:01,830 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:54:01,831 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:54:01,831 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:54:01,831 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 123 states. [2019-01-31 14:54:01,833 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 123 states to 123 states and 652 transitions. [2019-01-31 14:54:01,834 INFO L78 Accepts]: Start accepts. Automaton has 123 states and 652 transitions. Word has length 6 [2019-01-31 14:54:01,834 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:54:01,834 INFO L480 AbstractCegarLoop]: Abstraction has 123 states and 652 transitions. [2019-01-31 14:54:01,834 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-01-31 14:54:01,834 INFO L276 IsEmpty]: Start isEmpty. Operand 123 states and 652 transitions. [2019-01-31 14:54:01,835 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-31 14:54:01,835 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:54:01,835 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-31 14:54:01,835 INFO L423 AbstractCegarLoop]: === Iteration 66 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:54:01,835 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:54:01,835 INFO L82 PathProgramCache]: Analyzing trace with hash 900750874, now seen corresponding path program 2 times [2019-01-31 14:54:01,835 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:54:01,836 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:54:01,836 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-31 14:54:01,836 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:54:01,836 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:54:01,838 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:54:01,985 INFO L273 TraceCheckUtils]: 0: Hoare triple {31042#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {31044#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:54:01,986 INFO L273 TraceCheckUtils]: 1: Hoare triple {31044#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {31045#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-31 14:54:01,987 INFO L273 TraceCheckUtils]: 2: Hoare triple {31045#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {31046#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (<= (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) 0))} is VALID [2019-01-31 14:54:01,988 INFO L273 TraceCheckUtils]: 3: Hoare triple {31046#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (<= (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) 0))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {31047#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:54:01,989 INFO L273 TraceCheckUtils]: 4: Hoare triple {31047#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {31047#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:54:01,989 INFO L273 TraceCheckUtils]: 5: Hoare triple {31047#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {31043#false} is VALID [2019-01-31 14:54:01,989 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:54:01,990 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:54:01,990 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:54:01,990 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-31 14:54:01,990 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-31 14:54:01,990 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:54:01,991 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 64 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 64 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:54:02,001 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-31 14:54:02,002 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-31 14:54:02,008 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-31 14:54:02,008 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-31 14:54:02,013 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:54:02,013 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:54:02,036 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 18 treesize of output 21 [2019-01-31 14:54:02,043 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 23 [2019-01-31 14:54:02,055 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:02,056 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 23 treesize of output 29 [2019-01-31 14:54:02,072 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:02,074 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:02,074 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 39 [2019-01-31 14:54:02,092 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:02,096 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:02,097 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:02,098 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 50 [2019-01-31 14:54:02,104 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:54:02,127 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:54:02,140 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:54:02,152 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:54:02,165 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:54:02,188 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:54:02,188 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 3 variables, input treesize:28, output treesize:35 [2019-01-31 14:54:02,196 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:54:02,196 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_387|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store (store |v_#memory_int_387| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:54:02,197 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:54:02,273 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:02,274 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:02,275 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:02,277 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:02,278 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:02,279 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:02,280 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:02,281 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-31 14:54:02,286 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:54:02,321 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:54:02,321 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-31 14:54:02,331 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:54:02,332 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_388|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_388| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_388| ULTIMATE.start_main_p5)) (= 0 (select |v_#memory_int_388| ULTIMATE.start_main_p4)) (= .cse0 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= |#memory_int| (store |v_#memory_int_388| ULTIMATE.start_main_p3 (+ .cse0 1))) (= (select |v_#memory_int_388| ULTIMATE.start_main_p2) 0))) [2019-01-31 14:54:02,332 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:54:02,397 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:02,398 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:02,400 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:02,401 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:02,402 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:02,403 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:02,404 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:02,405 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:02,406 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:02,407 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 65 [2019-01-31 14:54:02,412 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:54:02,448 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:54:02,448 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-31 14:54:02,460 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:54:02,460 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_389|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_389| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_389| ULTIMATE.start_main_p5) 0) (= (select |v_#memory_int_389| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_389| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (store |v_#memory_int_389| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-31 14:54:02,460 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:54:02,523 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:02,524 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:02,548 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:02,549 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:02,549 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:02,550 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:02,551 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:02,552 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:02,552 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:02,553 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:02,554 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:02,555 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:54:02,556 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 83 [2019-01-31 14:54:02,595 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:54:02,645 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:54:02,645 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-31 14:54:02,810 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:54:02,810 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_390|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_390| ULTIMATE.start_main_p5))) (and (= 0 (+ (select |v_#memory_int_390| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |v_#memory_int_390| ULTIMATE.start_main_p3)) (= 0 (select |v_#memory_int_390| ULTIMATE.start_main_p4)) (= 0 .cse0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (store |v_#memory_int_390| ULTIMATE.start_main_p5 (+ .cse0 1)) |#memory_int|))) [2019-01-31 14:54:02,810 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-31 14:54:02,877 INFO L273 TraceCheckUtils]: 0: Hoare triple {31042#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {31051#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:54:02,879 INFO L273 TraceCheckUtils]: 1: Hoare triple {31051#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {31055#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:54:02,881 INFO L273 TraceCheckUtils]: 2: Hoare triple {31055#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {31059#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-31 14:54:02,884 INFO L273 TraceCheckUtils]: 3: Hoare triple {31059#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {31063#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-31 14:54:02,885 INFO L273 TraceCheckUtils]: 4: Hoare triple {31063#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume #memory_int[main_p1] >= 0; {31063#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-31 14:54:02,886 INFO L273 TraceCheckUtils]: 5: Hoare triple {31063#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume !(#memory_int[main_p2] <= 0); {31043#false} is VALID [2019-01-31 14:54:02,886 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:54:02,886 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:54:02,982 INFO L273 TraceCheckUtils]: 5: Hoare triple {31047#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {31043#false} is VALID [2019-01-31 14:54:02,983 INFO L273 TraceCheckUtils]: 4: Hoare triple {31047#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {31047#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:54:02,984 INFO L273 TraceCheckUtils]: 3: Hoare triple {31076#(<= (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {31047#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:54:02,985 INFO L273 TraceCheckUtils]: 2: Hoare triple {31080#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {31076#(<= (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:54:02,987 INFO L273 TraceCheckUtils]: 1: Hoare triple {31084#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p5 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {31080#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:54:02,989 INFO L273 TraceCheckUtils]: 0: Hoare triple {31042#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {31084#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p5 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:54:02,990 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 3 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:54:03,010 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:54:03,010 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-31 14:54:03,010 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:54:03,010 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-31 14:54:03,010 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:54:03,010 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-31 14:54:03,029 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:54:03,030 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-31 14:54:03,030 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-31 14:54:03,030 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=65, Invalid=91, Unknown=0, NotChecked=0, Total=156 [2019-01-31 14:54:03,030 INFO L87 Difference]: Start difference. First operand 123 states and 652 transitions. Second operand 10 states. [2019-01-31 14:54:11,082 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:54:11,083 INFO L93 Difference]: Finished difference Result 180 states and 787 transitions. [2019-01-31 14:54:11,083 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-31 14:54:11,083 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-31 14:54:11,083 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:54:11,083 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:54:11,083 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 78 transitions. [2019-01-31 14:54:11,083 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-31 14:54:11,084 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 78 transitions. [2019-01-31 14:54:11,084 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 78 transitions. [2019-01-31 14:54:11,192 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 78 edges. 78 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:54:11,197 INFO L225 Difference]: With dead ends: 180 [2019-01-31 14:54:11,197 INFO L226 Difference]: Without dead ends: 173 [2019-01-31 14:54:11,197 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 16 GetRequests, 3 SyntacticMatches, 0 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 52 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=83, Invalid=127, Unknown=0, NotChecked=0, Total=210 [2019-01-31 14:54:11,197 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 173 states. [2019-01-31 14:54:18,068 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 173 to 134. [2019-01-31 14:54:18,068 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:54:18,068 INFO L82 GeneralOperation]: Start isEquivalent. First operand 173 states. Second operand 134 states. [2019-01-31 14:54:18,068 INFO L74 IsIncluded]: Start isIncluded. First operand 173 states. Second operand 134 states. [2019-01-31 14:54:18,068 INFO L87 Difference]: Start difference. First operand 173 states. Second operand 134 states. [2019-01-31 14:54:18,074 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:54:18,074 INFO L93 Difference]: Finished difference Result 173 states and 777 transitions. [2019-01-31 14:54:18,074 INFO L276 IsEmpty]: Start isEmpty. Operand 173 states and 777 transitions. [2019-01-31 14:54:18,074 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:54:18,074 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:54:18,075 INFO L74 IsIncluded]: Start isIncluded. First operand 134 states. Second operand 173 states. [2019-01-31 14:54:18,075 INFO L87 Difference]: Start difference. First operand 134 states. Second operand 173 states. [2019-01-31 14:54:18,079 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:54:18,079 INFO L93 Difference]: Finished difference Result 173 states and 777 transitions. [2019-01-31 14:54:18,079 INFO L276 IsEmpty]: Start isEmpty. Operand 173 states and 777 transitions. [2019-01-31 14:54:18,079 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:54:18,080 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:54:18,080 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:54:18,080 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:54:18,080 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 134 states. [2019-01-31 14:54:18,083 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 134 states to 134 states and 703 transitions. [2019-01-31 14:54:18,083 INFO L78 Accepts]: Start accepts. Automaton has 134 states and 703 transitions. Word has length 6 [2019-01-31 14:54:18,083 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:54:18,084 INFO L480 AbstractCegarLoop]: Abstraction has 134 states and 703 transitions. [2019-01-31 14:54:18,084 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-31 14:54:18,084 INFO L276 IsEmpty]: Start isEmpty. Operand 134 states and 703 transitions. [2019-01-31 14:54:18,084 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-31 14:54:18,084 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:54:18,084 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-31 14:54:18,084 INFO L423 AbstractCegarLoop]: === Iteration 67 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:54:18,085 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:54:18,085 INFO L82 PathProgramCache]: Analyzing trace with hash -2018172698, now seen corresponding path program 1 times [2019-01-31 14:54:18,085 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:54:18,086 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:54:18,086 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-31 14:54:18,086 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:54:18,086 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:54:18,089 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:54:18,355 INFO L273 TraceCheckUtils]: 0: Hoare triple {31987#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {31989#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:54:18,356 INFO L273 TraceCheckUtils]: 1: Hoare triple {31989#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {31990#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:54:18,357 INFO L273 TraceCheckUtils]: 2: Hoare triple {31990#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {31991#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:54:18,357 INFO L273 TraceCheckUtils]: 3: Hoare triple {31991#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {31991#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:54:18,358 INFO L273 TraceCheckUtils]: 4: Hoare triple {31991#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {31992#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-31 14:54:18,358 INFO L273 TraceCheckUtils]: 5: Hoare triple {31992#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= (select |#memory_int| ULTIMATE.start_main_p2) 0))} assume #memory_int[main_p1] >= 0; {31993#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:54:18,359 INFO L273 TraceCheckUtils]: 6: Hoare triple {31993#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {31988#false} is VALID [2019-01-31 14:54:18,359 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 9 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-31 14:54:18,359 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:54:18,359 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:54:18,360 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-01-31 14:54:18,360 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [18], [20], [24], [25] [2019-01-31 14:54:18,361 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:54:18,361 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:54:18,370 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:54:18,370 INFO L272 AbstractInterpreter]: Visited 7 different actions 7 times. Never merged. Never widened. Performed 70 root evaluator evaluations with a maximum evaluation depth of 3. Performed 70 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 4 fixpoints after 4 different actions. Largest state had 0 variables. [2019-01-31 14:54:18,370 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:54:18,370 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:54:18,370 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:54:18,370 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 65 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 65 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:54:18,381 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:54:18,381 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:54:18,386 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:54:18,390 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:54:18,397 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:54:18,424 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 18 treesize of output 21 [2019-01-31 14:54:18,435 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:18,435 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 21 treesize of output 27 [2019-01-31 14:54:18,449 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:18,450 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:18,451 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:54:18,476 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:18,478 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:18,479 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:18,480 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:54:18,507 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:18,509 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:18,510 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:18,512 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:18,513 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:54:18,521 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:54:18,554 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:54:18,572 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:54:18,588 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:54:18,601 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:54:18,627 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:54:18,627 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 2 variables, input treesize:31, output treesize:38 [2019-01-31 14:54:18,638 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:54:18,638 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_394|, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store (store |v_#memory_int_394| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:54:18,638 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:54:18,722 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:18,723 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:18,724 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:18,725 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:18,727 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:18,728 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:18,729 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:18,731 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:18,732 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:18,733 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:18,735 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:18,735 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 66 [2019-01-31 14:54:18,744 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:54:18,791 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:54:18,791 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:48, output treesize:38 [2019-01-31 14:54:28,802 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:54:28,802 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_395|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_395| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_395| ULTIMATE.start_main_p1) 0) (= 0 (select |v_#memory_int_395| ULTIMATE.start_main_p5)) (= (select |v_#memory_int_395| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_395| ULTIMATE.start_main_p2) 0) (= 0 .cse0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= |#memory_int| (store |v_#memory_int_395| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:54:28,802 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:54:28,892 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:28,893 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:28,894 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:28,895 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:28,896 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:28,897 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:28,898 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:28,900 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:28,901 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:28,902 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:28,903 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:28,904 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:28,905 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:28,906 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 80 [2019-01-31 14:54:28,913 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:54:28,963 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:54:28,963 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:50, output treesize:40 [2019-01-31 14:54:38,987 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:54:38,988 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_396|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_396| ULTIMATE.start_main_p5))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_396| ULTIMATE.start_main_p2) 0) (= 0 (select |v_#memory_int_396| ULTIMATE.start_main_p3)) (= (+ (select |v_#memory_int_396| ULTIMATE.start_main_p4) 1) 0) (= .cse0 0) (= (select |v_#memory_int_396| ULTIMATE.start_main_p1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (store |v_#memory_int_396| ULTIMATE.start_main_p5 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:54:38,988 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:54:39,100 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:39,101 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:39,102 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:39,104 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:39,105 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:39,106 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:39,108 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:39,109 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:39,110 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:39,112 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:39,113 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:39,114 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:39,115 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:39,116 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:39,117 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:54:39,118 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 94 [2019-01-31 14:54:39,126 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:54:39,181 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:54:39,182 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:50, output treesize:40 [2019-01-31 14:54:39,213 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:54:39,214 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_397|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_397| ULTIMATE.start_main_p1))) (and (= (select |v_#memory_int_397| ULTIMATE.start_main_p5) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_397| ULTIMATE.start_main_p3)) (= |#memory_int| (store |v_#memory_int_397| ULTIMATE.start_main_p1 (+ .cse0 1))) (= 0 (+ (select |v_#memory_int_397| ULTIMATE.start_main_p4) 1)) (= 0 .cse0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 (select |v_#memory_int_397| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:54:39,214 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:54:39,292 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:39,294 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:39,295 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:39,297 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:39,298 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:39,299 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:39,300 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:39,302 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:39,303 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:39,304 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:39,305 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:39,307 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:39,307 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:54:39,308 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:39,309 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 93 [2019-01-31 14:54:39,317 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:54:39,375 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:54:39,376 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:50, output treesize:38 [2019-01-31 14:54:39,409 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:54:39,410 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_398|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_398| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |v_#memory_int_398| ULTIMATE.start_main_p5)) (= 0 .cse0) (= 1 (select |v_#memory_int_398| ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_398| ULTIMATE.start_main_p3)) (= 0 (+ (select |v_#memory_int_398| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= |#memory_int| (store |v_#memory_int_398| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))))) [2019-01-31 14:54:39,410 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:54:39,482 INFO L273 TraceCheckUtils]: 0: Hoare triple {31987#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {31997#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:54:39,485 INFO L273 TraceCheckUtils]: 1: Hoare triple {31997#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {32001#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-31 14:54:39,488 INFO L273 TraceCheckUtils]: 2: Hoare triple {32001#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {32005#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:54:39,491 INFO L273 TraceCheckUtils]: 3: Hoare triple {32005#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {32009#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:54:39,495 INFO L273 TraceCheckUtils]: 4: Hoare triple {32009#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {32013#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))} is VALID [2019-01-31 14:54:39,495 INFO L273 TraceCheckUtils]: 5: Hoare triple {32013#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))} assume #memory_int[main_p1] >= 0; {32013#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))} is VALID [2019-01-31 14:54:39,496 INFO L273 TraceCheckUtils]: 6: Hoare triple {32013#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))} assume !(#memory_int[main_p2] <= 0); {31988#false} is VALID [2019-01-31 14:54:39,496 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:54:39,497 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:54:40,291 INFO L273 TraceCheckUtils]: 6: Hoare triple {31993#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {31988#false} is VALID [2019-01-31 14:54:40,292 INFO L273 TraceCheckUtils]: 5: Hoare triple {31993#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {31993#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:54:40,293 INFO L273 TraceCheckUtils]: 4: Hoare triple {32026#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {31993#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:54:40,294 INFO L273 TraceCheckUtils]: 3: Hoare triple {32030#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {32026#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} is VALID [2019-01-31 14:54:40,295 INFO L273 TraceCheckUtils]: 2: Hoare triple {32034#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {32030#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1)} is VALID [2019-01-31 14:54:40,297 INFO L273 TraceCheckUtils]: 1: Hoare triple {32038#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {32034#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1)} is VALID [2019-01-31 14:54:40,300 INFO L273 TraceCheckUtils]: 0: Hoare triple {31987#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {32038#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1)} is VALID [2019-01-31 14:54:40,300 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 3 proven. 7 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:54:40,320 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:54:40,320 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5, 5] total 14 [2019-01-31 14:54:40,320 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:54:40,320 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 7 [2019-01-31 14:54:40,320 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:54:40,321 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-01-31 14:54:40,348 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:54:40,348 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-01-31 14:54:40,348 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-01-31 14:54:40,348 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=93, Invalid=147, Unknown=0, NotChecked=0, Total=240 [2019-01-31 14:54:40,349 INFO L87 Difference]: Start difference. First operand 134 states and 703 transitions. Second operand 12 states. [2019-01-31 14:54:49,222 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:54:49,222 INFO L93 Difference]: Finished difference Result 189 states and 804 transitions. [2019-01-31 14:54:49,222 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2019-01-31 14:54:49,222 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 7 [2019-01-31 14:54:49,222 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:54:49,222 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-31 14:54:49,223 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 85 transitions. [2019-01-31 14:54:49,223 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-31 14:54:49,223 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 85 transitions. [2019-01-31 14:54:49,223 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 85 transitions. [2019-01-31 14:54:49,433 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 85 edges. 85 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:54:49,438 INFO L225 Difference]: With dead ends: 189 [2019-01-31 14:54:49,438 INFO L226 Difference]: Without dead ends: 188 [2019-01-31 14:54:49,438 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 22 GetRequests, 3 SyntacticMatches, 1 SemanticMatches, 18 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 89 ImplicationChecksByTransitivity, 1.3s TimeCoverageRelationStatistics Valid=138, Invalid=242, Unknown=0, NotChecked=0, Total=380 [2019-01-31 14:54:49,439 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 188 states. [2019-01-31 14:54:55,589 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 188 to 133. [2019-01-31 14:54:55,590 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:54:55,590 INFO L82 GeneralOperation]: Start isEquivalent. First operand 188 states. Second operand 133 states. [2019-01-31 14:54:55,590 INFO L74 IsIncluded]: Start isIncluded. First operand 188 states. Second operand 133 states. [2019-01-31 14:54:55,590 INFO L87 Difference]: Start difference. First operand 188 states. Second operand 133 states. [2019-01-31 14:54:55,595 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:54:55,595 INFO L93 Difference]: Finished difference Result 188 states and 802 transitions. [2019-01-31 14:54:55,595 INFO L276 IsEmpty]: Start isEmpty. Operand 188 states and 802 transitions. [2019-01-31 14:54:55,596 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:54:55,596 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:54:55,596 INFO L74 IsIncluded]: Start isIncluded. First operand 133 states. Second operand 188 states. [2019-01-31 14:54:55,596 INFO L87 Difference]: Start difference. First operand 133 states. Second operand 188 states. [2019-01-31 14:54:55,601 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:54:55,601 INFO L93 Difference]: Finished difference Result 188 states and 802 transitions. [2019-01-31 14:54:55,601 INFO L276 IsEmpty]: Start isEmpty. Operand 188 states and 802 transitions. [2019-01-31 14:54:55,601 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:54:55,601 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:54:55,602 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:54:55,602 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:54:55,602 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 133 states. [2019-01-31 14:54:55,606 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 133 states to 133 states and 697 transitions. [2019-01-31 14:54:55,606 INFO L78 Accepts]: Start accepts. Automaton has 133 states and 697 transitions. Word has length 7 [2019-01-31 14:54:55,606 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:54:55,606 INFO L480 AbstractCegarLoop]: Abstraction has 133 states and 697 transitions. [2019-01-31 14:54:55,606 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-01-31 14:54:55,606 INFO L276 IsEmpty]: Start isEmpty. Operand 133 states and 697 transitions. [2019-01-31 14:54:55,606 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-31 14:54:55,607 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:54:55,607 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-31 14:54:55,607 INFO L423 AbstractCegarLoop]: === Iteration 68 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:54:55,607 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:54:55,607 INFO L82 PathProgramCache]: Analyzing trace with hash -2018168854, now seen corresponding path program 1 times [2019-01-31 14:54:55,607 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:54:55,607 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:54:55,607 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:54:55,608 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:54:55,608 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:54:55,609 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:54:55,951 INFO L273 TraceCheckUtils]: 0: Hoare triple {32984#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {32986#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-31 14:54:55,952 INFO L273 TraceCheckUtils]: 1: Hoare triple {32986#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {32987#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:54:55,952 INFO L273 TraceCheckUtils]: 2: Hoare triple {32987#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {32988#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:54:55,953 INFO L273 TraceCheckUtils]: 3: Hoare triple {32988#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {32988#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:54:55,954 INFO L273 TraceCheckUtils]: 4: Hoare triple {32988#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {32989#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:54:55,954 INFO L273 TraceCheckUtils]: 5: Hoare triple {32989#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {32989#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:54:55,954 INFO L273 TraceCheckUtils]: 6: Hoare triple {32989#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {32985#false} is VALID [2019-01-31 14:54:55,955 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 9 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-31 14:54:55,955 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:54:55,955 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:54:55,956 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-01-31 14:54:55,956 INFO L207 CegarAbsIntRunner]: [0], [6], [14], [18], [20], [24], [25] [2019-01-31 14:54:55,956 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:54:55,956 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:54:55,965 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:54:55,966 INFO L272 AbstractInterpreter]: Visited 7 different actions 7 times. Never merged. Never widened. Performed 70 root evaluator evaluations with a maximum evaluation depth of 3. Performed 70 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 4 fixpoints after 4 different actions. Largest state had 0 variables. [2019-01-31 14:54:55,966 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:54:55,966 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:54:55,966 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:54:55,966 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 66 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 66 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:54:55,976 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:54:55,976 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:54:55,980 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:54:55,991 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:54:55,991 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:54:56,012 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 18 treesize of output 21 [2019-01-31 14:54:56,021 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:56,021 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 21 treesize of output 27 [2019-01-31 14:54:56,035 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:56,036 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:56,036 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:54:56,054 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:56,056 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:56,057 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:56,058 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:54:56,082 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:56,084 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:56,085 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:56,086 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:56,087 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:54:56,094 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:54:56,126 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:54:56,143 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:54:56,156 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:54:56,169 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:54:56,195 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:54:56,196 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 1 variables, input treesize:31, output treesize:38 [2019-01-31 14:54:56,202 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:54:56,202 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_403|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store (store |v_#memory_int_403| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:54:56,203 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:54:56,280 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:56,281 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:56,282 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:56,283 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:56,285 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:56,286 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:56,287 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:56,288 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:56,289 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:56,290 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:56,291 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:54:56,292 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 66 [2019-01-31 14:54:56,298 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:54:56,341 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:54:56,341 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:48, output treesize:38 [2019-01-31 14:55:06,362 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:55:06,362 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_404|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_404| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_404| ULTIMATE.start_main_p1)) (= .cse0 0) (= (store |v_#memory_int_404| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= 0 (select |v_#memory_int_404| ULTIMATE.start_main_p5)) (= (select |v_#memory_int_404| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 (select |v_#memory_int_404| ULTIMATE.start_main_p2)))) [2019-01-31 14:55:06,363 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:55:06,454 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:06,456 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:06,457 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:06,458 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:06,460 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:06,461 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:06,462 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:06,464 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:06,465 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:06,466 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:06,468 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:06,469 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:06,470 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:06,471 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 80 [2019-01-31 14:55:06,478 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:55:06,526 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:55:06,526 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:50, output treesize:40 [2019-01-31 14:55:16,563 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:55:16,563 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_405|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_405| ULTIMATE.start_main_p5))) (and (= 0 .cse0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_405| ULTIMATE.start_main_p1)) (= (select |v_#memory_int_405| ULTIMATE.start_main_p2) 0) (= (+ (select |v_#memory_int_405| ULTIMATE.start_main_p4) 1) 0) (= |#memory_int| (store |v_#memory_int_405| ULTIMATE.start_main_p5 (+ .cse0 1))) (= (select |v_#memory_int_405| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:55:16,563 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:55:16,663 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:16,664 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:16,666 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:16,667 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:16,668 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:16,670 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:16,671 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:16,672 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:16,674 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:16,675 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:16,676 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:16,677 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:16,678 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:16,680 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:16,680 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:55:16,681 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 94 [2019-01-31 14:55:16,689 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:55:16,748 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:55:16,749 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:50, output treesize:40 [2019-01-31 14:55:28,285 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:55:28,285 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_406|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_406| ULTIMATE.start_main_p1))) (and (= (select |v_#memory_int_406| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |v_#memory_int_406| ULTIMATE.start_main_p5)) (= (+ (select |v_#memory_int_406| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= .cse0 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= |#memory_int| (store |v_#memory_int_406| ULTIMATE.start_main_p1 (+ .cse0 1))) (= (select |v_#memory_int_406| ULTIMATE.start_main_p3) 0))) [2019-01-31 14:55:28,286 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:55:28,380 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:28,382 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:28,383 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:28,384 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:28,385 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:28,386 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:28,388 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:28,389 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:28,390 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:28,391 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:28,392 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:28,393 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:28,394 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:28,395 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:28,396 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:55:28,397 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 98 [2019-01-31 14:55:28,404 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:55:28,461 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:55:28,462 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:50, output treesize:40 [2019-01-31 14:55:38,537 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:55:38,537 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_407|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_407| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_407| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_407| ULTIMATE.start_main_p5) 1) (= (+ (select |v_#memory_int_407| ULTIMATE.start_main_p4) 1) 0) (= (select |v_#memory_int_407| ULTIMATE.start_main_p1) 1) (= .cse0 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (store |v_#memory_int_407| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-31 14:55:38,537 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:55:38,646 INFO L273 TraceCheckUtils]: 0: Hoare triple {32984#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {32993#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:55:38,648 INFO L273 TraceCheckUtils]: 1: Hoare triple {32993#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {32997#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:55:38,650 INFO L273 TraceCheckUtils]: 2: Hoare triple {32997#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {33001#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-31 14:55:38,652 INFO L273 TraceCheckUtils]: 3: Hoare triple {33001#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {33005#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-31 14:55:38,655 INFO L273 TraceCheckUtils]: 4: Hoare triple {33005#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {33009#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:55:38,656 INFO L273 TraceCheckUtils]: 5: Hoare triple {33009#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume #memory_int[main_p1] >= 0; {33009#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-31 14:55:38,656 INFO L273 TraceCheckUtils]: 6: Hoare triple {33009#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume !(#memory_int[main_p2] <= 0); {32985#false} is VALID [2019-01-31 14:55:38,657 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:55:38,657 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:55:38,774 INFO L273 TraceCheckUtils]: 6: Hoare triple {33016#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {32985#false} is VALID [2019-01-31 14:55:38,775 INFO L273 TraceCheckUtils]: 5: Hoare triple {33016#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {33016#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:55:38,776 INFO L273 TraceCheckUtils]: 4: Hoare triple {33023#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {33016#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:55:38,777 INFO L273 TraceCheckUtils]: 3: Hoare triple {33027#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {33023#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:55:38,780 INFO L273 TraceCheckUtils]: 2: Hoare triple {33031#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {33027#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:55:38,783 INFO L273 TraceCheckUtils]: 1: Hoare triple {33035#(<= (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {33031#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:55:38,785 INFO L273 TraceCheckUtils]: 0: Hoare triple {32984#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {33035#(<= (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-31 14:55:38,786 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 1 proven. 9 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:55:38,804 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:55:38,804 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 5, 5] total 14 [2019-01-31 14:55:38,805 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:55:38,805 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 7 [2019-01-31 14:55:38,805 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:55:38,805 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states. [2019-01-31 14:55:38,832 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:55:38,832 INFO L459 AbstractCegarLoop]: Interpolant automaton has 11 states [2019-01-31 14:55:38,832 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2019-01-31 14:55:38,832 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=83, Invalid=157, Unknown=0, NotChecked=0, Total=240 [2019-01-31 14:55:38,832 INFO L87 Difference]: Start difference. First operand 133 states and 697 transitions. Second operand 11 states. [2019-01-31 14:55:47,037 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:55:47,037 INFO L93 Difference]: Finished difference Result 169 states and 746 transitions. [2019-01-31 14:55:47,037 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-31 14:55:47,037 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 7 [2019-01-31 14:55:47,037 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:55:47,037 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2019-01-31 14:55:47,038 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 72 transitions. [2019-01-31 14:55:47,038 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2019-01-31 14:55:47,038 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 72 transitions. [2019-01-31 14:55:47,038 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 72 transitions. [2019-01-31 14:55:47,163 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 72 edges. 72 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:55:47,168 INFO L225 Difference]: With dead ends: 169 [2019-01-31 14:55:47,168 INFO L226 Difference]: Without dead ends: 168 [2019-01-31 14:55:47,168 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 22 GetRequests, 3 SyntacticMatches, 1 SemanticMatches, 18 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 90 ImplicationChecksByTransitivity, 0.9s TimeCoverageRelationStatistics Valid=131, Invalid=249, Unknown=0, NotChecked=0, Total=380 [2019-01-31 14:55:47,168 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 168 states. [2019-01-31 14:55:53,570 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 168 to 132. [2019-01-31 14:55:53,570 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:55:53,570 INFO L82 GeneralOperation]: Start isEquivalent. First operand 168 states. Second operand 132 states. [2019-01-31 14:55:53,570 INFO L74 IsIncluded]: Start isIncluded. First operand 168 states. Second operand 132 states. [2019-01-31 14:55:53,570 INFO L87 Difference]: Start difference. First operand 168 states. Second operand 132 states. [2019-01-31 14:55:53,575 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:55:53,575 INFO L93 Difference]: Finished difference Result 168 states and 743 transitions. [2019-01-31 14:55:53,575 INFO L276 IsEmpty]: Start isEmpty. Operand 168 states and 743 transitions. [2019-01-31 14:55:53,576 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:55:53,576 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:55:53,576 INFO L74 IsIncluded]: Start isIncluded. First operand 132 states. Second operand 168 states. [2019-01-31 14:55:53,576 INFO L87 Difference]: Start difference. First operand 132 states. Second operand 168 states. [2019-01-31 14:55:53,580 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:55:53,580 INFO L93 Difference]: Finished difference Result 168 states and 743 transitions. [2019-01-31 14:55:53,580 INFO L276 IsEmpty]: Start isEmpty. Operand 168 states and 743 transitions. [2019-01-31 14:55:53,580 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:55:53,580 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:55:53,581 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:55:53,581 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:55:53,581 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 132 states. [2019-01-31 14:55:53,584 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 132 states to 132 states and 691 transitions. [2019-01-31 14:55:53,584 INFO L78 Accepts]: Start accepts. Automaton has 132 states and 691 transitions. Word has length 7 [2019-01-31 14:55:53,584 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:55:53,584 INFO L480 AbstractCegarLoop]: Abstraction has 132 states and 691 transitions. [2019-01-31 14:55:53,584 INFO L481 AbstractCegarLoop]: Interpolant automaton has 11 states. [2019-01-31 14:55:53,584 INFO L276 IsEmpty]: Start isEmpty. Operand 132 states and 691 transitions. [2019-01-31 14:55:53,585 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-31 14:55:53,585 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:55:53,585 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-31 14:55:53,585 INFO L423 AbstractCegarLoop]: === Iteration 69 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:55:53,585 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:55:53,586 INFO L82 PathProgramCache]: Analyzing trace with hash -2017620956, now seen corresponding path program 1 times [2019-01-31 14:55:53,586 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:55:53,586 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:55:53,586 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:55:53,586 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:55:53,586 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:55:53,588 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:55:53,736 INFO L273 TraceCheckUtils]: 0: Hoare triple {33911#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {33913#(and (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-31 14:55:53,737 INFO L273 TraceCheckUtils]: 1: Hoare triple {33913#(and (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {33914#(and (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-01-31 14:55:53,738 INFO L273 TraceCheckUtils]: 2: Hoare triple {33914#(and (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p4) 1) 0))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {33915#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-31 14:55:53,739 INFO L273 TraceCheckUtils]: 3: Hoare triple {33915#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p1] >= 0; {33915#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-31 14:55:53,739 INFO L273 TraceCheckUtils]: 4: Hoare triple {33915#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p2] <= 0; {33915#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-31 14:55:53,740 INFO L273 TraceCheckUtils]: 5: Hoare triple {33915#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p3] >= 0; {33915#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-31 14:55:53,741 INFO L273 TraceCheckUtils]: 6: Hoare triple {33915#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume !(#memory_int[main_p4] <= 0); {33912#false} is VALID [2019-01-31 14:55:53,741 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:55:53,741 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:55:53,741 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:55:53,741 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-01-31 14:55:53,742 INFO L207 CegarAbsIntRunner]: [0], [18], [20], [24], [26], [28], [29] [2019-01-31 14:55:53,742 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:55:53,743 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:55:53,758 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:55:53,759 INFO L272 AbstractInterpreter]: Visited 7 different actions 7 times. Never merged. Never widened. Performed 70 root evaluator evaluations with a maximum evaluation depth of 3. Performed 70 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-31 14:55:53,759 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:55:53,759 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:55:53,759 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:55:53,759 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 67 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 67 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:55:53,768 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:55:53,769 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:55:53,773 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:55:53,776 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:55:53,776 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:55:53,790 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 18 treesize of output 21 [2019-01-31 14:55:53,798 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 23 [2019-01-31 14:55:53,809 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 25 [2019-01-31 14:55:53,827 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 0 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 27 [2019-01-31 14:55:53,841 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:53,848 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 1 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 30 [2019-01-31 14:55:53,853 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:55:53,868 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:55:53,881 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:55:53,894 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:55:53,905 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:55:53,921 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:55:53,921 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 4 variables, input treesize:22, output treesize:29 [2019-01-31 14:55:53,927 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:55:53,927 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_412|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (and (= (store (store (store (store (store |v_#memory_int_412| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5)) [2019-01-31 14:55:53,927 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:55:53,971 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:53,972 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:53,972 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 15 [2019-01-31 14:55:53,975 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:55:53,982 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:55:53,983 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:24, output treesize:14 [2019-01-31 14:55:53,992 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:55:53,993 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_413|]. (let ((.cse0 (select |v_#memory_int_413| ULTIMATE.start_main_p4))) (and (= 0 .cse0) (= (select |v_#memory_int_413| ULTIMATE.start_main_p5) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= |#memory_int| (store |v_#memory_int_413| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))))) [2019-01-31 14:55:53,993 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ []. (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5)) [2019-01-31 14:55:54,025 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:54,026 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:54,027 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:54,028 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:55:54,029 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 4 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 29 [2019-01-31 14:55:54,032 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:55:54,043 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:55:54,043 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:26, output treesize:16 [2019-01-31 14:56:04,251 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:56:04,251 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_414|, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_414| ULTIMATE.start_main_p5))) (and (= (store |v_#memory_int_414| ULTIMATE.start_main_p5 (+ .cse0 1)) |#memory_int|) (= (+ (select |v_#memory_int_414| ULTIMATE.start_main_p4) 1) 0) (= .cse0 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) [2019-01-31 14:56:04,251 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p5]. (and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5)) [2019-01-31 14:56:04,326 INFO L273 TraceCheckUtils]: 0: Hoare triple {33911#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {33919#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-31 14:56:04,327 INFO L273 TraceCheckUtils]: 1: Hoare triple {33919#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {33923#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))} is VALID [2019-01-31 14:56:04,328 INFO L273 TraceCheckUtils]: 2: Hoare triple {33923#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {33927#(and (exists ((ULTIMATE.start_main_p5 Int)) (and (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-01-31 14:56:04,329 INFO L273 TraceCheckUtils]: 3: Hoare triple {33927#(and (exists ((ULTIMATE.start_main_p5 Int)) (and (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))} assume #memory_int[main_p1] >= 0; {33927#(and (exists ((ULTIMATE.start_main_p5 Int)) (and (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-01-31 14:56:04,330 INFO L273 TraceCheckUtils]: 4: Hoare triple {33927#(and (exists ((ULTIMATE.start_main_p5 Int)) (and (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))} assume #memory_int[main_p2] <= 0; {33927#(and (exists ((ULTIMATE.start_main_p5 Int)) (and (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-01-31 14:56:04,330 INFO L273 TraceCheckUtils]: 5: Hoare triple {33927#(and (exists ((ULTIMATE.start_main_p5 Int)) (and (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))} assume #memory_int[main_p3] >= 0; {33927#(and (exists ((ULTIMATE.start_main_p5 Int)) (and (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-01-31 14:56:04,331 INFO L273 TraceCheckUtils]: 6: Hoare triple {33927#(and (exists ((ULTIMATE.start_main_p5 Int)) (and (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))} assume !(#memory_int[main_p4] <= 0); {33912#false} is VALID [2019-01-31 14:56:04,332 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:56:04,332 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-31 14:56:04,379 INFO L273 TraceCheckUtils]: 6: Hoare triple {33940#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {33912#false} is VALID [2019-01-31 14:56:04,379 INFO L273 TraceCheckUtils]: 5: Hoare triple {33940#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {33940#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-31 14:56:04,380 INFO L273 TraceCheckUtils]: 4: Hoare triple {33940#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {33940#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-31 14:56:04,380 INFO L273 TraceCheckUtils]: 3: Hoare triple {33940#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {33940#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-31 14:56:04,381 INFO L273 TraceCheckUtils]: 2: Hoare triple {33953#(<= (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {33940#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-31 14:56:04,383 INFO L273 TraceCheckUtils]: 1: Hoare triple {33957#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {33953#(<= (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-31 14:56:04,385 INFO L273 TraceCheckUtils]: 0: Hoare triple {33911#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {33957#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-31 14:56:04,385 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:56:04,405 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-31 14:56:04,405 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-31 14:56:04,405 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-31 14:56:04,405 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 7 [2019-01-31 14:56:04,405 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-31 14:56:04,405 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-31 14:56:04,422 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:56:04,422 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-31 14:56:04,422 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-31 14:56:04,422 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-01-31 14:56:04,423 INFO L87 Difference]: Start difference. First operand 132 states and 691 transitions. Second operand 8 states. [2019-01-31 14:56:11,738 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:56:11,738 INFO L93 Difference]: Finished difference Result 159 states and 727 transitions. [2019-01-31 14:56:11,738 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-31 14:56:11,738 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 7 [2019-01-31 14:56:11,739 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-31 14:56:11,739 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:56:11,739 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 59 transitions. [2019-01-31 14:56:11,739 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-31 14:56:11,739 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 59 transitions. [2019-01-31 14:56:11,739 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 59 transitions. [2019-01-31 14:56:11,804 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 59 edges. 59 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-31 14:56:11,808 INFO L225 Difference]: With dead ends: 159 [2019-01-31 14:56:11,808 INFO L226 Difference]: Without dead ends: 158 [2019-01-31 14:56:11,808 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 16 GetRequests, 6 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 28 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=53, Invalid=79, Unknown=0, NotChecked=0, Total=132 [2019-01-31 14:56:11,808 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 158 states. [2019-01-31 14:56:18,608 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 158 to 136. [2019-01-31 14:56:18,608 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-31 14:56:18,609 INFO L82 GeneralOperation]: Start isEquivalent. First operand 158 states. Second operand 136 states. [2019-01-31 14:56:18,609 INFO L74 IsIncluded]: Start isIncluded. First operand 158 states. Second operand 136 states. [2019-01-31 14:56:18,609 INFO L87 Difference]: Start difference. First operand 158 states. Second operand 136 states. [2019-01-31 14:56:18,613 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:56:18,613 INFO L93 Difference]: Finished difference Result 158 states and 724 transitions. [2019-01-31 14:56:18,613 INFO L276 IsEmpty]: Start isEmpty. Operand 158 states and 724 transitions. [2019-01-31 14:56:18,614 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:56:18,614 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:56:18,614 INFO L74 IsIncluded]: Start isIncluded. First operand 136 states. Second operand 158 states. [2019-01-31 14:56:18,614 INFO L87 Difference]: Start difference. First operand 136 states. Second operand 158 states. [2019-01-31 14:56:18,618 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-31 14:56:18,619 INFO L93 Difference]: Finished difference Result 158 states and 724 transitions. [2019-01-31 14:56:18,619 INFO L276 IsEmpty]: Start isEmpty. Operand 158 states and 724 transitions. [2019-01-31 14:56:18,619 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-31 14:56:18,619 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-31 14:56:18,619 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-31 14:56:18,619 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-31 14:56:18,619 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 136 states. [2019-01-31 14:56:18,623 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 136 states to 136 states and 706 transitions. [2019-01-31 14:56:18,623 INFO L78 Accepts]: Start accepts. Automaton has 136 states and 706 transitions. Word has length 7 [2019-01-31 14:56:18,623 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-31 14:56:18,623 INFO L480 AbstractCegarLoop]: Abstraction has 136 states and 706 transitions. [2019-01-31 14:56:18,623 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-31 14:56:18,623 INFO L276 IsEmpty]: Start isEmpty. Operand 136 states and 706 transitions. [2019-01-31 14:56:18,623 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-31 14:56:18,623 INFO L394 BasicCegarLoop]: Found error trace [2019-01-31 14:56:18,623 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-31 14:56:18,624 INFO L423 AbstractCegarLoop]: === Iteration 70 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-31 14:56:18,624 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:56:18,624 INFO L82 PathProgramCache]: Analyzing trace with hash -2018050250, now seen corresponding path program 1 times [2019-01-31 14:56:18,624 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-31 14:56:18,624 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:56:18,624 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:56:18,624 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-31 14:56:18,624 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-31 14:56:18,626 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:56:19,343 INFO L273 TraceCheckUtils]: 0: Hoare triple {34801#true} havoc main_p1, main_p2, main_p3, main_p4, main_p5;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p5 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;assume main_p4 < main_p5;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0];#memory_int := #memory_int[main_p5 := 0]; {34803#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:56:19,345 INFO L273 TraceCheckUtils]: 1: Hoare triple {34803#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {34804#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:56:19,346 INFO L273 TraceCheckUtils]: 2: Hoare triple {34804#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {34805#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-31 14:56:19,347 INFO L273 TraceCheckUtils]: 3: Hoare triple {34805#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {34806#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-31 14:56:19,348 INFO L273 TraceCheckUtils]: 4: Hoare triple {34806#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {34807#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-31 14:56:19,349 INFO L273 TraceCheckUtils]: 5: Hoare triple {34807#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {34808#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-31 14:56:19,349 INFO L273 TraceCheckUtils]: 6: Hoare triple {34808#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {34802#false} is VALID [2019-01-31 14:56:19,350 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 0 proven. 15 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-31 14:56:19,350 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:56:19,350 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-31 14:56:19,350 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-01-31 14:56:19,350 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [14], [18], [20], [23] [2019-01-31 14:56:19,351 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-31 14:56:19,351 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-31 14:56:19,364 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-31 14:56:19,365 INFO L272 AbstractInterpreter]: Visited 7 different actions 7 times. Never merged. Never widened. Performed 70 root evaluator evaluations with a maximum evaluation depth of 3. Performed 70 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 5 fixpoints after 5 different actions. Largest state had 0 variables. [2019-01-31 14:56:19,365 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-31 14:56:19,365 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-31 14:56:19,365 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-31 14:56:19,366 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 68 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 68 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-31 14:56:19,374 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-31 14:56:19,374 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-31 14:56:19,383 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:56:19,387 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-31 14:56:19,387 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-31 14:56:19,410 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 18 treesize of output 21 [2019-01-31 14:56:19,419 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:19,420 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 21 treesize of output 27 [2019-01-31 14:56:19,434 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:19,436 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:19,437 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 37 [2019-01-31 14:56:19,456 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:19,458 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:19,459 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:19,460 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 51 [2019-01-31 14:56:19,485 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:19,486 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:19,488 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:19,489 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:19,490 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 10 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 66 [2019-01-31 14:56:19,496 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-31 14:56:19,527 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:56:19,546 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:56:19,561 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:56:19,573 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:56:19,594 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-31 14:56:19,594 INFO L202 ElimStorePlain]: Needed 6 recursive calls to eliminate 1 variables, input treesize:31, output treesize:38 [2019-01-31 14:56:19,601 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:56:19,601 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_417|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store (store |v_#memory_int_417| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_main_p5 0) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-31 14:56:19,601 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-31 14:56:19,682 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:19,683 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:19,684 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:19,686 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:19,687 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:19,688 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:19,689 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:19,690 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:19,692 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:19,693 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:19,694 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:19,695 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 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 36 treesize of output 66 [2019-01-31 14:56:19,702 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:56:19,750 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-31 14:56:19,750 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:48, output treesize:38 [2019-01-31 14:56:19,834 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:56:19,835 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_418|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_418| ULTIMATE.start_main_p4))) (and (= (select |v_#memory_int_418| ULTIMATE.start_main_p5) 0) (= (select |v_#memory_int_418| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_418| ULTIMATE.start_main_p3) 0) (= .cse0 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_418| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_418| ULTIMATE.start_main_p2) 0))) [2019-01-31 14:56:19,835 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:56:19,918 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:19,920 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:19,921 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:19,922 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:19,923 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:19,925 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:19,926 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:19,927 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:19,928 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:19,929 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:19,930 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:19,931 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:19,932 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:19,933 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 80 [2019-01-31 14:56:19,941 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:56:19,992 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-31 14:56:19,992 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:50, output treesize:40 [2019-01-31 14:56:20,003 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:56:20,004 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_419|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_419| ULTIMATE.start_main_p5))) (and (= (store |v_#memory_int_419| ULTIMATE.start_main_p5 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_419| ULTIMATE.start_main_p2) 0) (= 0 .cse0) (= (+ (select |v_#memory_int_419| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (= (select |v_#memory_int_419| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_419| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:56:20,004 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:56:20,084 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:20,085 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:20,086 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:20,087 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:20,089 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:20,090 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:20,091 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:20,092 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:20,093 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:20,095 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:20,096 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:20,097 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:20,097 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:56:20,098 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:20,099 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 97 [2019-01-31 14:56:20,108 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:56:20,161 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-31 14:56:20,162 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:50, output treesize:38 [2019-01-31 14:56:20,176 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-31 14:56:20,176 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_420|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_420| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_420| ULTIMATE.start_main_p1) 0) (= (store |v_#memory_int_420| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= 0 .cse0) (= (select |v_#memory_int_420| ULTIMATE.start_main_p3) 0) (= 0 (+ (select |v_#memory_int_420| ULTIMATE.start_main_p4) 1)) (= (select |v_#memory_int_420| ULTIMATE.start_main_p5) 1) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-31 14:56:20,177 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p4 ULTIMATE.start_main_p5) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-31 14:56:20,260 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:20,261 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:20,262 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:20,264 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:20,265 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:20,266 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:20,268 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:20,269 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:20,270 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:20,272 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:20,273 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:20,274 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:20,275 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:20,276 INFO L701 Elim1Store]: detected not equals via solver [2019-01-31 14:56:20,277 INFO L683 Elim1Store]: detected equality via solver [2019-01-31 14:56:20,278 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 13 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 40 treesize of output 100 [2019-01-31 14:56:20,289 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-31 14:56:20,346 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 1 xjuncts. [2019-01-31 14:56:20,346 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:52, output treesize:42