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-unlimited.bpl -------------------------------------------------------------------------------- This is Ultimate 0.1.24-b7bd044-m [2019-01-18 14:27:56,245 INFO L170 SettingsManager]: Resetting all preferences to default values... [2019-01-18 14:27:56,247 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2019-01-18 14:27:56,259 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2019-01-18 14:27:56,259 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2019-01-18 14:27:56,260 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2019-01-18 14:27:56,261 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2019-01-18 14:27:56,263 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2019-01-18 14:27:56,265 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2019-01-18 14:27:56,266 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2019-01-18 14:27:56,266 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2019-01-18 14:27:56,267 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2019-01-18 14:27:56,268 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2019-01-18 14:27:56,269 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2019-01-18 14:27:56,271 INFO L174 SettingsManager]: Resetting ChcToBoogie preferences to default values [2019-01-18 14:27:56,272 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2019-01-18 14:27:56,274 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2019-01-18 14:27:56,276 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2019-01-18 14:27:56,280 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2019-01-18 14:27:56,287 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2019-01-18 14:27:56,288 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2019-01-18 14:27:56,289 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2019-01-18 14:27:56,296 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2019-01-18 14:27:56,297 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2019-01-18 14:27:56,297 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2019-01-18 14:27:56,298 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2019-01-18 14:27:56,302 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2019-01-18 14:27:56,303 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2019-01-18 14:27:56,304 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2019-01-18 14:27:56,305 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2019-01-18 14:27:56,305 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2019-01-18 14:27:56,306 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2019-01-18 14:27:56,306 INFO L177 SettingsManager]: ReqParser provides no preferences, ignoring... [2019-01-18 14:27:56,306 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2019-01-18 14:27:56,307 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2019-01-18 14:27:56,308 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2019-01-18 14:27:56,308 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-18 14:27:56,330 INFO L110 SettingsManager]: Loading preferences was successful [2019-01-18 14:27:56,331 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2019-01-18 14:27:56,331 INFO L131 SettingsManager]: Preferences of Boogie Preprocessor differ from their defaults: [2019-01-18 14:27:56,332 INFO L133 SettingsManager]: * Show backtranslation warnings=false [2019-01-18 14:27:56,333 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2019-01-18 14:27:56,333 INFO L133 SettingsManager]: * User list type=DISABLED [2019-01-18 14:27:56,333 INFO L133 SettingsManager]: * Inline calls to unimplemented procedures=true [2019-01-18 14:27:56,333 INFO L131 SettingsManager]: Preferences of Abstract Interpretation differ from their defaults: [2019-01-18 14:27:56,333 INFO L133 SettingsManager]: * Explicit value domain=true [2019-01-18 14:27:56,334 INFO L133 SettingsManager]: * Abstract domain for RCFG-of-the-future=PoormanAbstractDomain [2019-01-18 14:27:56,334 INFO L133 SettingsManager]: * Octagon Domain=false [2019-01-18 14:27:56,334 INFO L133 SettingsManager]: * Abstract domain=CompoundDomain [2019-01-18 14:27:56,334 INFO L133 SettingsManager]: * Check feasibility of abstract posts with an SMT solver=true [2019-01-18 14:27:56,334 INFO L133 SettingsManager]: * Interval Domain=false [2019-01-18 14:27:56,335 INFO L131 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2019-01-18 14:27:56,335 INFO L133 SettingsManager]: * Create parallel compositions if possible=false [2019-01-18 14:27:56,336 INFO L133 SettingsManager]: * Use SBE=true [2019-01-18 14:27:56,336 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2019-01-18 14:27:56,336 INFO L133 SettingsManager]: * sizeof long=4 [2019-01-18 14:27:56,336 INFO L133 SettingsManager]: * Overapproximate operations on floating types=true [2019-01-18 14:27:56,337 INFO L133 SettingsManager]: * sizeof POINTER=4 [2019-01-18 14:27:56,338 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2019-01-18 14:27:56,338 INFO L133 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2019-01-18 14:27:56,339 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2019-01-18 14:27:56,339 INFO L133 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2019-01-18 14:27:56,339 INFO L133 SettingsManager]: * sizeof long double=12 [2019-01-18 14:27:56,339 INFO L133 SettingsManager]: * Check if freed pointer was valid=false [2019-01-18 14:27:56,339 INFO L133 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2019-01-18 14:27:56,340 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2019-01-18 14:27:56,340 INFO L133 SettingsManager]: * Size of a code block=SequenceOfStatements [2019-01-18 14:27:56,340 INFO L133 SettingsManager]: * SMT solver=External_DefaultMode [2019-01-18 14:27:56,340 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2019-01-18 14:27:56,341 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2019-01-18 14:27:56,341 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2019-01-18 14:27:56,341 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2019-01-18 14:27:56,341 INFO L133 SettingsManager]: * Trace refinement strategy=TAIPAN [2019-01-18 14:27:56,341 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2019-01-18 14:27:56,341 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2019-01-18 14:27:56,342 INFO L133 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2019-01-18 14:27:56,342 INFO L133 SettingsManager]: * Abstract interpretation Mode=USE_PREDICATES [2019-01-18 14:27:56,371 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2019-01-18 14:27:56,383 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2019-01-18 14:27:56,386 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2019-01-18 14:27:56,388 INFO L271 PluginConnector]: Initializing Boogie PL CUP Parser... [2019-01-18 14:27:56,388 INFO L276 PluginConnector]: Boogie PL CUP Parser initialized [2019-01-18 14:27:56,389 INFO L418 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/programs/heapseparator/speedup-poc-dd-5-unlimited.bpl [2019-01-18 14:27:56,389 INFO L111 BoogieParser]: Parsing: '/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/programs/heapseparator/speedup-poc-dd-5-unlimited.bpl' [2019-01-18 14:27:56,426 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2019-01-18 14:27:56,428 INFO L131 ToolchainWalker]: Walking toolchain with 4 elements. [2019-01-18 14:27:56,429 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2019-01-18 14:27:56,429 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2019-01-18 14:27:56,429 INFO L276 PluginConnector]: Boogie Procedure Inliner initialized [2019-01-18 14:27:56,445 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "speedup-poc-dd-5-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 18.01 02:27:56" (1/1) ... [2019-01-18 14:27:56,457 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "speedup-poc-dd-5-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 18.01 02:27:56" (1/1) ... [2019-01-18 14:27:56,485 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2019-01-18 14:27:56,486 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2019-01-18 14:27:56,486 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2019-01-18 14:27:56,486 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2019-01-18 14:27:56,497 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "speedup-poc-dd-5-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 18.01 02:27:56" (1/1) ... [2019-01-18 14:27:56,497 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "speedup-poc-dd-5-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 18.01 02:27:56" (1/1) ... [2019-01-18 14:27:56,499 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "speedup-poc-dd-5-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 18.01 02:27:56" (1/1) ... [2019-01-18 14:27:56,499 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "speedup-poc-dd-5-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 18.01 02:27:56" (1/1) ... [2019-01-18 14:27:56,503 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "speedup-poc-dd-5-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 18.01 02:27:56" (1/1) ... [2019-01-18 14:27:56,507 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "speedup-poc-dd-5-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 18.01 02:27:56" (1/1) ... [2019-01-18 14:27:56,508 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "speedup-poc-dd-5-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 18.01 02:27:56" (1/1) ... [2019-01-18 14:27:56,510 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2019-01-18 14:27:56,510 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2019-01-18 14:27:56,511 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2019-01-18 14:27:56,511 INFO L276 PluginConnector]: RCFGBuilder initialized [2019-01-18 14:27:56,512 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "speedup-poc-dd-5-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 18.01 02:27:56" (1/1) ... No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2019-01-18 14:27:56,574 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2019-01-18 14:27:56,574 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2019-01-18 14:27:57,194 INFO L281 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2019-01-18 14:27:57,195 INFO L286 CfgBuilder]: Removed 13 assue(true) statements. [2019-01-18 14:27:57,196 INFO L202 PluginConnector]: Adding new model speedup-poc-dd-5-unlimited.bpl de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 18.01 02:27:57 BoogieIcfgContainer [2019-01-18 14:27:57,196 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2019-01-18 14:27:57,197 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2019-01-18 14:27:57,198 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2019-01-18 14:27:57,201 INFO L276 PluginConnector]: TraceAbstraction initialized [2019-01-18 14:27:57,201 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "speedup-poc-dd-5-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 18.01 02:27:56" (1/2) ... [2019-01-18 14:27:57,202 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@5106e194 and model type speedup-poc-dd-5-unlimited.bpl de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 18.01 02:27:57, skipping insertion in model container [2019-01-18 14:27:57,202 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "speedup-poc-dd-5-unlimited.bpl de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 18.01 02:27:57" (2/2) ... [2019-01-18 14:27:57,204 INFO L112 eAbstractionObserver]: Analyzing ICFG speedup-poc-dd-5-unlimited.bpl [2019-01-18 14:27:57,214 INFO L156 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2019-01-18 14:27:57,222 INFO L168 ceAbstractionStarter]: Appying trace abstraction to program that has 5 error locations. [2019-01-18 14:27:57,240 INFO L257 AbstractCegarLoop]: Starting to check reachability of 5 error locations. [2019-01-18 14:27:57,273 INFO L382 AbstractCegarLoop]: Interprodecural is true [2019-01-18 14:27:57,273 INFO L383 AbstractCegarLoop]: Hoare is true [2019-01-18 14:27:57,273 INFO L384 AbstractCegarLoop]: Compute interpolants for FPandBP [2019-01-18 14:27:57,273 INFO L385 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2019-01-18 14:27:57,274 INFO L386 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2019-01-18 14:27:57,274 INFO L387 AbstractCegarLoop]: Difference is false [2019-01-18 14:27:57,274 INFO L388 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2019-01-18 14:27:57,274 INFO L393 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2019-01-18 14:27:57,290 INFO L276 IsEmpty]: Start isEmpty. Operand 13 states. [2019-01-18 14:27:57,296 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 3 [2019-01-18 14:27:57,296 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:27:57,297 INFO L402 BasicCegarLoop]: trace histogram [1, 1] [2019-01-18 14:27:57,300 INFO L423 AbstractCegarLoop]: === Iteration 1 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:27:57,306 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:27:57,306 INFO L82 PathProgramCache]: Analyzing trace with hash 984, now seen corresponding path program 1 times [2019-01-18 14:27:57,309 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:27:57,362 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:27:57,362 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:27:57,363 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:27:57,363 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:27:57,417 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:27:57,565 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;#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-18 14:27:57,572 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-18 14:27:57,574 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-18 14:27:57,576 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2019-01-18 14:27:57,576 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [1] imperfect sequences [] total 1 [2019-01-18 14:27:57,576 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-18 14:27:57,580 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 2 [2019-01-18 14:27:57,583 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:27:57,586 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states. [2019-01-18 14:27:57,602 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-18 14:27:57,602 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2019-01-18 14:27:57,609 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2019-01-18 14:27:57,610 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-01-18 14:27:57,611 INFO L87 Difference]: Start difference. First operand 13 states. Second operand 3 states. [2019-01-18 14:27:58,074 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:27:58,075 INFO L93 Difference]: Finished difference Result 25 states and 33 transitions. [2019-01-18 14:27:58,075 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-18 14:27:58,075 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 2 [2019-01-18 14:27:58,075 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:27:58,076 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-01-18 14:27:58,080 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 33 transitions. [2019-01-18 14:27:58,080 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-01-18 14:27:58,083 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 33 transitions. [2019-01-18 14:27:58,083 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 33 transitions. [2019-01-18 14:27:58,227 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-18 14:27:58,239 INFO L225 Difference]: With dead ends: 25 [2019-01-18 14:27:58,239 INFO L226 Difference]: Without dead ends: 20 [2019-01-18 14:27:58,242 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-18 14:27:58,260 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 20 states. [2019-01-18 14:27:58,309 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 20 to 12. [2019-01-18 14:27:58,310 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:27:58,311 INFO L82 GeneralOperation]: Start isEquivalent. First operand 20 states. Second operand 12 states. [2019-01-18 14:27:58,311 INFO L74 IsIncluded]: Start isIncluded. First operand 20 states. Second operand 12 states. [2019-01-18 14:27:58,311 INFO L87 Difference]: Start difference. First operand 20 states. Second operand 12 states. [2019-01-18 14:27:58,315 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:27:58,315 INFO L93 Difference]: Finished difference Result 20 states and 28 transitions. [2019-01-18 14:27:58,316 INFO L276 IsEmpty]: Start isEmpty. Operand 20 states and 28 transitions. [2019-01-18 14:27:58,316 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:27:58,316 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:27:58,317 INFO L74 IsIncluded]: Start isIncluded. First operand 12 states. Second operand 20 states. [2019-01-18 14:27:58,317 INFO L87 Difference]: Start difference. First operand 12 states. Second operand 20 states. [2019-01-18 14:27:58,320 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:27:58,320 INFO L93 Difference]: Finished difference Result 20 states and 28 transitions. [2019-01-18 14:27:58,321 INFO L276 IsEmpty]: Start isEmpty. Operand 20 states and 28 transitions. [2019-01-18 14:27:58,321 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:27:58,321 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:27:58,321 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:27:58,322 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:27:58,322 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-18 14:27:58,324 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 12 states to 12 states and 21 transitions. [2019-01-18 14:27:58,326 INFO L78 Accepts]: Start accepts. Automaton has 12 states and 21 transitions. Word has length 2 [2019-01-18 14:27:58,326 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:27:58,326 INFO L480 AbstractCegarLoop]: Abstraction has 12 states and 21 transitions. [2019-01-18 14:27:58,327 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2019-01-18 14:27:58,327 INFO L276 IsEmpty]: Start isEmpty. Operand 12 states and 21 transitions. [2019-01-18 14:27:58,327 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-01-18 14:27:58,328 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:27:58,328 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-01-18 14:27:58,328 INFO L423 AbstractCegarLoop]: === Iteration 2 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:27:58,329 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:27:58,329 INFO L82 PathProgramCache]: Analyzing trace with hash 30372, now seen corresponding path program 1 times [2019-01-18 14:27:58,329 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:27:58,330 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:27:58,330 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:27:58,330 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:27:58,331 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:27:58,352 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:27:58,717 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;#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-18 14:27:58,735 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-18 14:27:58,742 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-18 14:27:58,743 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-18 14:27:58,743 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:27:58,743 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:27:58,744 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 4 with the following transitions: [2019-01-18 14:27:58,746 INFO L207 CegarAbsIntRunner]: [0], [18], [23] [2019-01-18 14:27:58,787 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:27:58,788 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:27:58,870 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:27:58,871 INFO L272 AbstractInterpreter]: Visited 3 different actions 3 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 2. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-18 14:27:58,875 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:27:58,877 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:27:58,877 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:27:58,877 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-18 14:27:58,889 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:27:58,890 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:27:58,907 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:27:58,926 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:27:58,929 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:27:59,123 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:59,133 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 40 [2019-01-18 14:27:59,336 WARN L181 SmtUtils]: Spent 101.00 ms on a formula simplification. DAG size of input: 24 DAG size of output: 20 [2019-01-18 14:27:59,362 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:59,364 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:59,367 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 42 [2019-01-18 14:27:59,785 WARN L181 SmtUtils]: Spent 259.00 ms on a formula simplification. DAG size of input: 26 DAG size of output: 20 [2019-01-18 14:27:59,805 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:59,807 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:59,809 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:59,811 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:27:59,814 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 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 21 treesize of output 25 [2019-01-18 14:27:59,919 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-18 14:27:59,964 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:27:59,999 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:00,021 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 3 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-18 14:28:00,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, 5 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-18 14:28:00,059 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 6 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-18 14:28:00,091 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-18 14:28:00,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, 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-18 14:28:00,135 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:00,162 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:00,178 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:00,193 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:00,205 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:00,241 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 2 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-18 14:28:00,242 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 5 variables, input treesize:52, output treesize:50 [2019-01-18 14:28:00,249 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:28:00,250 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_27|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5, |v_#valid_7|]. (let ((.cse0 (store |v_#valid_7| ULTIMATE.start_main_p1 1))) (let ((.cse1 (store .cse0 ULTIMATE.start_main_p2 1))) (and (= 0 (select .cse0 ULTIMATE.start_main_p2)) (= 0 (select (store .cse1 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4)) (= (select .cse1 ULTIMATE.start_main_p3) 0) (= |#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))))) [2019-01-18 14:28:00,251 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:28:00,523 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:00,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, 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-18 14:28:00,528 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:00,573 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-18 14:28:00,574 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:55, output treesize:33 [2019-01-18 14:28:00,583 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:28:00,583 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_28|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (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|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_28| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_28| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_28| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= .cse0 0))) [2019-01-18 14:28:00,583 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-18 14:28:00,721 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;#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_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:28:00,723 INFO L273 TraceCheckUtils]: 1: Hoare triple {109#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {113#(and (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)))} is VALID [2019-01-18 14:28:00,724 INFO L273 TraceCheckUtils]: 2: Hoare triple {113#(and (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)))} assume !(#memory_int[main_p1] >= 0); {103#false} is VALID [2019-01-18 14:28:00,724 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-18 14:28:00,724 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:28:00,776 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-18 14:28:00,778 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-18 14:28:00,780 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;#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-18 14:28:00,781 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-18 14:28:00,802 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:28:00,802 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-01-18 14:28:00,802 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:28:00,803 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-01-18 14:28:00,803 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:28:00,804 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-01-18 14:28:00,819 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-18 14:28:00,819 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-01-18 14:28:00,819 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-01-18 14:28:00,819 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-18 14:28:00,820 INFO L87 Difference]: Start difference. First operand 12 states and 21 transitions. Second operand 6 states. [2019-01-18 14:28:01,025 WARN L181 SmtUtils]: Spent 103.00 ms on a formula simplification. DAG size of input: 33 DAG size of output: 31 [2019-01-18 14:28:01,454 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:01,454 INFO L93 Difference]: Finished difference Result 39 states and 56 transitions. [2019-01-18 14:28:01,454 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-18 14:28:01,454 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-01-18 14:28:01,455 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:28:01,455 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-18 14:28:01,457 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 56 transitions. [2019-01-18 14:28:01,457 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-18 14:28:01,459 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 56 transitions. [2019-01-18 14:28:01,460 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 56 transitions. [2019-01-18 14:28:01,565 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-18 14:28:01,569 INFO L225 Difference]: With dead ends: 39 [2019-01-18 14:28:01,569 INFO L226 Difference]: Without dead ends: 37 [2019-01-18 14:28:01,570 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 7 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=31, Invalid=41, Unknown=0, NotChecked=0, Total=72 [2019-01-18 14:28:01,571 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 37 states. [2019-01-18 14:28:01,599 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 37 to 16. [2019-01-18 14:28:01,599 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:28:01,600 INFO L82 GeneralOperation]: Start isEquivalent. First operand 37 states. Second operand 16 states. [2019-01-18 14:28:01,600 INFO L74 IsIncluded]: Start isIncluded. First operand 37 states. Second operand 16 states. [2019-01-18 14:28:01,600 INFO L87 Difference]: Start difference. First operand 37 states. Second operand 16 states. [2019-01-18 14:28:01,604 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:01,605 INFO L93 Difference]: Finished difference Result 37 states and 53 transitions. [2019-01-18 14:28:01,605 INFO L276 IsEmpty]: Start isEmpty. Operand 37 states and 53 transitions. [2019-01-18 14:28:01,605 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:28:01,606 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:28:01,606 INFO L74 IsIncluded]: Start isIncluded. First operand 16 states. Second operand 37 states. [2019-01-18 14:28:01,606 INFO L87 Difference]: Start difference. First operand 16 states. Second operand 37 states. [2019-01-18 14:28:01,609 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:01,610 INFO L93 Difference]: Finished difference Result 37 states and 53 transitions. [2019-01-18 14:28:01,610 INFO L276 IsEmpty]: Start isEmpty. Operand 37 states and 53 transitions. [2019-01-18 14:28:01,610 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:28:01,611 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:28:01,611 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:28:01,611 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:28:01,611 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 16 states. [2019-01-18 14:28:01,612 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 32 transitions. [2019-01-18 14:28:01,613 INFO L78 Accepts]: Start accepts. Automaton has 16 states and 32 transitions. Word has length 3 [2019-01-18 14:28:01,613 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:28:01,613 INFO L480 AbstractCegarLoop]: Abstraction has 16 states and 32 transitions. [2019-01-18 14:28:01,613 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-01-18 14:28:01,613 INFO L276 IsEmpty]: Start isEmpty. Operand 16 states and 32 transitions. [2019-01-18 14:28:01,614 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-01-18 14:28:01,614 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:28:01,614 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-01-18 14:28:01,614 INFO L423 AbstractCegarLoop]: === Iteration 3 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:28:01,615 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:28:01,615 INFO L82 PathProgramCache]: Analyzing trace with hash 30434, now seen corresponding path program 1 times [2019-01-18 14:28:01,615 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:28:01,616 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:28:01,616 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:28:01,616 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:28:01,616 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:28:01,628 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:01,723 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;#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 (or (= 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))) (= (select |#memory_int| ULTIMATE.start_main_p5) 0))} is VALID [2019-01-18 14:28:01,724 INFO L273 TraceCheckUtils]: 1: Hoare triple {264#(and (or (= 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))) (= (select |#memory_int| ULTIMATE.start_main_p5) 0))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {265#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:28:01,728 INFO L273 TraceCheckUtils]: 2: Hoare triple {265#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {263#false} is VALID [2019-01-18 14:28:01,728 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-18 14:28:01,729 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:28:01,729 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:28:01,729 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 4 with the following transitions: [2019-01-18 14:28:01,729 INFO L207 CegarAbsIntRunner]: [0], [20], [23] [2019-01-18 14:28:01,731 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:28:01,731 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:28:01,744 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:28:01,744 INFO L272 AbstractInterpreter]: Visited 3 different actions 3 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 2. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-18 14:28:01,745 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:28:01,745 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:28:01,745 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:28:01,745 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-18 14:28:01,754 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:28:01,754 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:28:01,759 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:01,777 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:01,778 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:28:01,858 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:01,860 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 40 [2019-01-18 14:28:01,911 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:01,913 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:01,914 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 42 [2019-01-18 14:28:01,968 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:01,969 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:01,971 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:01,973 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:01,975 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 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 21 treesize of output 25 [2019-01-18 14:28:01,979 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:01,992 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:02,060 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:02,079 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 3 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-18 14:28:02,098 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 5 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-18 14:28:02,114 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 6 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-18 14:28:02,132 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-18 14:28:02,159 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-18 14:28:02,161 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:02,181 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:02,201 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:02,220 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:02,230 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:02,266 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 2 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-18 14:28:02,267 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 5 variables, input treesize:52, output treesize:50 [2019-01-18 14:28:02,284 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:28:02,284 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_30|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, |v_#valid_8|]. (let ((.cse0 (store |v_#valid_8| ULTIMATE.start_main_p1 1))) (let ((.cse1 (store .cse0 ULTIMATE.start_main_p2 1))) (and (= 0 (select .cse0 ULTIMATE.start_main_p2)) (= (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|) (= 0 (select (store .cse1 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4)) (= (select .cse1 ULTIMATE.start_main_p3) 0)))) [2019-01-18 14:28:02,284 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:28:02,493 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:02,542 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 7 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 8 case distinctions, treesize of input 36 treesize of output 66 [2019-01-18 14:28:02,554 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 16 xjuncts. [2019-01-18 14:28:02,850 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 16 dim-0 vars, and 5 xjuncts. [2019-01-18 14:28:02,851 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:60, output treesize:199 [2019-01-18 14:28:05,096 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:28:05,097 WARN L385 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)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_31| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= .cse0 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (store |v_#memory_int_31| ULTIMATE.start_main_p5 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_31| ULTIMATE.start_main_p1) 0))) [2019-01-18 14:28:05,097 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [v_prenex_10, v_prenex_11, v_prenex_9, v_prenex_12, v_prenex_3, v_prenex_1, v_prenex_2, ULTIMATE.start_main_p5, v_prenex_8, v_prenex_7, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, v_prenex_6, v_prenex_4, v_prenex_5]. (let ((.cse0 (select |#memory_int| ULTIMATE.start_main_p1))) (let ((.cse1 (= .cse0 0))) (or (and (not (= v_prenex_3 v_prenex_1)) (= .cse0 1) (not (= v_prenex_3 v_prenex_2)) (not (= v_prenex_2 v_prenex_1)) (= 0 (select |#memory_int| v_prenex_2)) (not (= v_prenex_3 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_3) 0) (not (= ULTIMATE.start_main_p1 v_prenex_1)) (= (select |#memory_int| v_prenex_1) 0)) (and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= v_prenex_8 v_prenex_7)) .cse1 (not (= v_prenex_7 ULTIMATE.start_main_p1)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| v_prenex_7)) (not (= v_prenex_8 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_8) 0)) (and (not (= v_prenex_10 v_prenex_11)) (not (= v_prenex_10 v_prenex_9)) .cse1 (not (= v_prenex_9 ULTIMATE.start_main_p1)) (not (= v_prenex_9 v_prenex_11)) (= 1 (select |#memory_int| v_prenex_12)) (= 0 (select |#memory_int| v_prenex_9)) (not (= v_prenex_10 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_10) 0) (not (= ULTIMATE.start_main_p1 v_prenex_11)) (= (select |#memory_int| v_prenex_11) 0)) (and .cse1 (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))) (and (not (= v_prenex_6 v_prenex_4)) (= 1 (select |#memory_int| v_prenex_5)) .cse1 (not (= v_prenex_6 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_6) 0) (= (select |#memory_int| v_prenex_4) 0) (not (= ULTIMATE.start_main_p1 v_prenex_4)))))) [2019-01-18 14:28:07,276 WARN L181 SmtUtils]: Spent 2.08 s on a formula simplification. DAG size of input: 121 DAG size of output: 49 [2019-01-18 14:28:07,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;#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 (= 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 (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-18 14:28:07,292 INFO L273 TraceCheckUtils]: 1: Hoare triple {269#(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 (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {273#(or (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_5 Int)) (= 1 (select |#memory_int| v_prenex_5))) (exists ((v_prenex_6 Int) (v_prenex_4 Int)) (and (not (= v_prenex_6 ULTIMATE.start_main_p1)) (not (= v_prenex_6 v_prenex_4)) (= (select |#memory_int| v_prenex_6) 0) (= (select |#memory_int| v_prenex_4) 0) (not (= ULTIMATE.start_main_p1 v_prenex_4))))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((v_prenex_2 Int) (v_prenex_3 Int) (v_prenex_1 Int)) (and (not (= ULTIMATE.start_main_p1 v_prenex_1)) (not (= v_prenex_3 v_prenex_2)) (= (select |#memory_int| v_prenex_1) 0) (= (select |#memory_int| v_prenex_3) 0) (not (= v_prenex_3 v_prenex_1)) (= 0 (select |#memory_int| v_prenex_2)) (not (= v_prenex_3 ULTIMATE.start_main_p1)) (not (= v_prenex_2 v_prenex_1))))))} is VALID [2019-01-18 14:28:07,293 INFO L273 TraceCheckUtils]: 2: Hoare triple {273#(or (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_5 Int)) (= 1 (select |#memory_int| v_prenex_5))) (exists ((v_prenex_6 Int) (v_prenex_4 Int)) (and (not (= v_prenex_6 ULTIMATE.start_main_p1)) (not (= v_prenex_6 v_prenex_4)) (= (select |#memory_int| v_prenex_6) 0) (= (select |#memory_int| v_prenex_4) 0) (not (= ULTIMATE.start_main_p1 v_prenex_4))))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((v_prenex_2 Int) (v_prenex_3 Int) (v_prenex_1 Int)) (and (not (= ULTIMATE.start_main_p1 v_prenex_1)) (not (= v_prenex_3 v_prenex_2)) (= (select |#memory_int| v_prenex_1) 0) (= (select |#memory_int| v_prenex_3) 0) (not (= v_prenex_3 v_prenex_1)) (= 0 (select |#memory_int| v_prenex_2)) (not (= v_prenex_3 ULTIMATE.start_main_p1)) (not (= v_prenex_2 v_prenex_1))))))} assume !(#memory_int[main_p1] >= 0); {263#false} is VALID [2019-01-18 14:28:07,294 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-18 14:28:07,294 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:28:07,305 INFO L273 TraceCheckUtils]: 2: Hoare triple {265#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {263#false} is VALID [2019-01-18 14:28:07,307 INFO L273 TraceCheckUtils]: 1: Hoare triple {280#(<= 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#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:28:07,309 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;#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]; {280#(<= 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-18 14:28:07,309 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-18 14:28:07,328 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-01-18 14:28:07,328 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [2, 2] total 5 [2019-01-18 14:28:07,328 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-18 14:28:07,329 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 3 [2019-01-18 14:28:07,329 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:28:07,329 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-01-18 14:28:07,334 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-18 14:28:07,334 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-01-18 14:28:07,335 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-01-18 14:28:07,335 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=19, Invalid=23, Unknown=0, NotChecked=0, Total=42 [2019-01-18 14:28:07,335 INFO L87 Difference]: Start difference. First operand 16 states and 32 transitions. Second operand 4 states. [2019-01-18 14:28:07,440 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:07,441 INFO L93 Difference]: Finished difference Result 18 states and 39 transitions. [2019-01-18 14:28:07,441 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-18 14:28:07,441 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 3 [2019-01-18 14:28:07,441 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:28:07,442 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-18 14:28:07,443 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 22 transitions. [2019-01-18 14:28:07,443 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-18 14:28:07,444 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 22 transitions. [2019-01-18 14:28:07,444 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 22 transitions. [2019-01-18 14:28:07,481 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-18 14:28:07,483 INFO L225 Difference]: With dead ends: 18 [2019-01-18 14:28:07,483 INFO L226 Difference]: Without dead ends: 17 [2019-01-18 14:28:07,484 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 6 GetRequests, 1 SyntacticMatches, 0 SemanticMatches, 5 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 8 ImplicationChecksByTransitivity, 2.3s TimeCoverageRelationStatistics Valid=19, Invalid=23, Unknown=0, NotChecked=0, Total=42 [2019-01-18 14:28:07,484 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 17 states. [2019-01-18 14:28:07,510 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 17 to 17. [2019-01-18 14:28:07,510 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:28:07,510 INFO L82 GeneralOperation]: Start isEquivalent. First operand 17 states. Second operand 17 states. [2019-01-18 14:28:07,510 INFO L74 IsIncluded]: Start isIncluded. First operand 17 states. Second operand 17 states. [2019-01-18 14:28:07,510 INFO L87 Difference]: Start difference. First operand 17 states. Second operand 17 states. [2019-01-18 14:28:07,513 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:07,513 INFO L93 Difference]: Finished difference Result 17 states and 38 transitions. [2019-01-18 14:28:07,514 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 38 transitions. [2019-01-18 14:28:07,514 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:28:07,514 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:28:07,514 INFO L74 IsIncluded]: Start isIncluded. First operand 17 states. Second operand 17 states. [2019-01-18 14:28:07,514 INFO L87 Difference]: Start difference. First operand 17 states. Second operand 17 states. [2019-01-18 14:28:07,516 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:07,516 INFO L93 Difference]: Finished difference Result 17 states and 38 transitions. [2019-01-18 14:28:07,517 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 38 transitions. [2019-01-18 14:28:07,517 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:28:07,517 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:28:07,517 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:28:07,518 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:28:07,518 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 17 states. [2019-01-18 14:28:07,519 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 38 transitions. [2019-01-18 14:28:07,519 INFO L78 Accepts]: Start accepts. Automaton has 17 states and 38 transitions. Word has length 3 [2019-01-18 14:28:07,520 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:28:07,520 INFO L480 AbstractCegarLoop]: Abstraction has 17 states and 38 transitions. [2019-01-18 14:28:07,520 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-01-18 14:28:07,520 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 38 transitions. [2019-01-18 14:28:07,520 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-01-18 14:28:07,521 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:28:07,521 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-01-18 14:28:07,521 INFO L423 AbstractCegarLoop]: === Iteration 4 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:28:07,521 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:28:07,522 INFO L82 PathProgramCache]: Analyzing trace with hash 30560, now seen corresponding path program 1 times [2019-01-18 14:28:07,522 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:28:07,523 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:28:07,523 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:28:07,523 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:28:07,523 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:28:07,530 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:07,581 INFO L273 TraceCheckUtils]: 0: Hoare triple {360#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;#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]; {362#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:28:07,582 INFO L273 TraceCheckUtils]: 1: Hoare triple {362#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {362#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:28:07,584 INFO L273 TraceCheckUtils]: 2: Hoare triple {362#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {361#false} is VALID [2019-01-18 14:28:07,584 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-18 14:28:07,585 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2019-01-18 14:28:07,585 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [1] imperfect sequences [] total 1 [2019-01-18 14:28:07,585 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-18 14:28:07,586 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 3 [2019-01-18 14:28:07,586 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:28:07,586 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states. [2019-01-18 14:28:07,594 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-18 14:28:07,594 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2019-01-18 14:28:07,594 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2019-01-18 14:28:07,594 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-01-18 14:28:07,595 INFO L87 Difference]: Start difference. First operand 17 states and 38 transitions. Second operand 3 states. [2019-01-18 14:28:07,680 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:07,680 INFO L93 Difference]: Finished difference Result 21 states and 39 transitions. [2019-01-18 14:28:07,681 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-18 14:28:07,681 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 3 [2019-01-18 14:28:07,681 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:28:07,681 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-01-18 14:28:07,682 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 27 transitions. [2019-01-18 14:28:07,682 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-01-18 14:28:07,683 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 27 transitions. [2019-01-18 14:28:07,683 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 27 transitions. [2019-01-18 14:28:07,735 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-18 14:28:07,736 INFO L225 Difference]: With dead ends: 21 [2019-01-18 14:28:07,736 INFO L226 Difference]: Without dead ends: 20 [2019-01-18 14:28:07,737 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-18 14:28:07,737 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 20 states. [2019-01-18 14:28:07,757 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 20 to 17. [2019-01-18 14:28:07,757 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:28:07,757 INFO L82 GeneralOperation]: Start isEquivalent. First operand 20 states. Second operand 17 states. [2019-01-18 14:28:07,758 INFO L74 IsIncluded]: Start isIncluded. First operand 20 states. Second operand 17 states. [2019-01-18 14:28:07,758 INFO L87 Difference]: Start difference. First operand 20 states. Second operand 17 states. [2019-01-18 14:28:07,760 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:07,760 INFO L93 Difference]: Finished difference Result 20 states and 38 transitions. [2019-01-18 14:28:07,760 INFO L276 IsEmpty]: Start isEmpty. Operand 20 states and 38 transitions. [2019-01-18 14:28:07,761 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:28:07,761 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:28:07,761 INFO L74 IsIncluded]: Start isIncluded. First operand 17 states. Second operand 20 states. [2019-01-18 14:28:07,762 INFO L87 Difference]: Start difference. First operand 17 states. Second operand 20 states. [2019-01-18 14:28:07,763 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:07,763 INFO L93 Difference]: Finished difference Result 20 states and 38 transitions. [2019-01-18 14:28:07,763 INFO L276 IsEmpty]: Start isEmpty. Operand 20 states and 38 transitions. [2019-01-18 14:28:07,764 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:28:07,764 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:28:07,764 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:28:07,764 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:28:07,764 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 17 states. [2019-01-18 14:28:07,765 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 37 transitions. [2019-01-18 14:28:07,765 INFO L78 Accepts]: Start accepts. Automaton has 17 states and 37 transitions. Word has length 3 [2019-01-18 14:28:07,766 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:28:07,766 INFO L480 AbstractCegarLoop]: Abstraction has 17 states and 37 transitions. [2019-01-18 14:28:07,766 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2019-01-18 14:28:07,766 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 37 transitions. [2019-01-18 14:28:07,766 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-01-18 14:28:07,766 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:28:07,766 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-01-18 14:28:07,767 INFO L423 AbstractCegarLoop]: === Iteration 5 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:28:07,767 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:28:07,767 INFO L82 PathProgramCache]: Analyzing trace with hash 30124, now seen corresponding path program 1 times [2019-01-18 14:28:07,767 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:28:07,768 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:28:07,768 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:28:07,768 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:28:07,768 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:28:07,784 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:07,899 INFO L273 TraceCheckUtils]: 0: Hoare triple {451#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;#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]; {453#(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-18 14:28:07,900 INFO L273 TraceCheckUtils]: 1: Hoare triple {453#(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]; {454#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-18 14:28:07,901 INFO L273 TraceCheckUtils]: 2: Hoare triple {454#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {452#false} is VALID [2019-01-18 14:28:07,901 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-18 14:28:07,901 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:28:07,901 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:28:07,901 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 4 with the following transitions: [2019-01-18 14:28:07,902 INFO L207 CegarAbsIntRunner]: [0], [10], [23] [2019-01-18 14:28:07,904 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:28:07,904 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:28:07,924 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:28:07,924 INFO L272 AbstractInterpreter]: Visited 3 different actions 3 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 2. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-18 14:28:07,924 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:28:07,925 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:28:07,925 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:28:07,925 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-18 14:28:07,935 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:28:07,935 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:28:07,939 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:07,944 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:07,944 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:28:08,007 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 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 18 treesize of output 21 [2019-01-18 14:28:08,013 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-18 14:28:08,027 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:08,032 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:08,033 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-18 14:28:08,051 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:08,052 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:08,053 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:08,055 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-18 14:28:08,076 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-18 14:28:08,090 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:08,108 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:08,152 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:08,165 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:08,176 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:08,202 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:08,203 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 40 [2019-01-18 14:28:08,256 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:08,256 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:08,257 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 42 [2019-01-18 14:28:08,354 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:08,355 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:08,357 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:08,358 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:08,359 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 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 21 treesize of output 25 [2019-01-18 14:28:08,362 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:08,371 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:08,381 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:08,412 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 2 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-18 14:28:08,413 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 5 variables, input treesize:52, output treesize:50 [2019-01-18 14:28:08,424 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:28:08,424 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_33|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, |v_#valid_9|]. (let ((.cse0 (store |v_#valid_9| ULTIMATE.start_main_p1 1))) (let ((.cse1 (store .cse0 ULTIMATE.start_main_p2 1))) (and (= (select .cse0 ULTIMATE.start_main_p2) 0) (= (select .cse1 ULTIMATE.start_main_p3) 0) (= (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|) (= (select (store .cse1 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4) 0)))) [2019-01-18 14:28:08,424 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:28:08,530 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:08,531 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-18 14:28:08,536 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:08,558 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-18 14:28:08,559 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:55, output treesize:33 [2019-01-18 14:28:08,925 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:28:08,925 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_34|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (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)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_34| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= .cse0 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_34| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_34| ULTIMATE.start_main_p3) 0))) [2019-01-18 14:28:08,925 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:28:09,022 INFO L273 TraceCheckUtils]: 0: Hoare triple {451#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;#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]; {458#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-18 14:28:09,023 INFO L273 TraceCheckUtils]: 1: Hoare triple {458#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {462#(and (exists ((ULTIMATE.start_main_p2 Int)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-18 14:28:09,024 INFO L273 TraceCheckUtils]: 2: Hoare triple {462#(and (exists ((ULTIMATE.start_main_p2 Int)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} assume !(#memory_int[main_p1] >= 0); {452#false} is VALID [2019-01-18 14:28:09,024 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-18 14:28:09,024 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:28:09,059 INFO L273 TraceCheckUtils]: 2: Hoare triple {466#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {452#false} is VALID [2019-01-18 14:28:09,060 INFO L273 TraceCheckUtils]: 1: Hoare triple {470#(<= 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]; {466#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:28:09,062 INFO L273 TraceCheckUtils]: 0: Hoare triple {451#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;#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]; {470#(<= 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-18 14:28:09,063 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-18 14:28:09,082 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:28:09,082 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-01-18 14:28:09,083 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:28:09,083 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-01-18 14:28:09,083 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:28:09,083 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-01-18 14:28:09,114 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-18 14:28:09,114 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-01-18 14:28:09,114 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-01-18 14:28:09,114 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-18 14:28:09,114 INFO L87 Difference]: Start difference. First operand 17 states and 37 transitions. Second operand 6 states. [2019-01-18 14:28:09,708 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:09,708 INFO L93 Difference]: Finished difference Result 39 states and 66 transitions. [2019-01-18 14:28:09,708 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-18 14:28:09,709 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-01-18 14:28:09,709 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:28:09,709 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-18 14:28:09,710 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 54 transitions. [2019-01-18 14:28:09,710 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-18 14:28:09,711 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 54 transitions. [2019-01-18 14:28:09,711 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 54 transitions. [2019-01-18 14:28:09,807 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-18 14:28:09,810 INFO L225 Difference]: With dead ends: 39 [2019-01-18 14:28:09,810 INFO L226 Difference]: Without dead ends: 38 [2019-01-18 14:28:09,810 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-18 14:28:09,811 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 38 states. [2019-01-18 14:28:09,947 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 38 to 18. [2019-01-18 14:28:09,947 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:28:09,947 INFO L82 GeneralOperation]: Start isEquivalent. First operand 38 states. Second operand 18 states. [2019-01-18 14:28:09,947 INFO L74 IsIncluded]: Start isIncluded. First operand 38 states. Second operand 18 states. [2019-01-18 14:28:09,947 INFO L87 Difference]: Start difference. First operand 38 states. Second operand 18 states. [2019-01-18 14:28:09,949 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:09,949 INFO L93 Difference]: Finished difference Result 38 states and 64 transitions. [2019-01-18 14:28:09,950 INFO L276 IsEmpty]: Start isEmpty. Operand 38 states and 64 transitions. [2019-01-18 14:28:09,950 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:28:09,951 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:28:09,951 INFO L74 IsIncluded]: Start isIncluded. First operand 18 states. Second operand 38 states. [2019-01-18 14:28:09,951 INFO L87 Difference]: Start difference. First operand 18 states. Second operand 38 states. [2019-01-18 14:28:09,953 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:09,953 INFO L93 Difference]: Finished difference Result 38 states and 64 transitions. [2019-01-18 14:28:09,953 INFO L276 IsEmpty]: Start isEmpty. Operand 38 states and 64 transitions. [2019-01-18 14:28:09,954 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:28:09,954 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:28:09,954 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:28:09,954 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:28:09,954 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 18 states. [2019-01-18 14:28:09,955 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 18 states to 18 states and 43 transitions. [2019-01-18 14:28:09,955 INFO L78 Accepts]: Start accepts. Automaton has 18 states and 43 transitions. Word has length 3 [2019-01-18 14:28:09,956 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:28:09,956 INFO L480 AbstractCegarLoop]: Abstraction has 18 states and 43 transitions. [2019-01-18 14:28:09,956 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-01-18 14:28:09,956 INFO L276 IsEmpty]: Start isEmpty. Operand 18 states and 43 transitions. [2019-01-18 14:28:09,956 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-18 14:28:09,956 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:28:09,957 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-18 14:28:09,957 INFO L423 AbstractCegarLoop]: === Iteration 6 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:28:09,957 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:28:09,957 INFO L82 PathProgramCache]: Analyzing trace with hash 941462, now seen corresponding path program 1 times [2019-01-18 14:28:09,957 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:28:09,958 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:28:09,958 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:28:09,958 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:28:09,958 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:28:09,968 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:10,042 INFO L273 TraceCheckUtils]: 0: Hoare triple {619#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;#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]; {621#(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-18 14:28:10,044 INFO L273 TraceCheckUtils]: 1: Hoare triple {621#(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]; {622#(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-18 14:28:10,062 INFO L273 TraceCheckUtils]: 2: Hoare triple {622#(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]; {623#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-18 14:28:10,071 INFO L273 TraceCheckUtils]: 3: Hoare triple {623#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {620#false} is VALID [2019-01-18 14:28:10,071 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-18 14:28:10,072 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:28:10,072 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:28:10,072 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-18 14:28:10,072 INFO L207 CegarAbsIntRunner]: [0], [18], [20], [23] [2019-01-18 14:28:10,073 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:28:10,073 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:28:10,103 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:28:10,104 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 2. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:28:10,104 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:28:10,104 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:28:10,104 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:28:10,104 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-18 14:28:10,114 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:28:10,115 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:28:10,120 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:10,123 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:10,124 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:28:10,167 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 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 18 treesize of output 21 [2019-01-18 14:28:10,176 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-18 14:28:10,196 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:10,198 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:10,200 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-18 14:28:10,289 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:10,290 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:10,309 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:10,310 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-18 14:28:10,339 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-18 14:28:10,349 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:10,377 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:10,394 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:10,405 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:10,417 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:10,447 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:10,448 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 40 [2019-01-18 14:28:10,490 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:10,491 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:10,492 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 42 [2019-01-18 14:28:10,541 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:10,542 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:10,544 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:10,545 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:10,546 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 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 21 treesize of output 25 [2019-01-18 14:28:10,549 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:10,562 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:10,574 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:10,607 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-18 14:28:10,608 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 4 variables, input treesize:52, output treesize:50 [2019-01-18 14:28:10,616 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:28:10,616 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_36|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, |v_#valid_10|]. (let ((.cse1 (store |v_#valid_10| ULTIMATE.start_main_p1 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p2 1))) (and (= 0 (select (store .cse0 ULTIMATE.start_main_p3 1) 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|) (= (select .cse1 ULTIMATE.start_main_p2) 0) (= 0 (select .cse0 ULTIMATE.start_main_p3))))) [2019-01-18 14:28:10,616 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:28:10,698 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:10,708 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 7 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 2 case distinctions, treesize of input 36 treesize of output 54 [2019-01-18 14:28:10,712 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 2 xjuncts. [2019-01-18 14:28:10,796 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 5 dim-0 vars, and 2 xjuncts. [2019-01-18 14:28:10,797 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:60, output treesize:74 [2019-01-18 14:28:10,970 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:28:10,970 WARN L385 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 (not (= 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)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 .cse0) (= 0 (select |v_#memory_int_37| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_37| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= |#memory_int| (store |v_#memory_int_37| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-01-18 14:28:10,970 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [v_prenex_14, v_prenex_13, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse1 (select |#memory_int| ULTIMATE.start_main_p5)) (.cse0 (= (select |#memory_int| ULTIMATE.start_main_p1) 0))) (or (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) .cse0 (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= 0 (+ .cse1 1))) (and (= 0 .cse1) (not (= v_prenex_14 v_prenex_13)) .cse0 (not (= v_prenex_13 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| v_prenex_13)) (not (= v_prenex_14 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_14) 0)))) [2019-01-18 14:28:11,139 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:11,140 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:11,141 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:11,143 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:11,152 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:11,153 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:11,154 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:11,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, 10 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 6 case distinctions, treesize of input 50 treesize of output 80 [2019-01-18 14:28:11,196 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 8 xjuncts. [2019-01-18 14:28:11,418 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:11,435 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:11,436 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:11,437 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:11,438 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:11,438 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:28:11,439 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 45 treesize of output 51 [2019-01-18 14:28:11,442 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:11,546 INFO L267 ElimStorePlain]: Start of recursive call 1: 7 dim-0 vars, 2 dim-1 vars, End of recursive call: 16 dim-0 vars, and 5 xjuncts. [2019-01-18 14:28:11,547 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 9 variables, input treesize:96, output treesize:167 [2019-01-18 14:28:13,875 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:28:13,876 WARN L385 uantifierElimination]: Input elimination task: ∃ [v_prenex_16, v_prenex_15, v_prenex_13, v_prenex_14, ULTIMATE.start_main_p4, |v_#memory_int_38|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (or (let ((.cse0 (+ (select |v_#memory_int_38| ULTIMATE.start_main_p5) 1))) (and (= .cse0 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_38| ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_38| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_38| ULTIMATE.start_main_p1)) (= |#memory_int| (store |v_#memory_int_38| ULTIMATE.start_main_p5 .cse0)))) (let ((.cse1 (select v_prenex_16 v_prenex_15))) (and (= 0 (select v_prenex_16 v_prenex_13)) (= 0 .cse1) (not (= v_prenex_13 ULTIMATE.start_main_p1)) (= (select v_prenex_16 v_prenex_14) 0) (not (= v_prenex_14 v_prenex_13)) (= 0 (+ (select v_prenex_16 ULTIMATE.start_main_p4) 1)) (= 0 (select v_prenex_16 ULTIMATE.start_main_p1)) (not (= v_prenex_14 ULTIMATE.start_main_p1)) (= |#memory_int| (store v_prenex_16 v_prenex_15 (+ .cse1 1)))))) [2019-01-18 14:28:13,876 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [v_prenex_15, v_prenex_19, v_prenex_17, v_prenex_18, v_prenex_20, v_prenex_21, v_prenex_22, v_prenex_24, v_prenex_25, v_prenex_23, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2, v_prenex_13, ULTIMATE.start_main_p4, v_prenex_14]. (let ((.cse1 (select |#memory_int| ULTIMATE.start_main_p1))) (let ((.cse0 (= .cse1 0))) (or (and .cse0 (= (+ (select |#memory_int| v_prenex_20) 1) 0) (= 0 (select |#memory_int| v_prenex_21)) (= (select |#memory_int| v_prenex_22) 1) (not (= v_prenex_21 ULTIMATE.start_main_p1))) (and (= .cse1 1) (= (select |#memory_int| v_prenex_24) 0) (= (+ (select |#memory_int| v_prenex_25) 1) 0) (not (= v_prenex_23 v_prenex_24)) (= 0 (select |#memory_int| v_prenex_23))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) .cse0 (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) (and (= 1 (select |#memory_int| v_prenex_15)) (= (select |#memory_int| v_prenex_19) 0) (not (= v_prenex_19 ULTIMATE.start_main_p1)) .cse0 (= (+ (select |#memory_int| v_prenex_17) 1) 0) (not (= v_prenex_18 v_prenex_19)) (= 0 (select |#memory_int| v_prenex_18)) (not (= v_prenex_18 ULTIMATE.start_main_p1))) (and (= (select |#memory_int| v_prenex_13) 0) (not (= v_prenex_13 ULTIMATE.start_main_p1)) .cse0 (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 1 (select |#memory_int| v_prenex_14)))))) [2019-01-18 14:28:14,019 INFO L273 TraceCheckUtils]: 0: Hoare triple {619#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;#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]; {627#(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 (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:28:14,022 INFO L273 TraceCheckUtils]: 1: Hoare triple {627#(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 (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {631#(or (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((v_prenex_14 Int) (v_prenex_13 Int)) (and (= (select |#memory_int| v_prenex_14) 0) (not (= v_prenex_13 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| v_prenex_13)) (not (= v_prenex_14 v_prenex_13)) (not (= v_prenex_14 ULTIMATE.start_main_p1))))) (and (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1))))} is VALID [2019-01-18 14:28:14,028 INFO L273 TraceCheckUtils]: 2: Hoare triple {631#(or (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((v_prenex_14 Int) (v_prenex_13 Int)) (and (= (select |#memory_int| v_prenex_14) 0) (not (= v_prenex_13 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| v_prenex_13)) (not (= v_prenex_14 v_prenex_13)) (not (= v_prenex_14 ULTIMATE.start_main_p1))))) (and (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1))))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {635#(or (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)))) (and (exists ((v_prenex_14 Int)) (= 1 (select |#memory_int| v_prenex_14))) (exists ((v_prenex_13 Int)) (and (= (select |#memory_int| v_prenex_13) 0) (not (= v_prenex_13 ULTIMATE.start_main_p1)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((v_prenex_25 Int)) (= (+ (select |#memory_int| v_prenex_25) 1) 0)) (exists ((v_prenex_23 Int) (v_prenex_24 Int)) (and (not (= v_prenex_23 v_prenex_24)) (= (select |#memory_int| v_prenex_24) 0) (= 0 (select |#memory_int| v_prenex_23))))))} is VALID [2019-01-18 14:28:14,030 INFO L273 TraceCheckUtils]: 3: Hoare triple {635#(or (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)))) (and (exists ((v_prenex_14 Int)) (= 1 (select |#memory_int| v_prenex_14))) (exists ((v_prenex_13 Int)) (and (= (select |#memory_int| v_prenex_13) 0) (not (= v_prenex_13 ULTIMATE.start_main_p1)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((v_prenex_25 Int)) (= (+ (select |#memory_int| v_prenex_25) 1) 0)) (exists ((v_prenex_23 Int) (v_prenex_24 Int)) (and (not (= v_prenex_23 v_prenex_24)) (= (select |#memory_int| v_prenex_24) 0) (= 0 (select |#memory_int| v_prenex_23))))))} assume !(#memory_int[main_p1] >= 0); {620#false} is VALID [2019-01-18 14:28:14,031 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-18 14:28:14,031 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:28:14,105 INFO L273 TraceCheckUtils]: 3: Hoare triple {639#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {620#false} is VALID [2019-01-18 14:28:14,106 INFO L273 TraceCheckUtils]: 2: Hoare triple {643#(<= 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]; {639#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:28:14,108 INFO L273 TraceCheckUtils]: 1: Hoare triple {647#(<= 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]; {643#(<= 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-18 14:28:14,110 INFO L273 TraceCheckUtils]: 0: Hoare triple {619#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;#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]; {647#(<= 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-18 14:28:14,111 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-18 14:28:14,131 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:28:14,132 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-18 14:28:14,132 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:28:14,132 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-18 14:28:14,132 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:28:14,132 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-18 14:28:14,162 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-18 14:28:14,162 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-18 14:28:14,163 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-18 14:28:14,163 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=41, Invalid=69, Unknown=0, NotChecked=0, Total=110 [2019-01-18 14:28:14,163 INFO L87 Difference]: Start difference. First operand 18 states and 43 transitions. Second operand 8 states. [2019-01-18 14:28:14,762 WARN L181 SmtUtils]: Spent 112.00 ms on a formula simplification. DAG size of input: 73 DAG size of output: 53 [2019-01-18 14:28:15,562 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:15,562 INFO L93 Difference]: Finished difference Result 59 states and 105 transitions. [2019-01-18 14:28:15,563 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-18 14:28:15,563 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-18 14:28:15,563 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:28:15,563 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:28:15,564 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 81 transitions. [2019-01-18 14:28:15,564 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:28:15,565 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 81 transitions. [2019-01-18 14:28:15,566 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 81 transitions. [2019-01-18 14:28:15,731 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 81 edges. 81 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:28:15,734 INFO L225 Difference]: With dead ends: 59 [2019-01-18 14:28:15,734 INFO L226 Difference]: Without dead ends: 55 [2019-01-18 14:28:15,735 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 12 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 12 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 24 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=70, Invalid=112, Unknown=0, NotChecked=0, Total=182 [2019-01-18 14:28:15,735 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 55 states. [2019-01-18 14:28:15,865 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 55 to 20. [2019-01-18 14:28:15,865 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:28:15,865 INFO L82 GeneralOperation]: Start isEquivalent. First operand 55 states. Second operand 20 states. [2019-01-18 14:28:15,866 INFO L74 IsIncluded]: Start isIncluded. First operand 55 states. Second operand 20 states. [2019-01-18 14:28:15,866 INFO L87 Difference]: Start difference. First operand 55 states. Second operand 20 states. [2019-01-18 14:28:15,867 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:15,868 INFO L93 Difference]: Finished difference Result 55 states and 99 transitions. [2019-01-18 14:28:15,868 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 99 transitions. [2019-01-18 14:28:15,868 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:28:15,868 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:28:15,868 INFO L74 IsIncluded]: Start isIncluded. First operand 20 states. Second operand 55 states. [2019-01-18 14:28:15,868 INFO L87 Difference]: Start difference. First operand 20 states. Second operand 55 states. [2019-01-18 14:28:15,872 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:15,872 INFO L93 Difference]: Finished difference Result 55 states and 99 transitions. [2019-01-18 14:28:15,872 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 99 transitions. [2019-01-18 14:28:15,873 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:28:15,873 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:28:15,873 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:28:15,873 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:28:15,873 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 20 states. [2019-01-18 14:28:15,876 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 20 states to 20 states and 59 transitions. [2019-01-18 14:28:15,876 INFO L78 Accepts]: Start accepts. Automaton has 20 states and 59 transitions. Word has length 4 [2019-01-18 14:28:15,877 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:28:15,877 INFO L480 AbstractCegarLoop]: Abstraction has 20 states and 59 transitions. [2019-01-18 14:28:15,877 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-18 14:28:15,877 INFO L276 IsEmpty]: Start isEmpty. Operand 20 states and 59 transitions. [2019-01-18 14:28:15,877 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-18 14:28:15,877 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:28:15,877 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-18 14:28:15,878 INFO L423 AbstractCegarLoop]: === Iteration 7 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:28:15,878 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:28:15,878 INFO L82 PathProgramCache]: Analyzing trace with hash 941588, now seen corresponding path program 1 times [2019-01-18 14:28:15,878 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:28:15,880 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:28:15,880 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:28:15,880 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:28:15,880 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:28:15,889 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:15,963 INFO L273 TraceCheckUtils]: 0: Hoare triple {863#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;#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]; {865#(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-18 14:28:15,964 INFO L273 TraceCheckUtils]: 1: Hoare triple {865#(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]; {866#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:28:15,965 INFO L273 TraceCheckUtils]: 2: Hoare triple {866#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {866#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:28:15,965 INFO L273 TraceCheckUtils]: 3: Hoare triple {866#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {864#false} is VALID [2019-01-18 14:28:15,965 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-18 14:28:15,966 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:28:15,966 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:28:15,966 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-18 14:28:15,966 INFO L207 CegarAbsIntRunner]: [0], [18], [24], [25] [2019-01-18 14:28:15,967 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:28:15,967 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:28:15,986 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:28:15,986 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 2. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-18 14:28:15,986 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:28:15,987 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:28:15,987 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:28:15,987 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-18 14:28:15,995 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:28:15,995 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:28:16,002 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:16,008 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:16,008 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:28:16,022 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-18 14:28:16,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-18 14:28:16,044 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:16,045 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:16,046 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 33 [2019-01-18 14:28:16,096 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:16,097 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:16,097 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:16,098 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 5 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 47 [2019-01-18 14:28:16,126 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 5 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 46 [2019-01-18 14:28:16,133 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:16,151 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:16,164 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:16,176 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:16,188 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:16,207 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 25 [2019-01-18 14:28:16,291 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:16,335 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:16,337 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 22 treesize of output 38 [2019-01-18 14:28:16,394 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:16,395 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:16,397 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:16,398 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:16,399 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 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 21 treesize of output 21 [2019-01-18 14:28:16,401 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:16,409 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:16,421 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:16,444 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 2 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-18 14:28:16,444 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 5 variables, input treesize:44, output treesize:46 [2019-01-18 14:28:16,450 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:28:16,450 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_41|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5, |v_#valid_11|]. (let ((.cse0 (store (store |v_#valid_11| ULTIMATE.start_main_p1 1) ULTIMATE.start_main_p2 1))) (and (= (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4) 0) (= (select .cse0 ULTIMATE.start_main_p3) 0) (= (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|))) [2019-01-18 14:28:16,451 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p5, ULTIMATE.start_main_p1]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:28:16,518 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:16,520 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 31 treesize of output 41 [2019-01-18 14:28:16,529 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:16,547 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-18 14:28:16,547 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:51, output treesize:29 [2019-01-18 14:28:18,734 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:28:18,734 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_42|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_42| ULTIMATE.start_main_p4))) (and (= (select |v_#memory_int_42| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (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) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= .cse0 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-01-18 14:28:18,734 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-18 14:28:18,795 INFO L273 TraceCheckUtils]: 0: Hoare triple {863#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;#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]; {870#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:28:18,803 INFO L273 TraceCheckUtils]: 1: Hoare triple {870#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {874#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:28:18,803 INFO L273 TraceCheckUtils]: 2: Hoare triple {874#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume #memory_int[main_p1] >= 0; {874#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:28:18,804 INFO L273 TraceCheckUtils]: 3: Hoare triple {874#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume !(#memory_int[main_p2] <= 0); {864#false} is VALID [2019-01-18 14:28:18,804 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-18 14:28:18,805 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:28:18,834 INFO L273 TraceCheckUtils]: 3: Hoare triple {881#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {864#false} is VALID [2019-01-18 14:28:18,836 INFO L273 TraceCheckUtils]: 2: Hoare triple {881#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {881#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:28:18,837 INFO L273 TraceCheckUtils]: 1: Hoare triple {888#(<= (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]; {881#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:28:18,839 INFO L273 TraceCheckUtils]: 0: Hoare triple {863#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;#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]; {888#(<= (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-18 14:28:18,840 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-18 14:28:18,859 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-01-18 14:28:18,859 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [2, 2] total 6 [2019-01-18 14:28:18,860 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-18 14:28:18,860 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 4 [2019-01-18 14:28:18,860 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:28:18,860 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-01-18 14:28:18,864 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-18 14:28:18,864 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-01-18 14:28:18,864 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-01-18 14:28:18,864 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=26, Invalid=30, Unknown=0, NotChecked=0, Total=56 [2019-01-18 14:28:18,864 INFO L87 Difference]: Start difference. First operand 20 states and 59 transitions. Second operand 4 states. [2019-01-18 14:28:19,130 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:19,130 INFO L93 Difference]: Finished difference Result 25 states and 74 transitions. [2019-01-18 14:28:19,130 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-18 14:28:19,130 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 4 [2019-01-18 14:28:19,130 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:28:19,131 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-18 14:28:19,131 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 24 transitions. [2019-01-18 14:28:19,131 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-18 14:28:19,132 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 24 transitions. [2019-01-18 14:28:19,132 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 24 transitions. [2019-01-18 14:28:19,152 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-18 14:28:19,154 INFO L225 Difference]: With dead ends: 25 [2019-01-18 14:28:19,154 INFO L226 Difference]: Without dead ends: 24 [2019-01-18 14:28:19,155 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 8 GetRequests, 2 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-18 14:28:19,155 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 24 states. [2019-01-18 14:28:19,229 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 24 to 23. [2019-01-18 14:28:19,229 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:28:19,229 INFO L82 GeneralOperation]: Start isEquivalent. First operand 24 states. Second operand 23 states. [2019-01-18 14:28:19,229 INFO L74 IsIncluded]: Start isIncluded. First operand 24 states. Second operand 23 states. [2019-01-18 14:28:19,229 INFO L87 Difference]: Start difference. First operand 24 states. Second operand 23 states. [2019-01-18 14:28:19,231 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:19,232 INFO L93 Difference]: Finished difference Result 24 states and 73 transitions. [2019-01-18 14:28:19,232 INFO L276 IsEmpty]: Start isEmpty. Operand 24 states and 73 transitions. [2019-01-18 14:28:19,232 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:28:19,232 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:28:19,232 INFO L74 IsIncluded]: Start isIncluded. First operand 23 states. Second operand 24 states. [2019-01-18 14:28:19,232 INFO L87 Difference]: Start difference. First operand 23 states. Second operand 24 states. [2019-01-18 14:28:19,234 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:19,234 INFO L93 Difference]: Finished difference Result 24 states and 73 transitions. [2019-01-18 14:28:19,234 INFO L276 IsEmpty]: Start isEmpty. Operand 24 states and 73 transitions. [2019-01-18 14:28:19,234 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:28:19,234 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:28:19,234 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:28:19,235 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:28:19,235 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 23 states. [2019-01-18 14:28:19,236 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 23 states to 23 states and 73 transitions. [2019-01-18 14:28:19,236 INFO L78 Accepts]: Start accepts. Automaton has 23 states and 73 transitions. Word has length 4 [2019-01-18 14:28:19,236 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:28:19,236 INFO L480 AbstractCegarLoop]: Abstraction has 23 states and 73 transitions. [2019-01-18 14:28:19,236 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-01-18 14:28:19,236 INFO L276 IsEmpty]: Start isEmpty. Operand 23 states and 73 transitions. [2019-01-18 14:28:19,236 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-18 14:28:19,237 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:28:19,237 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-18 14:28:19,237 INFO L423 AbstractCegarLoop]: === Iteration 8 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:28:19,237 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:28:19,237 INFO L82 PathProgramCache]: Analyzing trace with hash 941152, now seen corresponding path program 1 times [2019-01-18 14:28:19,237 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:28:19,238 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:28:19,238 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:28:19,238 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:28:19,239 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:28:19,250 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:19,389 INFO L273 TraceCheckUtils]: 0: Hoare triple {1007#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;#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]; {1009#(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_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 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-18 14:28:19,390 INFO L273 TraceCheckUtils]: 1: Hoare triple {1009#(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_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 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]; {1010#(and (= (select |#memory_int| ULTIMATE.start_main_p2) 0) (= 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-18 14:28:19,392 INFO L273 TraceCheckUtils]: 2: Hoare triple {1010#(and (= (select |#memory_int| ULTIMATE.start_main_p2) 0) (= 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]; {1011#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-18 14:28:19,392 INFO L273 TraceCheckUtils]: 3: Hoare triple {1011#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {1008#false} is VALID [2019-01-18 14:28:19,393 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-18 14:28:19,393 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:28:19,393 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:28:19,393 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-18 14:28:19,393 INFO L207 CegarAbsIntRunner]: [0], [10], [18], [23] [2019-01-18 14:28:19,395 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:28:19,395 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:28:19,410 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:28:19,410 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 2. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:28:19,410 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:28:19,410 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:28:19,410 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:28:19,410 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-18 14:28:19,423 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:28:19,423 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:28:19,428 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:19,431 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:19,432 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:28:19,479 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 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 18 treesize of output 21 [2019-01-18 14:28:19,485 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-18 14:28:19,505 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:19,513 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:19,514 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-18 14:28:19,530 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:19,532 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:19,534 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:19,536 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-18 14:28:19,571 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-18 14:28:19,577 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:19,610 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:19,634 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:19,651 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:19,673 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:19,706 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:19,707 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 40 [2019-01-18 14:28:19,805 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:19,808 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:19,809 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 42 [2019-01-18 14:28:19,909 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:19,912 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:19,920 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:19,924 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:19,925 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 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 21 treesize of output 25 [2019-01-18 14:28:19,928 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:19,938 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:19,948 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:20,014 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-18 14:28:20,015 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 4 variables, input treesize:52, output treesize:50 [2019-01-18 14:28:20,022 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:28:20,023 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_44|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5, |v_#valid_12|]. (let ((.cse1 (store |v_#valid_12| ULTIMATE.start_main_p1 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p2 1))) (and (= 0 (select .cse0 ULTIMATE.start_main_p3)) (= (store (store (store (store (store |v_#memory_int_44| 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|) (= 0 (select .cse1 ULTIMATE.start_main_p2)) (= 0 (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4))))) [2019-01-18 14:28:20,023 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:28:20,106 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:20,108 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-18 14:28:20,113 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:20,141 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-18 14:28:20,142 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:55, output treesize:33 [2019-01-18 14:28:20,150 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:28:20,151 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_45|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_45| ULTIMATE.start_main_p4))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= |#memory_int| (store |v_#memory_int_45| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_45| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_45| ULTIMATE.start_main_p2) 0) (= .cse0 0) (= (select |v_#memory_int_45| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-01-18 14:28:20,151 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-18 14:28:20,210 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:20,211 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:20,213 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:20,214 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:20,214 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:28:20,216 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-18 14:28:20,218 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:20,274 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-18 14:28:20,274 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:45, output treesize:29 [2019-01-18 14:28:20,280 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:28:20,280 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_46|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_46| ULTIMATE.start_main_p2))) (and (= (store |v_#memory_int_46| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_46| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (+ (select |v_#memory_int_46| ULTIMATE.start_main_p4) 1) 0) (= 0 .cse0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_46| ULTIMATE.start_main_p1)))) [2019-01-18 14:28:20,281 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (and (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1))) [2019-01-18 14:28:20,304 INFO L273 TraceCheckUtils]: 0: Hoare triple {1007#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;#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]; {1015#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:28:20,306 INFO L273 TraceCheckUtils]: 1: Hoare triple {1015#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1019#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:28:20,307 INFO L273 TraceCheckUtils]: 2: Hoare triple {1019#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {1023#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int)) (and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-01-18 14:28:20,310 INFO L273 TraceCheckUtils]: 3: Hoare triple {1023#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int)) (and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} assume !(#memory_int[main_p1] >= 0); {1008#false} is VALID [2019-01-18 14:28:20,311 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-18 14:28:20,311 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:28:20,349 INFO L273 TraceCheckUtils]: 3: Hoare triple {1027#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1008#false} is VALID [2019-01-18 14:28:20,350 INFO L273 TraceCheckUtils]: 2: Hoare triple {1031#(<= 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]; {1027#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:28:20,352 INFO L273 TraceCheckUtils]: 1: Hoare triple {1035#(<= 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]; {1031#(<= 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-18 14:28:20,354 INFO L273 TraceCheckUtils]: 0: Hoare triple {1007#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;#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]; {1035#(<= 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-18 14:28:20,354 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-18 14:28:20,374 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:28:20,375 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-18 14:28:20,375 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:28:20,375 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-18 14:28:20,375 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:28:20,375 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-18 14:28:20,386 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-18 14:28:20,386 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-18 14:28:20,386 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-18 14:28:20,386 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=41, Invalid=69, Unknown=0, NotChecked=0, Total=110 [2019-01-18 14:28:20,387 INFO L87 Difference]: Start difference. First operand 23 states and 73 transitions. Second operand 8 states. [2019-01-18 14:28:21,253 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:21,254 INFO L93 Difference]: Finished difference Result 56 states and 117 transitions. [2019-01-18 14:28:21,254 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-18 14:28:21,254 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-18 14:28:21,254 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:28:21,254 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:28:21,255 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 73 transitions. [2019-01-18 14:28:21,255 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:28:21,256 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 73 transitions. [2019-01-18 14:28:21,256 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 73 transitions. [2019-01-18 14:28:21,361 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 73 edges. 73 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:28:21,363 INFO L225 Difference]: With dead ends: 56 [2019-01-18 14:28:21,363 INFO L226 Difference]: Without dead ends: 55 [2019-01-18 14:28:21,363 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 28 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=60, Invalid=96, Unknown=0, NotChecked=0, Total=156 [2019-01-18 14:28:21,364 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 55 states. [2019-01-18 14:28:21,494 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 55 to 24. [2019-01-18 14:28:21,495 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:28:21,495 INFO L82 GeneralOperation]: Start isEquivalent. First operand 55 states. Second operand 24 states. [2019-01-18 14:28:21,495 INFO L74 IsIncluded]: Start isIncluded. First operand 55 states. Second operand 24 states. [2019-01-18 14:28:21,495 INFO L87 Difference]: Start difference. First operand 55 states. Second operand 24 states. [2019-01-18 14:28:21,499 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:21,499 INFO L93 Difference]: Finished difference Result 55 states and 115 transitions. [2019-01-18 14:28:21,499 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 115 transitions. [2019-01-18 14:28:21,500 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:28:21,500 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:28:21,500 INFO L74 IsIncluded]: Start isIncluded. First operand 24 states. Second operand 55 states. [2019-01-18 14:28:21,500 INFO L87 Difference]: Start difference. First operand 24 states. Second operand 55 states. [2019-01-18 14:28:21,503 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:21,503 INFO L93 Difference]: Finished difference Result 55 states and 115 transitions. [2019-01-18 14:28:21,503 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 115 transitions. [2019-01-18 14:28:21,503 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:28:21,504 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:28:21,504 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:28:21,504 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:28:21,504 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 24 states. [2019-01-18 14:28:21,506 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 24 states to 24 states and 79 transitions. [2019-01-18 14:28:21,506 INFO L78 Accepts]: Start accepts. Automaton has 24 states and 79 transitions. Word has length 4 [2019-01-18 14:28:21,506 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:28:21,506 INFO L480 AbstractCegarLoop]: Abstraction has 24 states and 79 transitions. [2019-01-18 14:28:21,506 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-18 14:28:21,506 INFO L276 IsEmpty]: Start isEmpty. Operand 24 states and 79 transitions. [2019-01-18 14:28:21,507 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-18 14:28:21,507 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:28:21,507 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-18 14:28:21,507 INFO L423 AbstractCegarLoop]: === Iteration 9 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:28:21,507 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:28:21,508 INFO L82 PathProgramCache]: Analyzing trace with hash 941276, now seen corresponding path program 1 times [2019-01-18 14:28:21,508 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:28:21,508 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:28:21,509 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:28:21,509 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:28:21,509 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:28:21,518 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:21,610 INFO L273 TraceCheckUtils]: 0: Hoare triple {1256#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;#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]; {1258#(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)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:28:21,612 INFO L273 TraceCheckUtils]: 1: Hoare triple {1258#(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)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1259#(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-18 14:28:21,613 INFO L273 TraceCheckUtils]: 2: Hoare triple {1259#(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]; {1260#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-18 14:28:21,613 INFO L273 TraceCheckUtils]: 3: Hoare triple {1260#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {1257#false} is VALID [2019-01-18 14:28:21,613 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-18 14:28:21,614 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:28:21,614 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:28:21,614 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-18 14:28:21,614 INFO L207 CegarAbsIntRunner]: [0], [14], [18], [23] [2019-01-18 14:28:21,617 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:28:21,617 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:28:21,629 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:28:21,630 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 2. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:28:21,630 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:28:21,630 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:28:21,630 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:28:21,630 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-18 14:28:21,639 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:28:21,639 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:28:21,643 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:21,654 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:21,655 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:28:21,712 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:21,713 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 40 [2019-01-18 14:28:21,767 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:21,769 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:21,770 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 42 [2019-01-18 14:28:21,846 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:21,847 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:21,847 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:21,848 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:21,849 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 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 21 treesize of output 25 [2019-01-18 14:28:21,851 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:21,869 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:21,879 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:21,898 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 3 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-18 14:28:21,905 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 5 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-18 14:28:21,915 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 6 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-18 14:28:21,932 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-18 14:28:21,952 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-18 14:28:21,962 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:21,985 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:21,997 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:22,010 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:22,020 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:22,047 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-18 14:28:22,047 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 4 variables, input treesize:52, output treesize:50 [2019-01-18 14:28:22,053 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:28:22,054 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_49|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5, |v_#valid_13|]. (let ((.cse1 (store |v_#valid_13| ULTIMATE.start_main_p1 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p2 1))) (and (= (select .cse0 ULTIMATE.start_main_p3) 0) (= 0 (select .cse1 ULTIMATE.start_main_p2)) (= (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|) (= (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4) 0)))) [2019-01-18 14:28:22,054 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:28:22,191 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:22,193 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-18 14:28:22,200 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:22,221 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-18 14:28:22,222 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:55, output treesize:33 [2019-01-18 14:28:24,401 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:28:24,401 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_50|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_50| ULTIMATE.start_main_p4))) (and (= 0 (select |v_#memory_int_50| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_50| ULTIMATE.start_main_p2)) (= |#memory_int| (store |v_#memory_int_50| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_50| ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 .cse0))) [2019-01-18 14:28:24,401 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-18 14:28:24,463 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:24,465 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:24,466 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:24,467 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:24,468 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:24,469 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:24,470 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-18 14:28:24,473 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:24,499 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-18 14:28:24,499 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:45, output treesize:27 [2019-01-18 14:28:26,574 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:28:26,575 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_51|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_51| ULTIMATE.start_main_p3))) (and (= .cse0 0) (= (select |v_#memory_int_51| ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (+ (select |v_#memory_int_51| ULTIMATE.start_main_p4) 1)) (= (store |v_#memory_int_51| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |v_#memory_int_51| ULTIMATE.start_main_p1) 0))) [2019-01-18 14:28:26,575 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) [2019-01-18 14:28:26,605 INFO L273 TraceCheckUtils]: 0: Hoare triple {1256#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;#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]; {1264#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:28:26,607 INFO L273 TraceCheckUtils]: 1: Hoare triple {1264#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1268#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:28:26,608 INFO L273 TraceCheckUtils]: 2: Hoare triple {1268#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {1272#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)))} is VALID [2019-01-18 14:28:26,608 INFO L273 TraceCheckUtils]: 3: Hoare triple {1272#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)))} assume !(#memory_int[main_p1] >= 0); {1257#false} is VALID [2019-01-18 14:28:26,609 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-18 14:28:26,609 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:28:26,647 INFO L273 TraceCheckUtils]: 3: Hoare triple {1276#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1257#false} is VALID [2019-01-18 14:28:26,648 INFO L273 TraceCheckUtils]: 2: Hoare triple {1280#(<= 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]; {1276#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:28:26,650 INFO L273 TraceCheckUtils]: 1: Hoare triple {1284#(<= 0 (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))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1280#(<= 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-18 14:28:26,652 INFO L273 TraceCheckUtils]: 0: Hoare triple {1256#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;#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]; {1284#(<= 0 (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))} is VALID [2019-01-18 14:28:26,653 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-18 14:28:26,672 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:28:26,673 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-18 14:28:26,673 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:28:26,673 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-18 14:28:26,673 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:28:26,673 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-18 14:28:26,686 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-18 14:28:26,686 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-18 14:28:26,687 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-18 14:28:26,687 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-18 14:28:26,687 INFO L87 Difference]: Start difference. First operand 24 states and 79 transitions. Second operand 8 states. [2019-01-18 14:28:27,614 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:27,614 INFO L93 Difference]: Finished difference Result 52 states and 120 transitions. [2019-01-18 14:28:27,614 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-18 14:28:27,614 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-18 14:28:27,614 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:28:27,615 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:28:27,615 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 63 transitions. [2019-01-18 14:28:27,616 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:28:27,616 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 63 transitions. [2019-01-18 14:28:27,617 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 63 transitions. [2019-01-18 14:28:27,770 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-18 14:28:27,772 INFO L225 Difference]: With dead ends: 52 [2019-01-18 14:28:27,772 INFO L226 Difference]: Without dead ends: 48 [2019-01-18 14:28:27,772 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 0 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-18 14:28:27,773 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 48 states. [2019-01-18 14:28:27,884 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 48 to 26. [2019-01-18 14:28:27,885 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:28:27,885 INFO L82 GeneralOperation]: Start isEquivalent. First operand 48 states. Second operand 26 states. [2019-01-18 14:28:27,885 INFO L74 IsIncluded]: Start isIncluded. First operand 48 states. Second operand 26 states. [2019-01-18 14:28:27,885 INFO L87 Difference]: Start difference. First operand 48 states. Second operand 26 states. [2019-01-18 14:28:27,888 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:27,888 INFO L93 Difference]: Finished difference Result 48 states and 114 transitions. [2019-01-18 14:28:27,889 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 114 transitions. [2019-01-18 14:28:27,889 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:28:27,889 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:28:27,889 INFO L74 IsIncluded]: Start isIncluded. First operand 26 states. Second operand 48 states. [2019-01-18 14:28:27,889 INFO L87 Difference]: Start difference. First operand 26 states. Second operand 48 states. [2019-01-18 14:28:27,891 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:27,892 INFO L93 Difference]: Finished difference Result 48 states and 114 transitions. [2019-01-18 14:28:27,892 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 114 transitions. [2019-01-18 14:28:27,892 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:28:27,892 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:28:27,892 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:28:27,892 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:28:27,893 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 26 states. [2019-01-18 14:28:27,894 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 26 states to 26 states and 90 transitions. [2019-01-18 14:28:27,894 INFO L78 Accepts]: Start accepts. Automaton has 26 states and 90 transitions. Word has length 4 [2019-01-18 14:28:27,894 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:28:27,895 INFO L480 AbstractCegarLoop]: Abstraction has 26 states and 90 transitions. [2019-01-18 14:28:27,895 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-18 14:28:27,895 INFO L276 IsEmpty]: Start isEmpty. Operand 26 states and 90 transitions. [2019-01-18 14:28:27,895 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-18 14:28:27,895 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:28:27,895 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-18 14:28:27,895 INFO L423 AbstractCegarLoop]: === Iteration 10 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:28:27,896 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:28:27,896 INFO L82 PathProgramCache]: Analyzing trace with hash 943510, now seen corresponding path program 1 times [2019-01-18 14:28:27,896 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:28:27,897 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:28:27,897 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:28:27,897 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:28:27,897 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:28:27,902 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:27,945 INFO L273 TraceCheckUtils]: 0: Hoare triple {1492#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;#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]; {1494#(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-18 14:28:27,946 INFO L273 TraceCheckUtils]: 1: Hoare triple {1494#(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]; {1495#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:28:27,947 INFO L273 TraceCheckUtils]: 2: Hoare triple {1495#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {1495#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:28:27,947 INFO L273 TraceCheckUtils]: 3: Hoare triple {1495#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {1493#false} is VALID [2019-01-18 14:28:27,948 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-18 14:28:27,948 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:28:27,948 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:28:27,949 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-18 14:28:27,949 INFO L207 CegarAbsIntRunner]: [0], [20], [24], [25] [2019-01-18 14:28:27,951 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:28:27,951 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:28:27,988 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:28:27,988 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 2. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-18 14:28:27,988 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:28:27,988 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:28:27,989 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:28:27,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 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-18 14:28:27,997 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:28:27,997 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:28:28,001 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:28,005 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:28,006 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:28:28,034 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-18 14:28:28,041 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-18 14:28:28,052 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:28,054 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:28,055 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 33 [2019-01-18 14:28:28,073 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:28,075 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:28,078 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:28,079 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 5 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 47 [2019-01-18 14:28:28,095 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:28,097 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:28,099 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:28,100 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:28,102 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 27 treesize of output 62 [2019-01-18 14:28:28,119 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:28,148 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:28,165 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:28,178 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:28,191 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:28,217 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 43 treesize of output 39 [2019-01-18 14:28:28,249 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:28,252 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:28,262 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 36 treesize of output 49 [2019-01-18 14:28:28,373 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:28,374 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:28,376 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:28,377 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:28,378 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 32 treesize of output 57 [2019-01-18 14:28:28,449 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:28,450 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:28,451 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:28,452 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:28,453 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:28,456 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:28,457 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 5 select indices, 5 select index equivalence classes, 10 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 37 [2019-01-18 14:28:28,460 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:28,475 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:28,490 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:28,506 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:28,551 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 2 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-18 14:28:28,551 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 5 variables, input treesize:61, output treesize:62 [2019-01-18 14:28:28,558 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:28:28,559 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_54|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, |v_#valid_14|]. (let ((.cse0 (store (store |v_#valid_14| ULTIMATE.start_main_p1 1) ULTIMATE.start_main_p2 1))) (let ((.cse1 (store .cse0 ULTIMATE.start_main_p3 1))) (and (= 0 (select .cse0 ULTIMATE.start_main_p3)) (= 0 (select .cse1 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)) (= 0 (select (store .cse1 ULTIMATE.start_main_p4 1) ULTIMATE.start_main_p5))))) [2019-01-18 14:28:28,559 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p1]. (and (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:28:28,647 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:28,648 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 10 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 68 [2019-01-18 14:28:28,652 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:28,687 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-18 14:28:28,687 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:72, output treesize:46 [2019-01-18 14:28:30,928 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:28:30,928 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_55|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_55| ULTIMATE.start_main_p5))) (and (= .cse0 0) (= 0 (select |v_#memory_int_55| ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_55| ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_55| ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_55| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (store |v_#memory_int_55| ULTIMATE.start_main_p5 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))) [2019-01-18 14:28:30,928 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1, ULTIMATE.start_main_p5]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:28:31,008 INFO L273 TraceCheckUtils]: 0: Hoare triple {1492#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;#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]; {1499#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-18 14:28:31,013 INFO L273 TraceCheckUtils]: 1: Hoare triple {1499#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {1503#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-18 14:28:31,014 INFO L273 TraceCheckUtils]: 2: Hoare triple {1503#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} assume #memory_int[main_p1] >= 0; {1503#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-18 14:28:31,015 INFO L273 TraceCheckUtils]: 3: Hoare triple {1503#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} assume !(#memory_int[main_p2] <= 0); {1493#false} is VALID [2019-01-18 14:28:31,015 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-18 14:28:31,016 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:28:31,039 INFO L273 TraceCheckUtils]: 3: Hoare triple {1510#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {1493#false} is VALID [2019-01-18 14:28:31,040 INFO L273 TraceCheckUtils]: 2: Hoare triple {1510#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {1510#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:28:31,042 INFO L273 TraceCheckUtils]: 1: Hoare triple {1517#(<= (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]; {1510#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:28:31,044 INFO L273 TraceCheckUtils]: 0: Hoare triple {1492#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;#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]; {1517#(<= (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-18 14:28:31,045 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-18 14:28:31,066 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:28:31,066 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-01-18 14:28:31,066 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:28:31,066 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-01-18 14:28:31,066 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:28:31,066 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-01-18 14:28:31,081 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-18 14:28:31,081 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-01-18 14:28:31,081 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-01-18 14:28:31,082 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-18 14:28:31,082 INFO L87 Difference]: Start difference. First operand 26 states and 90 transitions. Second operand 6 states. [2019-01-18 14:28:31,523 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:31,523 INFO L93 Difference]: Finished difference Result 42 states and 110 transitions. [2019-01-18 14:28:31,523 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-18 14:28:31,523 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-01-18 14:28:31,523 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:28:31,524 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-18 14:28:31,524 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 46 transitions. [2019-01-18 14:28:31,524 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-18 14:28:31,525 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 46 transitions. [2019-01-18 14:28:31,525 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 46 transitions. [2019-01-18 14:28:31,625 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-18 14:28:31,626 INFO L225 Difference]: With dead ends: 42 [2019-01-18 14:28:31,626 INFO L226 Difference]: Without dead ends: 41 [2019-01-18 14:28:31,627 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-18 14:28:31,627 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 41 states. [2019-01-18 14:28:31,754 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 41 to 26. [2019-01-18 14:28:31,755 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:28:31,755 INFO L82 GeneralOperation]: Start isEquivalent. First operand 41 states. Second operand 26 states. [2019-01-18 14:28:31,755 INFO L74 IsIncluded]: Start isIncluded. First operand 41 states. Second operand 26 states. [2019-01-18 14:28:31,755 INFO L87 Difference]: Start difference. First operand 41 states. Second operand 26 states. [2019-01-18 14:28:31,757 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:31,757 INFO L93 Difference]: Finished difference Result 41 states and 108 transitions. [2019-01-18 14:28:31,757 INFO L276 IsEmpty]: Start isEmpty. Operand 41 states and 108 transitions. [2019-01-18 14:28:31,757 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:28:31,757 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:28:31,758 INFO L74 IsIncluded]: Start isIncluded. First operand 26 states. Second operand 41 states. [2019-01-18 14:28:31,758 INFO L87 Difference]: Start difference. First operand 26 states. Second operand 41 states. [2019-01-18 14:28:31,759 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:31,759 INFO L93 Difference]: Finished difference Result 41 states and 108 transitions. [2019-01-18 14:28:31,759 INFO L276 IsEmpty]: Start isEmpty. Operand 41 states and 108 transitions. [2019-01-18 14:28:31,760 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:28:31,760 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:28:31,760 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:28:31,760 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:28:31,760 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 26 states. [2019-01-18 14:28:31,761 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 26 states to 26 states and 90 transitions. [2019-01-18 14:28:31,761 INFO L78 Accepts]: Start accepts. Automaton has 26 states and 90 transitions. Word has length 4 [2019-01-18 14:28:31,761 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:28:31,762 INFO L480 AbstractCegarLoop]: Abstraction has 26 states and 90 transitions. [2019-01-18 14:28:31,762 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-01-18 14:28:31,762 INFO L276 IsEmpty]: Start isEmpty. Operand 26 states and 90 transitions. [2019-01-18 14:28:31,762 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-18 14:28:31,762 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:28:31,762 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-18 14:28:31,762 INFO L423 AbstractCegarLoop]: === Iteration 11 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:28:31,762 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:28:31,763 INFO L82 PathProgramCache]: Analyzing trace with hash 943074, now seen corresponding path program 1 times [2019-01-18 14:28:31,763 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:28:31,763 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:28:31,764 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:28:31,764 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:28:31,764 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:28:31,770 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:31,872 INFO L273 TraceCheckUtils]: 0: Hoare triple {1699#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;#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]; {1701#(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-18 14:28:31,873 INFO L273 TraceCheckUtils]: 1: Hoare triple {1701#(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]; {1702#(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-18 14:28:31,874 INFO L273 TraceCheckUtils]: 2: Hoare triple {1702#(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]; {1703#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-18 14:28:31,875 INFO L273 TraceCheckUtils]: 3: Hoare triple {1703#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {1700#false} is VALID [2019-01-18 14:28:31,876 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-18 14:28:31,876 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:28:31,876 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:28:31,876 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-18 14:28:31,876 INFO L207 CegarAbsIntRunner]: [0], [10], [20], [23] [2019-01-18 14:28:31,878 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:28:31,878 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:28:31,893 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:28:31,893 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 2. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:28:31,894 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:28:31,894 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:28:31,894 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:28:31,894 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-18 14:28:31,902 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:28:31,903 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:28:31,908 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:31,911 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:31,912 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:28:31,959 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 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 18 treesize of output 21 [2019-01-18 14:28:31,968 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-18 14:28:31,984 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:31,985 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:31,986 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-18 14:28:32,026 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:32,027 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:32,028 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:32,029 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-18 14:28:32,048 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:32,049 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:32,051 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:32,052 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:32,053 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-18 14:28:32,057 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:32,099 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:32,118 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:32,132 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:32,146 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:32,177 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:32,178 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 48 treesize of output 54 [2019-01-18 14:28:32,229 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:32,230 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:32,231 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 41 treesize of output 53 [2019-01-18 14:28:32,293 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:32,294 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:32,296 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:32,297 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:32,298 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 32 treesize of output 61 [2019-01-18 14:28:32,371 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:32,372 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:32,373 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:32,374 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:32,376 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:32,377 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:32,378 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 5 select indices, 5 select index equivalence classes, 11 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 41 [2019-01-18 14:28:32,384 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:32,401 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:32,418 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:32,436 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:32,485 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-18 14:28:32,486 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 4 variables, input treesize:69, output treesize:66 [2019-01-18 14:28:32,494 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:28:32,494 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_57|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, |v_#valid_15|]. (let ((.cse0 (store |v_#valid_15| ULTIMATE.start_main_p1 1))) (let ((.cse2 (store .cse0 ULTIMATE.start_main_p2 1))) (let ((.cse1 (store .cse2 ULTIMATE.start_main_p3 1))) (and (= (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|) (= 0 (select .cse0 ULTIMATE.start_main_p2)) (= (select (store .cse1 ULTIMATE.start_main_p4 1) ULTIMATE.start_main_p5) 0) (= 0 (select .cse1 ULTIMATE.start_main_p4)) (= 0 (select .cse2 ULTIMATE.start_main_p3)))))) [2019-01-18 14:28:32,494 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (and (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:28:32,575 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:32,577 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-18 14:28:32,580 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:32,621 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-18 14:28:32,622 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:76, output treesize:50 [2019-01-18 14:28:34,627 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:28:34,627 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_58|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_58| ULTIMATE.start_main_p5))) (and (= (select |v_#memory_int_58| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_58| ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (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|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= .cse0 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))) [2019-01-18 14:28:34,628 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:28:34,706 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:34,708 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:34,709 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:34,710 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:34,711 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:34,712 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:34,713 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:34,715 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-18 14:28:34,719 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:34,764 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-18 14:28:34,764 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:60, output treesize:38 [2019-01-18 14:28:35,760 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:28:35,760 WARN L385 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)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_59| ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (store |v_#memory_int_59| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 .cse0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_59| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-01-18 14:28:35,760 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5]. (and (not (= 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)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:28:35,801 INFO L273 TraceCheckUtils]: 0: Hoare triple {1699#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;#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]; {1707#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:28:35,804 INFO L273 TraceCheckUtils]: 1: Hoare triple {1707#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {1711#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-18 14:28:35,806 INFO L273 TraceCheckUtils]: 2: Hoare triple {1711#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {1715#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p2 Int)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-18 14:28:35,807 INFO L273 TraceCheckUtils]: 3: Hoare triple {1715#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p2 Int)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} assume !(#memory_int[main_p1] >= 0); {1700#false} is VALID [2019-01-18 14:28:35,808 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-18 14:28:35,808 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:28:35,847 INFO L273 TraceCheckUtils]: 3: Hoare triple {1719#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1700#false} is VALID [2019-01-18 14:28:35,848 INFO L273 TraceCheckUtils]: 2: Hoare triple {1723#(<= 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]; {1719#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:28:35,849 INFO L273 TraceCheckUtils]: 1: Hoare triple {1727#(<= 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]; {1723#(<= 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-18 14:28:35,851 INFO L273 TraceCheckUtils]: 0: Hoare triple {1699#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;#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]; {1727#(<= 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-18 14:28:35,852 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-18 14:28:35,871 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:28:35,871 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-18 14:28:35,871 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:28:35,872 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-18 14:28:35,872 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:28:35,872 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-18 14:28:35,887 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-18 14:28:35,888 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-18 14:28:35,888 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-18 14:28:35,888 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-18 14:28:35,888 INFO L87 Difference]: Start difference. First operand 26 states and 90 transitions. Second operand 8 states. [2019-01-18 14:28:36,749 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:36,750 INFO L93 Difference]: Finished difference Result 54 states and 131 transitions. [2019-01-18 14:28:36,750 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-18 14:28:36,750 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-18 14:28:36,750 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:28:36,750 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:28:36,751 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 60 transitions. [2019-01-18 14:28:36,751 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:28:36,752 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 60 transitions. [2019-01-18 14:28:36,752 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 60 transitions. [2019-01-18 14:28:37,015 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-18 14:28:37,016 INFO L225 Difference]: With dead ends: 54 [2019-01-18 14:28:37,017 INFO L226 Difference]: Without dead ends: 53 [2019-01-18 14:28:37,017 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 0 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-18 14:28:37,017 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 53 states. [2019-01-18 14:28:37,206 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 53 to 27. [2019-01-18 14:28:37,206 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:28:37,206 INFO L82 GeneralOperation]: Start isEquivalent. First operand 53 states. Second operand 27 states. [2019-01-18 14:28:37,206 INFO L74 IsIncluded]: Start isIncluded. First operand 53 states. Second operand 27 states. [2019-01-18 14:28:37,207 INFO L87 Difference]: Start difference. First operand 53 states. Second operand 27 states. [2019-01-18 14:28:37,209 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:37,209 INFO L93 Difference]: Finished difference Result 53 states and 129 transitions. [2019-01-18 14:28:37,209 INFO L276 IsEmpty]: Start isEmpty. Operand 53 states and 129 transitions. [2019-01-18 14:28:37,209 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:28:37,209 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:28:37,209 INFO L74 IsIncluded]: Start isIncluded. First operand 27 states. Second operand 53 states. [2019-01-18 14:28:37,210 INFO L87 Difference]: Start difference. First operand 27 states. Second operand 53 states. [2019-01-18 14:28:37,211 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:37,211 INFO L93 Difference]: Finished difference Result 53 states and 129 transitions. [2019-01-18 14:28:37,211 INFO L276 IsEmpty]: Start isEmpty. Operand 53 states and 129 transitions. [2019-01-18 14:28:37,212 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:28:37,212 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:28:37,212 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:28:37,212 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:28:37,212 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 27 states. [2019-01-18 14:28:37,213 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 27 states to 27 states and 96 transitions. [2019-01-18 14:28:37,213 INFO L78 Accepts]: Start accepts. Automaton has 27 states and 96 transitions. Word has length 4 [2019-01-18 14:28:37,213 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:28:37,214 INFO L480 AbstractCegarLoop]: Abstraction has 27 states and 96 transitions. [2019-01-18 14:28:37,214 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-18 14:28:37,214 INFO L276 IsEmpty]: Start isEmpty. Operand 27 states and 96 transitions. [2019-01-18 14:28:37,214 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-18 14:28:37,214 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:28:37,214 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-18 14:28:37,214 INFO L423 AbstractCegarLoop]: === Iteration 12 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:28:37,215 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:28:37,215 INFO L82 PathProgramCache]: Analyzing trace with hash 929868, now seen corresponding path program 1 times [2019-01-18 14:28:37,215 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:28:37,216 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:28:37,216 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:28:37,216 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:28:37,216 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:28:37,224 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:37,380 INFO L273 TraceCheckUtils]: 0: Hoare triple {1951#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;#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]; {1953#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-18 14:28:37,382 INFO L273 TraceCheckUtils]: 1: Hoare triple {1953#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1954#(and (or (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (or (<= 1 (select |#memory_int| ULTIMATE.start_main_p4)) (not (= (select |#memory_int| ULTIMATE.start_main_p4) (select |#memory_int| ULTIMATE.start_main_p1)))))} is VALID [2019-01-18 14:28:37,383 INFO L273 TraceCheckUtils]: 2: Hoare triple {1954#(and (or (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (or (<= 1 (select |#memory_int| ULTIMATE.start_main_p4)) (not (= (select |#memory_int| ULTIMATE.start_main_p4) (select |#memory_int| ULTIMATE.start_main_p1)))))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1955#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:28:37,390 INFO L273 TraceCheckUtils]: 3: Hoare triple {1955#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1952#false} is VALID [2019-01-18 14:28:37,390 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-18 14:28:37,390 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:28:37,390 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:28:37,390 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-18 14:28:37,391 INFO L207 CegarAbsIntRunner]: [0], [6], [18], [23] [2019-01-18 14:28:37,391 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:28:37,391 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:28:37,402 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:28:37,402 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 2. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:28:37,402 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:28:37,402 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:28:37,402 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:28:37,403 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-18 14:28:37,415 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:28:37,415 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:28:37,419 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:37,430 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:37,430 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:28:37,487 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:37,488 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 40 [2019-01-18 14:28:37,532 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:37,533 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:37,535 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 42 [2019-01-18 14:28:37,586 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:37,588 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:37,589 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:37,590 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:37,591 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 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 21 treesize of output 25 [2019-01-18 14:28:37,593 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:37,606 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:37,614 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:37,635 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 3 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-18 14:28:37,645 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 5 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-18 14:28:37,658 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 6 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-18 14:28:37,676 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 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-18 14:28:37,704 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-18 14:28:37,708 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:37,732 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:37,751 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:37,764 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:37,777 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:37,819 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 2 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-18 14:28:37,820 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 5 variables, input treesize:52, output treesize:50 [2019-01-18 14:28:37,831 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:28:37,831 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_62|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5, |v_#valid_16|]. (let ((.cse1 (store |v_#valid_16| ULTIMATE.start_main_p1 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p2 1))) (and (= (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|) (= (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4) 0) (= (select .cse0 ULTIMATE.start_main_p3) 0) (= 0 (select .cse1 ULTIMATE.start_main_p2))))) [2019-01-18 14:28:37,831 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:28:37,899 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:37,900 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-18 14:28:37,903 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:37,928 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-18 14:28:37,929 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:55, output treesize:33 [2019-01-18 14:28:37,934 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:28:37,934 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_63|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_63| ULTIMATE.start_main_p1))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_63| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (store |v_#memory_int_63| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= .cse0 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |v_#memory_int_63| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_63| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-01-18 14:28:37,934 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:28:37,992 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:37,993 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:37,994 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:37,995 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:37,997 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:37,998 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:37,999 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 57 [2019-01-18 14:28:38,002 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:38,032 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-18 14:28:38,033 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:43, output treesize:25 [2019-01-18 14:28:40,037 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:28:40,037 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_64|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_64| ULTIMATE.start_main_p4))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 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) (= (store |v_#memory_int_64| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_64| ULTIMATE.start_main_p1) 1))) [2019-01-18 14:28:40,037 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-18 14:28:40,089 INFO L273 TraceCheckUtils]: 0: Hoare triple {1951#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;#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]; {1959#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:28:40,091 INFO L273 TraceCheckUtils]: 1: Hoare triple {1959#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1963#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:28:40,093 INFO L273 TraceCheckUtils]: 2: Hoare triple {1963#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (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]; {1967#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} is VALID [2019-01-18 14:28:40,094 INFO L273 TraceCheckUtils]: 3: Hoare triple {1967#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} assume !(#memory_int[main_p1] >= 0); {1952#false} is VALID [2019-01-18 14:28:40,094 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-18 14:28:40,095 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:28:40,151 INFO L273 TraceCheckUtils]: 3: Hoare triple {1955#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1952#false} is VALID [2019-01-18 14:28:40,152 INFO L273 TraceCheckUtils]: 2: Hoare triple {1974#(<= 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]; {1955#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:28:40,154 INFO L273 TraceCheckUtils]: 1: Hoare triple {1978#(<= 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]; {1974#(<= 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-18 14:28:40,156 INFO L273 TraceCheckUtils]: 0: Hoare triple {1951#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;#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]; {1978#(<= 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-18 14:28:40,156 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-18 14:28:40,174 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:28:40,174 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 8 [2019-01-18 14:28:40,175 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:28:40,175 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-18 14:28:40,175 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:28:40,175 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-18 14:28:40,189 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-18 14:28:40,189 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-18 14:28:40,189 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-18 14:28:40,189 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=37, Invalid=53, Unknown=0, NotChecked=0, Total=90 [2019-01-18 14:28:40,189 INFO L87 Difference]: Start difference. First operand 27 states and 96 transitions. Second operand 8 states. [2019-01-18 14:28:40,995 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:40,995 INFO L93 Difference]: Finished difference Result 63 states and 165 transitions. [2019-01-18 14:28:40,995 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-18 14:28:40,995 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-18 14:28:40,995 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:28:40,996 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:28:40,997 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 79 transitions. [2019-01-18 14:28:40,997 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:28:40,997 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 79 transitions. [2019-01-18 14:28:40,998 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 79 transitions. [2019-01-18 14:28:41,112 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-18 14:28:41,114 INFO L225 Difference]: With dead ends: 63 [2019-01-18 14:28:41,114 INFO L226 Difference]: Without dead ends: 61 [2019-01-18 14:28:41,114 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 9 GetRequests, 1 SyntacticMatches, 0 SemanticMatches, 8 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 22 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=37, Invalid=53, Unknown=0, NotChecked=0, Total=90 [2019-01-18 14:28:41,115 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 61 states. [2019-01-18 14:28:41,279 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 61 to 32. [2019-01-18 14:28:41,279 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:28:41,279 INFO L82 GeneralOperation]: Start isEquivalent. First operand 61 states. Second operand 32 states. [2019-01-18 14:28:41,280 INFO L74 IsIncluded]: Start isIncluded. First operand 61 states. Second operand 32 states. [2019-01-18 14:28:41,280 INFO L87 Difference]: Start difference. First operand 61 states. Second operand 32 states. [2019-01-18 14:28:41,282 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:41,282 INFO L93 Difference]: Finished difference Result 61 states and 161 transitions. [2019-01-18 14:28:41,282 INFO L276 IsEmpty]: Start isEmpty. Operand 61 states and 161 transitions. [2019-01-18 14:28:41,283 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:28:41,283 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:28:41,283 INFO L74 IsIncluded]: Start isIncluded. First operand 32 states. Second operand 61 states. [2019-01-18 14:28:41,283 INFO L87 Difference]: Start difference. First operand 32 states. Second operand 61 states. [2019-01-18 14:28:41,285 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:41,285 INFO L93 Difference]: Finished difference Result 61 states and 161 transitions. [2019-01-18 14:28:41,285 INFO L276 IsEmpty]: Start isEmpty. Operand 61 states and 161 transitions. [2019-01-18 14:28:41,285 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:28:41,285 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:28:41,286 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:28:41,286 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:28:41,286 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 32 states. [2019-01-18 14:28:41,287 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 32 states to 32 states and 113 transitions. [2019-01-18 14:28:41,287 INFO L78 Accepts]: Start accepts. Automaton has 32 states and 113 transitions. Word has length 4 [2019-01-18 14:28:41,287 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:28:41,287 INFO L480 AbstractCegarLoop]: Abstraction has 32 states and 113 transitions. [2019-01-18 14:28:41,287 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-18 14:28:41,287 INFO L276 IsEmpty]: Start isEmpty. Operand 32 states and 113 transitions. [2019-01-18 14:28:41,288 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-18 14:28:41,288 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:28:41,288 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-18 14:28:41,288 INFO L423 AbstractCegarLoop]: === Iteration 13 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:28:41,288 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:28:41,288 INFO L82 PathProgramCache]: Analyzing trace with hash 930056, now seen corresponding path program 1 times [2019-01-18 14:28:41,289 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:28:41,289 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:28:41,289 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:28:41,289 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:28:41,290 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:28:41,295 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:41,353 INFO L273 TraceCheckUtils]: 0: Hoare triple {2235#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;#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]; {2237#(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-18 14:28:41,354 INFO L273 TraceCheckUtils]: 1: Hoare triple {2237#(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]; {2237#(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-18 14:28:41,355 INFO L273 TraceCheckUtils]: 2: Hoare triple {2237#(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; {2238#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:28:41,356 INFO L273 TraceCheckUtils]: 3: Hoare triple {2238#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {2236#false} is VALID [2019-01-18 14:28:41,356 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-18 14:28:41,357 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2019-01-18 14:28:41,357 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [] total 2 [2019-01-18 14:28:41,357 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-18 14:28:41,357 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 4 [2019-01-18 14:28:41,357 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:28:41,358 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-01-18 14:28:41,362 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-18 14:28:41,362 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-01-18 14:28:41,362 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-01-18 14:28:41,363 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=6, Invalid=6, Unknown=0, NotChecked=0, Total=12 [2019-01-18 14:28:41,363 INFO L87 Difference]: Start difference. First operand 32 states and 113 transitions. Second operand 4 states. [2019-01-18 14:28:41,700 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:41,701 INFO L93 Difference]: Finished difference Result 41 states and 126 transitions. [2019-01-18 14:28:41,701 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-18 14:28:41,701 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 4 [2019-01-18 14:28:41,701 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:28:41,701 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-18 14:28:41,702 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 28 transitions. [2019-01-18 14:28:41,702 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-18 14:28:41,702 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 28 transitions. [2019-01-18 14:28:41,703 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 28 transitions. [2019-01-18 14:28:41,821 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 28 edges. 28 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:28:41,822 INFO L225 Difference]: With dead ends: 41 [2019-01-18 14:28:41,822 INFO L226 Difference]: Without dead ends: 40 [2019-01-18 14:28:41,823 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 3 GetRequests, 0 SyntacticMatches, 1 SemanticMatches, 2 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=6, Invalid=6, Unknown=0, NotChecked=0, Total=12 [2019-01-18 14:28:41,823 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 40 states. [2019-01-18 14:28:42,018 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 40 to 33. [2019-01-18 14:28:42,018 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:28:42,019 INFO L82 GeneralOperation]: Start isEquivalent. First operand 40 states. Second operand 33 states. [2019-01-18 14:28:42,019 INFO L74 IsIncluded]: Start isIncluded. First operand 40 states. Second operand 33 states. [2019-01-18 14:28:42,019 INFO L87 Difference]: Start difference. First operand 40 states. Second operand 33 states. [2019-01-18 14:28:42,022 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:42,022 INFO L93 Difference]: Finished difference Result 40 states and 124 transitions. [2019-01-18 14:28:42,022 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 124 transitions. [2019-01-18 14:28:42,023 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:28:42,023 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:28:42,023 INFO L74 IsIncluded]: Start isIncluded. First operand 33 states. Second operand 40 states. [2019-01-18 14:28:42,023 INFO L87 Difference]: Start difference. First operand 33 states. Second operand 40 states. [2019-01-18 14:28:42,024 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:42,024 INFO L93 Difference]: Finished difference Result 40 states and 124 transitions. [2019-01-18 14:28:42,025 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 124 transitions. [2019-01-18 14:28:42,025 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:28:42,025 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:28:42,025 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:28:42,025 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:28:42,025 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 33 states. [2019-01-18 14:28:42,026 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 33 states to 33 states and 118 transitions. [2019-01-18 14:28:42,027 INFO L78 Accepts]: Start accepts. Automaton has 33 states and 118 transitions. Word has length 4 [2019-01-18 14:28:42,027 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:28:42,027 INFO L480 AbstractCegarLoop]: Abstraction has 33 states and 118 transitions. [2019-01-18 14:28:42,027 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-01-18 14:28:42,027 INFO L276 IsEmpty]: Start isEmpty. Operand 33 states and 118 transitions. [2019-01-18 14:28:42,027 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-18 14:28:42,027 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:28:42,028 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-18 14:28:42,028 INFO L423 AbstractCegarLoop]: === Iteration 14 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:28:42,028 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:28:42,028 INFO L82 PathProgramCache]: Analyzing trace with hash 933712, now seen corresponding path program 2 times [2019-01-18 14:28:42,028 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:28:42,029 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:28:42,029 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:28:42,029 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:28:42,029 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:28:42,036 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:42,129 INFO L273 TraceCheckUtils]: 0: Hoare triple {2429#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;#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]; {2431#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 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-18 14:28:42,131 INFO L273 TraceCheckUtils]: 1: Hoare triple {2431#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 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]; {2432#(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-18 14:28:42,147 INFO L273 TraceCheckUtils]: 2: Hoare triple {2432#(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]; {2433#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-18 14:28:42,148 INFO L273 TraceCheckUtils]: 3: Hoare triple {2433#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {2430#false} is VALID [2019-01-18 14:28:42,148 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-18 14:28:42,148 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:28:42,148 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:28:42,148 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-18 14:28:42,149 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-18 14:28:42,149 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:28:42,149 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-18 14:28:42,158 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-18 14:28:42,158 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-18 14:28:42,163 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 2 check-sat command(s) [2019-01-18 14:28:42,164 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-18 14:28:42,171 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:42,172 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:28:42,212 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 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 18 treesize of output 21 [2019-01-18 14:28:42,219 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-18 14:28:42,233 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:42,235 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:42,236 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-18 14:28:42,248 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:42,250 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:42,252 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:42,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-18 14:28:42,279 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:42,280 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:42,281 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:42,283 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:42,284 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-18 14:28:42,287 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:42,319 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:42,335 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:42,350 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:42,363 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:42,397 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:42,398 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 48 treesize of output 54 [2019-01-18 14:28:42,449 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:42,451 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:42,452 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 41 treesize of output 53 [2019-01-18 14:28:42,579 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:42,580 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:42,580 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:42,581 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:42,582 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 32 treesize of output 61 [2019-01-18 14:28:42,652 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:42,654 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:42,655 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:42,656 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:42,657 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:42,658 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:42,659 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 5 select indices, 5 select index equivalence classes, 11 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 41 [2019-01-18 14:28:42,662 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:42,680 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:42,698 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:42,717 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:42,756 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-18 14:28:42,757 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 4 variables, input treesize:69, output treesize:66 [2019-01-18 14:28:42,779 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:28:42,780 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_67|, ULTIMATE.start_main_p3, ULTIMATE.start_malloc_ptr, |v_#valid_17|]. (let ((.cse2 (store |v_#valid_17| ULTIMATE.start_main_p1 1))) (let ((.cse1 (store .cse2 ULTIMATE.start_main_p2 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p3 1))) (and (= 0 (select (store .cse0 ULTIMATE.start_main_p4 1) ULTIMATE.start_malloc_ptr)) (= 0 (select .cse0 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_malloc_ptr 0) |#memory_int|) (= 0 (select .cse1 ULTIMATE.start_main_p3)) (= 0 (select .cse2 ULTIMATE.start_main_p2)))))) [2019-01-18 14:28:42,780 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_malloc_ptr]. (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:28:43,219 WARN L181 SmtUtils]: Spent 199.00 ms on a formula simplification that was a NOOP. DAG size: 40 [2019-01-18 14:28:43,280 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:43,282 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-18 14:28:43,285 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:43,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-18 14:28:43,325 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:76, output treesize:50 [2019-01-18 14:28:43,334 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:28:43,334 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_68|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_malloc_ptr]. (let ((.cse0 (select |v_#memory_int_68| ULTIMATE.start_main_p2))) (and (= .cse0 0) (= (store |v_#memory_int_68| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_68| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_68| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_68| ULTIMATE.start_malloc_ptr)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_68| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)))) [2019-01-18 14:28:43,335 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr))) [2019-01-18 14:28:43,406 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:43,411 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:43,412 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:43,413 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:43,414 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:43,414 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:43,415 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:28:43,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 38 treesize of output 79 [2019-01-18 14:28:43,420 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:43,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-18 14:28:43,464 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:62, output treesize:44 [2019-01-18 14:28:43,474 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:28:43,474 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_69|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_69| ULTIMATE.start_main_p4))) (and (= (store |v_#memory_int_69| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_69| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_69| ULTIMATE.start_malloc_ptr)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (= (select |v_#memory_int_69| ULTIMATE.start_main_p1) 0) (= 0 .cse0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (+ (select |v_#memory_int_69| ULTIMATE.start_main_p2) 1)))) [2019-01-18 14:28:43,474 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr))) [2019-01-18 14:28:43,503 INFO L273 TraceCheckUtils]: 0: Hoare triple {2429#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;#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]; {2437#(and (exists ((ULTIMATE.start_malloc_ptr Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:28:43,505 INFO L273 TraceCheckUtils]: 1: Hoare triple {2437#(and (exists ((ULTIMATE.start_malloc_ptr Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {2441#(and (exists ((ULTIMATE.start_main_p2 Int)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_malloc_ptr Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:28:43,506 INFO L273 TraceCheckUtils]: 2: Hoare triple {2441#(and (exists ((ULTIMATE.start_main_p2 Int)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_malloc_ptr Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2445#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_malloc_ptr Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int)) (and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-18 14:28:43,507 INFO L273 TraceCheckUtils]: 3: Hoare triple {2445#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_malloc_ptr Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int)) (and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume !(#memory_int[main_p1] >= 0); {2430#false} is VALID [2019-01-18 14:28:43,508 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-18 14:28:43,508 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:28:43,551 INFO L273 TraceCheckUtils]: 3: Hoare triple {2449#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {2430#false} is VALID [2019-01-18 14:28:43,552 INFO L273 TraceCheckUtils]: 2: Hoare triple {2453#(<= 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]; {2449#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:28:43,553 INFO L273 TraceCheckUtils]: 1: Hoare triple {2457#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {2453#(<= 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-18 14:28:43,554 INFO L273 TraceCheckUtils]: 0: Hoare triple {2429#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;#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]; {2457#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:28:43,555 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-18 14:28:43,574 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:28:43,574 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-18 14:28:43,574 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:28:43,575 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-18 14:28:43,575 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:28:43,575 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-18 14:28:43,587 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-18 14:28:43,587 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-18 14:28:43,587 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-18 14:28:43,588 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=43, Invalid=67, Unknown=0, NotChecked=0, Total=110 [2019-01-18 14:28:43,588 INFO L87 Difference]: Start difference. First operand 33 states and 118 transitions. Second operand 8 states. [2019-01-18 14:28:44,579 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:44,579 INFO L93 Difference]: Finished difference Result 57 states and 149 transitions. [2019-01-18 14:28:44,579 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-18 14:28:44,579 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-18 14:28:44,580 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:28:44,580 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:28:44,580 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 58 transitions. [2019-01-18 14:28:44,581 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:28:44,581 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 58 transitions. [2019-01-18 14:28:44,581 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 58 transitions. [2019-01-18 14:28:44,675 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-18 14:28:44,677 INFO L225 Difference]: With dead ends: 57 [2019-01-18 14:28:44,677 INFO L226 Difference]: Without dead ends: 55 [2019-01-18 14:28:44,677 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=61, Invalid=95, Unknown=0, NotChecked=0, Total=156 [2019-01-18 14:28:44,678 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 55 states. [2019-01-18 14:28:45,611 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 55 to 33. [2019-01-18 14:28:45,611 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:28:45,612 INFO L82 GeneralOperation]: Start isEquivalent. First operand 55 states. Second operand 33 states. [2019-01-18 14:28:45,612 INFO L74 IsIncluded]: Start isIncluded. First operand 55 states. Second operand 33 states. [2019-01-18 14:28:45,612 INFO L87 Difference]: Start difference. First operand 55 states. Second operand 33 states. [2019-01-18 14:28:45,614 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:45,614 INFO L93 Difference]: Finished difference Result 55 states and 146 transitions. [2019-01-18 14:28:45,614 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 146 transitions. [2019-01-18 14:28:45,615 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:28:45,615 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:28:45,615 INFO L74 IsIncluded]: Start isIncluded. First operand 33 states. Second operand 55 states. [2019-01-18 14:28:45,615 INFO L87 Difference]: Start difference. First operand 33 states. Second operand 55 states. [2019-01-18 14:28:45,616 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:45,616 INFO L93 Difference]: Finished difference Result 55 states and 146 transitions. [2019-01-18 14:28:45,616 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 146 transitions. [2019-01-18 14:28:45,617 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:28:45,617 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:28:45,617 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:28:45,617 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:28:45,617 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 33 states. [2019-01-18 14:28:45,618 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 33 states to 33 states and 117 transitions. [2019-01-18 14:28:45,618 INFO L78 Accepts]: Start accepts. Automaton has 33 states and 117 transitions. Word has length 4 [2019-01-18 14:28:45,619 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:28:45,619 INFO L480 AbstractCegarLoop]: Abstraction has 33 states and 117 transitions. [2019-01-18 14:28:45,619 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-18 14:28:45,619 INFO L276 IsEmpty]: Start isEmpty. Operand 33 states and 117 transitions. [2019-01-18 14:28:45,619 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-18 14:28:45,619 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:28:45,619 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-18 14:28:45,620 INFO L423 AbstractCegarLoop]: === Iteration 15 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:28:45,620 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:28:45,620 INFO L82 PathProgramCache]: Analyzing trace with hash 933340, now seen corresponding path program 1 times [2019-01-18 14:28:45,620 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:28:45,621 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:28:45,621 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-18 14:28:45,621 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:28:45,621 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:28:45,628 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:46,093 INFO L273 TraceCheckUtils]: 0: Hoare triple {2700#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;#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]; {2702#(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-18 14:28:46,094 INFO L273 TraceCheckUtils]: 1: Hoare triple {2702#(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]; {2703#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-18 14:28:46,094 INFO L273 TraceCheckUtils]: 2: Hoare triple {2703#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {2704#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:28:46,095 INFO L273 TraceCheckUtils]: 3: Hoare triple {2704#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {2701#false} is VALID [2019-01-18 14:28:46,095 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-18 14:28:46,096 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:28:46,096 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:28:46,096 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-18 14:28:46,096 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [23] [2019-01-18 14:28:46,097 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:28:46,097 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:28:46,121 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:28:46,121 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 2. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:28:46,122 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:28:46,122 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:28:46,122 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:28:46,122 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-18 14:28:46,130 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:28:46,130 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:28:46,134 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:46,138 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:46,139 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:28:46,189 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:46,190 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 40 [2019-01-18 14:28:46,233 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:46,247 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:46,248 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 42 [2019-01-18 14:28:46,300 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:46,301 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:46,303 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:46,304 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:46,305 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 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 21 treesize of output 25 [2019-01-18 14:28:46,338 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:46,352 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:46,366 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:46,388 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 3 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-18 14:28:46,395 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 5 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-18 14:28:46,463 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 6 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-18 14:28:46,475 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-18 14:28:46,500 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-18 14:28:46,503 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:46,527 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:46,543 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:46,556 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:46,568 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:46,598 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 2 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-18 14:28:46,598 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 5 variables, input treesize:52, output treesize:50 [2019-01-18 14:28:46,605 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:28:46,605 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_72|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, |v_#valid_18|]. (let ((.cse0 (store |v_#valid_18| ULTIMATE.start_main_p1 1))) (let ((.cse1 (store .cse0 ULTIMATE.start_main_p2 1))) (and (= |#memory_int| (store (store (store (store (store |v_#memory_int_72| 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)) (= 0 (select .cse0 ULTIMATE.start_main_p2)) (= 0 (select (store .cse1 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4)) (= 0 (select .cse1 ULTIMATE.start_main_p3))))) [2019-01-18 14:28:46,605 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:28:46,672 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:46,673 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-18 14:28:46,704 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:46,752 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-18 14:28:46,753 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:55, output treesize:33 [2019-01-18 14:28:46,762 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:28:46,763 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_73|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_73| ULTIMATE.start_main_p2))) (and (= 0 (select |v_#memory_int_73| ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (store |v_#memory_int_73| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_73| ULTIMATE.start_main_p1) 0) (= 0 (select |v_#memory_int_73| ULTIMATE.start_main_p3)) (= .cse0 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-01-18 14:28:46,763 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:28:46,808 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:46,809 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:46,810 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:46,811 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:46,813 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:46,814 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:46,815 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-18 14:28:46,818 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:46,850 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-18 14:28:46,851 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:45, output treesize:27 [2019-01-18 14:28:46,859 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:28:46,859 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_74|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_74| ULTIMATE.start_main_p1))) (and (= (select |v_#memory_int_74| ULTIMATE.start_main_p4) 0) (= |#memory_int| (store |v_#memory_int_74| ULTIMATE.start_main_p1 (+ .cse0 1))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (+ (select |v_#memory_int_74| ULTIMATE.start_main_p2) 1) 0) (= .cse0 0) (= (select |v_#memory_int_74| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-01-18 14:28:46,860 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:28:46,882 INFO L273 TraceCheckUtils]: 0: Hoare triple {2700#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;#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]; {2708#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-18 14:28:46,884 INFO L273 TraceCheckUtils]: 1: Hoare triple {2708#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {2712#(and (exists ((ULTIMATE.start_main_p2 Int)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-18 14:28:46,886 INFO L273 TraceCheckUtils]: 2: Hoare triple {2712#(and (exists ((ULTIMATE.start_main_p2 Int)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {2716#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-18 14:28:46,887 INFO L273 TraceCheckUtils]: 3: Hoare triple {2716#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume !(#memory_int[main_p1] >= 0); {2701#false} is VALID [2019-01-18 14:28:46,888 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-18 14:28:46,888 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:28:46,920 INFO L273 TraceCheckUtils]: 3: Hoare triple {2704#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {2701#false} is VALID [2019-01-18 14:28:46,921 INFO L273 TraceCheckUtils]: 2: Hoare triple {2723#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {2704#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:28:46,923 INFO L273 TraceCheckUtils]: 1: Hoare triple {2727#(<= 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]; {2723#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} is VALID [2019-01-18 14:28:46,925 INFO L273 TraceCheckUtils]: 0: Hoare triple {2700#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;#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]; {2727#(<= 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-18 14:28:46,926 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-18 14:28:46,946 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:28:46,946 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 8 [2019-01-18 14:28:46,946 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:28:46,947 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-18 14:28:46,947 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:28:46,947 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-18 14:28:46,959 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-18 14:28:46,960 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-18 14:28:46,960 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-18 14:28:46,960 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=39, Invalid=51, Unknown=0, NotChecked=0, Total=90 [2019-01-18 14:28:46,960 INFO L87 Difference]: Start difference. First operand 33 states and 117 transitions. Second operand 8 states. [2019-01-18 14:28:47,912 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:47,913 INFO L93 Difference]: Finished difference Result 61 states and 173 transitions. [2019-01-18 14:28:47,913 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-18 14:28:47,913 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-18 14:28:47,913 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:28:47,913 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:28:47,914 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 64 transitions. [2019-01-18 14:28:47,914 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:28:47,915 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 64 transitions. [2019-01-18 14:28:47,915 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 64 transitions. [2019-01-18 14:28:48,017 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-18 14:28:48,018 INFO L225 Difference]: With dead ends: 61 [2019-01-18 14:28:48,018 INFO L226 Difference]: Without dead ends: 60 [2019-01-18 14:28:48,019 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-18 14:28:48,019 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 60 states. [2019-01-18 14:28:48,253 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 60 to 36. [2019-01-18 14:28:48,254 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:28:48,254 INFO L82 GeneralOperation]: Start isEquivalent. First operand 60 states. Second operand 36 states. [2019-01-18 14:28:48,254 INFO L74 IsIncluded]: Start isIncluded. First operand 60 states. Second operand 36 states. [2019-01-18 14:28:48,254 INFO L87 Difference]: Start difference. First operand 60 states. Second operand 36 states. [2019-01-18 14:28:48,256 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:48,256 INFO L93 Difference]: Finished difference Result 60 states and 171 transitions. [2019-01-18 14:28:48,257 INFO L276 IsEmpty]: Start isEmpty. Operand 60 states and 171 transitions. [2019-01-18 14:28:48,257 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:28:48,257 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:28:48,257 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 60 states. [2019-01-18 14:28:48,257 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 60 states. [2019-01-18 14:28:48,259 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:48,259 INFO L93 Difference]: Finished difference Result 60 states and 171 transitions. [2019-01-18 14:28:48,259 INFO L276 IsEmpty]: Start isEmpty. Operand 60 states and 171 transitions. [2019-01-18 14:28:48,260 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:28:48,260 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:28:48,260 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:28:48,260 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:28:48,260 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 36 states. [2019-01-18 14:28:48,261 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 36 states to 36 states and 135 transitions. [2019-01-18 14:28:48,261 INFO L78 Accepts]: Start accepts. Automaton has 36 states and 135 transitions. Word has length 4 [2019-01-18 14:28:48,262 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:28:48,262 INFO L480 AbstractCegarLoop]: Abstraction has 36 states and 135 transitions. [2019-01-18 14:28:48,262 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-18 14:28:48,262 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 135 transitions. [2019-01-18 14:28:48,262 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-18 14:28:48,262 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:28:48,262 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-18 14:28:48,263 INFO L423 AbstractCegarLoop]: === Iteration 16 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:28:48,263 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:28:48,263 INFO L82 PathProgramCache]: Analyzing trace with hash 937744, now seen corresponding path program 1 times [2019-01-18 14:28:48,263 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:28:48,264 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:28:48,264 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:28:48,264 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:28:48,264 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:28:48,268 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:48,666 INFO L273 TraceCheckUtils]: 0: Hoare triple {2992#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;#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]; {2994#(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-18 14:28:48,668 INFO L273 TraceCheckUtils]: 1: Hoare triple {2994#(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]; {2995#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:28:48,668 INFO L273 TraceCheckUtils]: 2: Hoare triple {2995#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {2995#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:28:48,671 INFO L273 TraceCheckUtils]: 3: Hoare triple {2995#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {2993#false} is VALID [2019-01-18 14:28:48,671 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-18 14:28:48,671 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:28:48,671 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:28:48,671 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-18 14:28:48,672 INFO L207 CegarAbsIntRunner]: [0], [14], [24], [25] [2019-01-18 14:28:48,673 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:28:48,673 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:28:48,689 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:28:48,689 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 2. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-18 14:28:48,689 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:28:48,690 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:28:48,690 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:28:48,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 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-18 14:28:48,701 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:28:48,702 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:28:48,708 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:48,711 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:48,711 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:28:48,769 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-18 14:28:48,782 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-18 14:28:48,790 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:48,791 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:48,791 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 33 [2019-01-18 14:28:48,802 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:48,804 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:48,805 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:48,806 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 5 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 47 [2019-01-18 14:28:48,817 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:48,820 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:48,821 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:48,823 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:48,824 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 27 treesize of output 62 [2019-01-18 14:28:48,830 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:48,859 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:48,875 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:48,888 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:48,900 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:48,924 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 43 treesize of output 39 [2019-01-18 14:28:48,949 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:48,951 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:48,952 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 36 treesize of output 49 [2019-01-18 14:28:49,003 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:49,004 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:49,007 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:49,008 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:49,009 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 32 treesize of output 57 [2019-01-18 14:28:49,083 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:49,084 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:49,086 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:49,087 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:49,088 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:49,089 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:49,090 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 5 select indices, 5 select index equivalence classes, 10 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 37 [2019-01-18 14:28:49,093 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:49,108 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:49,123 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:49,142 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:49,215 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 2 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-18 14:28:49,215 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 5 variables, input treesize:61, output treesize:62 [2019-01-18 14:28:49,222 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:28:49,222 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_77|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_malloc_ptr, |v_#valid_19|]. (let ((.cse1 (store (store |v_#valid_19| ULTIMATE.start_main_p1 1) ULTIMATE.start_main_p2 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p3 1))) (and (= (select .cse0 ULTIMATE.start_main_p4) 0) (= 0 (select .cse1 ULTIMATE.start_main_p3)) (= 0 (select (store .cse0 ULTIMATE.start_main_p4 1) ULTIMATE.start_malloc_ptr)) (= (store (store (store (store (store |v_#memory_int_77| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_malloc_ptr 0) |#memory_int|)))) [2019-01-18 14:28:49,222 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_malloc_ptr]. (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:28:49,302 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:49,304 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 10 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 68 [2019-01-18 14:28:49,307 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:49,347 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-18 14:28:49,347 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:72, output treesize:46 [2019-01-18 14:28:51,607 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:28:51,607 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_78|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_78| ULTIMATE.start_main_p3))) (and (= (select |v_#memory_int_78| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_78| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_78| ULTIMATE.start_malloc_ptr) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (store |v_#memory_int_78| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_78| ULTIMATE.start_main_p1) 0) (= .cse0 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)))) [2019-01-18 14:28:51,608 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3]. (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr))) [2019-01-18 14:28:51,689 INFO L273 TraceCheckUtils]: 0: Hoare triple {2992#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;#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]; {2999#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:28:51,692 INFO L273 TraceCheckUtils]: 1: Hoare triple {2999#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {3003#(and (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))))} is VALID [2019-01-18 14:28:51,692 INFO L273 TraceCheckUtils]: 2: Hoare triple {3003#(and (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))))} assume #memory_int[main_p1] >= 0; {3003#(and (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))))} is VALID [2019-01-18 14:28:51,693 INFO L273 TraceCheckUtils]: 3: Hoare triple {3003#(and (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))))} assume !(#memory_int[main_p2] <= 0); {2993#false} is VALID [2019-01-18 14:28:51,693 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-18 14:28:51,694 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:28:51,717 INFO L273 TraceCheckUtils]: 3: Hoare triple {3010#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {2993#false} is VALID [2019-01-18 14:28:51,718 INFO L273 TraceCheckUtils]: 2: Hoare triple {3010#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {3010#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:28:51,719 INFO L273 TraceCheckUtils]: 1: Hoare triple {3017#(<= (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]; {3010#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:28:51,721 INFO L273 TraceCheckUtils]: 0: Hoare triple {2992#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;#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]; {3017#(<= (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-18 14:28:51,722 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-18 14:28:51,741 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:28:51,741 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-01-18 14:28:51,741 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:28:51,741 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-01-18 14:28:51,741 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:28:51,742 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-01-18 14:28:51,754 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-18 14:28:51,754 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-01-18 14:28:51,755 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-01-18 14:28:51,755 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-18 14:28:51,755 INFO L87 Difference]: Start difference. First operand 36 states and 135 transitions. Second operand 6 states. [2019-01-18 14:28:52,286 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:52,287 INFO L93 Difference]: Finished difference Result 53 states and 161 transitions. [2019-01-18 14:28:52,287 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-18 14:28:52,287 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-01-18 14:28:52,287 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:28:52,288 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-18 14:28:52,288 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 46 transitions. [2019-01-18 14:28:52,288 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-18 14:28:52,289 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 46 transitions. [2019-01-18 14:28:52,289 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 46 transitions. [2019-01-18 14:28:52,738 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-18 14:28:52,740 INFO L225 Difference]: With dead ends: 53 [2019-01-18 14:28:52,740 INFO L226 Difference]: Without dead ends: 52 [2019-01-18 14:28:52,740 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 9 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=31, Invalid=41, Unknown=0, NotChecked=0, Total=72 [2019-01-18 14:28:52,741 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 52 states. [2019-01-18 14:28:53,073 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 52 to 37. [2019-01-18 14:28:53,074 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:28:53,074 INFO L82 GeneralOperation]: Start isEquivalent. First operand 52 states. Second operand 37 states. [2019-01-18 14:28:53,074 INFO L74 IsIncluded]: Start isIncluded. First operand 52 states. Second operand 37 states. [2019-01-18 14:28:53,074 INFO L87 Difference]: Start difference. First operand 52 states. Second operand 37 states. [2019-01-18 14:28:53,076 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:53,076 INFO L93 Difference]: Finished difference Result 52 states and 159 transitions. [2019-01-18 14:28:53,076 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 159 transitions. [2019-01-18 14:28:53,077 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:28:53,077 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:28:53,077 INFO L74 IsIncluded]: Start isIncluded. First operand 37 states. Second operand 52 states. [2019-01-18 14:28:53,077 INFO L87 Difference]: Start difference. First operand 37 states. Second operand 52 states. [2019-01-18 14:28:53,078 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:53,078 INFO L93 Difference]: Finished difference Result 52 states and 159 transitions. [2019-01-18 14:28:53,079 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 159 transitions. [2019-01-18 14:28:53,079 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:28:53,079 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:28:53,079 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:28:53,079 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:28:53,079 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 37 states. [2019-01-18 14:28:53,081 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 37 states to 37 states and 141 transitions. [2019-01-18 14:28:53,081 INFO L78 Accepts]: Start accepts. Automaton has 37 states and 141 transitions. Word has length 4 [2019-01-18 14:28:53,081 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:28:53,081 INFO L480 AbstractCegarLoop]: Abstraction has 37 states and 141 transitions. [2019-01-18 14:28:53,081 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-01-18 14:28:53,081 INFO L276 IsEmpty]: Start isEmpty. Operand 37 states and 141 transitions. [2019-01-18 14:28:53,081 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-18 14:28:53,082 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:28:53,082 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-18 14:28:53,082 INFO L423 AbstractCegarLoop]: === Iteration 17 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:28:53,082 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:28:53,082 INFO L82 PathProgramCache]: Analyzing trace with hash 937308, now seen corresponding path program 1 times [2019-01-18 14:28:53,082 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:28:53,083 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:28:53,083 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:28:53,083 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:28:53,083 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:28:53,089 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:53,172 INFO L273 TraceCheckUtils]: 0: Hoare triple {3259#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;#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]; {3261#(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-18 14:28:53,174 INFO L273 TraceCheckUtils]: 1: Hoare triple {3261#(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]; {3262#(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-18 14:28:53,175 INFO L273 TraceCheckUtils]: 2: Hoare triple {3262#(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]; {3263#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-18 14:28:53,175 INFO L273 TraceCheckUtils]: 3: Hoare triple {3263#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {3260#false} is VALID [2019-01-18 14:28:53,176 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-18 14:28:53,176 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:28:53,176 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:28:53,176 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-18 14:28:53,177 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [23] [2019-01-18 14:28:53,178 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:28:53,178 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:28:53,193 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:28:53,193 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 2. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:28:53,193 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:28:53,193 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:28:53,193 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:28:53,193 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-18 14:28:53,202 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:28:53,203 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:28:53,208 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:53,213 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:28:53,213 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:28:53,263 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 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 18 treesize of output 21 [2019-01-18 14:28:53,269 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-18 14:28:53,276 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:53,277 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:53,278 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-18 14:28:53,290 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:53,292 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:53,293 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:53,294 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-18 14:28:53,309 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:53,311 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:53,312 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:53,314 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:53,315 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-18 14:28:53,319 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:53,351 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:53,368 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:53,382 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:53,397 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:53,433 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:53,434 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 48 treesize of output 54 [2019-01-18 14:28:53,499 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:53,501 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:53,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, 4 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 41 treesize of output 53 [2019-01-18 14:28:53,558 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:53,559 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:53,560 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:53,562 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:53,563 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 32 treesize of output 61 [2019-01-18 14:28:53,632 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:53,633 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:53,635 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:53,636 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:53,637 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:53,638 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:53,639 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 5 select indices, 5 select index equivalence classes, 11 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 41 [2019-01-18 14:28:53,642 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:53,661 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:53,677 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:53,694 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:28:53,777 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-18 14:28:53,777 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 4 variables, input treesize:69, output treesize:66 [2019-01-18 14:28:53,787 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:28:53,787 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_80|, ULTIMATE.start_main_p4, ULTIMATE.start_malloc_ptr, |v_#valid_20|]. (let ((.cse0 (store |v_#valid_20| ULTIMATE.start_main_p1 1))) (let ((.cse1 (store .cse0 ULTIMATE.start_main_p2 1))) (let ((.cse2 (store .cse1 ULTIMATE.start_main_p3 1))) (and (= (select .cse0 ULTIMATE.start_main_p2) 0) (= (store (store (store (store (store |v_#memory_int_80| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_malloc_ptr 0) |#memory_int|) (= 0 (select .cse1 ULTIMATE.start_main_p3)) (= (select (store .cse2 ULTIMATE.start_main_p4 1) ULTIMATE.start_malloc_ptr) 0) (= 0 (select .cse2 ULTIMATE.start_main_p4)))))) [2019-01-18 14:28:53,787 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_malloc_ptr]. (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:28:53,875 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:53,876 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-18 14:28:53,880 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:28: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-18 14:28:53,922 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:76, output treesize:50 [2019-01-18 14:28:56,056 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:28:56,057 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_81|, ULTIMATE.start_main_p3, ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_81| ULTIMATE.start_main_p3))) (and (= (select |v_#memory_int_81| ULTIMATE.start_main_p1) 0) (= 0 (select |v_#memory_int_81| ULTIMATE.start_malloc_ptr)) (= (store |v_#memory_int_81| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= 0 (select |v_#memory_int_81| ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_81| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 .cse0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)))) [2019-01-18 14:28:56,057 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr))) [2019-01-18 14:28:56,326 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:56,328 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:56,329 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:56,330 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:56,331 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:56,332 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:56,333 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:28:56,335 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-18 14:28:56,369 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:28:56,468 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-18 14:28:56,469 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:60, output treesize:38 [2019-01-18 14:28:58,479 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:28:58,480 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_82|, ULTIMATE.start_main_p2, ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_82| ULTIMATE.start_main_p2))) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_82| ULTIMATE.start_malloc_ptr)) (= 0 .cse0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (= (store |v_#memory_int_82| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= 0 (select |v_#memory_int_82| ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_82| ULTIMATE.start_main_p3) 1) (= (select |v_#memory_int_82| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-01-18 14:28:58,480 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr))) [2019-01-18 14:28:58,518 INFO L273 TraceCheckUtils]: 0: Hoare triple {3259#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;#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]; {3267#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:28:58,520 INFO L273 TraceCheckUtils]: 1: Hoare triple {3267#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {3271#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:28:58,522 INFO L273 TraceCheckUtils]: 2: Hoare triple {3271#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {3275#(and (exists ((ULTIMATE.start_main_p2 Int)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)))} is VALID [2019-01-18 14:28:58,522 INFO L273 TraceCheckUtils]: 3: Hoare triple {3275#(and (exists ((ULTIMATE.start_main_p2 Int)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)))} assume !(#memory_int[main_p1] >= 0); {3260#false} is VALID [2019-01-18 14:28:58,523 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-18 14:28:58,523 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:28:58,562 INFO L273 TraceCheckUtils]: 3: Hoare triple {3279#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {3260#false} is VALID [2019-01-18 14:28:58,563 INFO L273 TraceCheckUtils]: 2: Hoare triple {3283#(<= 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]; {3279#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:28:58,565 INFO L273 TraceCheckUtils]: 1: Hoare triple {3287#(<= 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]; {3283#(<= 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-18 14:28:58,567 INFO L273 TraceCheckUtils]: 0: Hoare triple {3259#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;#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]; {3287#(<= 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-18 14:28:58,567 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-18 14:28:58,586 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:28:58,587 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-18 14:28:58,587 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:28:58,587 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-18 14:28:58,587 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:28:58,587 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-18 14:28:58,601 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-18 14:28:58,602 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-18 14:28:58,602 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-18 14:28:58,602 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-18 14:28:58,602 INFO L87 Difference]: Start difference. First operand 37 states and 141 transitions. Second operand 8 states. [2019-01-18 14:28:59,945 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:28:59,945 INFO L93 Difference]: Finished difference Result 69 states and 192 transitions. [2019-01-18 14:28:59,945 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-18 14:28:59,945 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-18 14:28:59,945 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:28:59,946 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:28:59,947 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 60 transitions. [2019-01-18 14:28:59,947 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:28:59,947 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 60 transitions. [2019-01-18 14:28:59,947 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 60 transitions. [2019-01-18 14:29:00,074 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-18 14:29:00,076 INFO L225 Difference]: With dead ends: 69 [2019-01-18 14:29:00,076 INFO L226 Difference]: Without dead ends: 68 [2019-01-18 14:29:00,077 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 0 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-18 14:29:00,077 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 68 states. [2019-01-18 14:29:00,362 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 68 to 39. [2019-01-18 14:29:00,362 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:29:00,362 INFO L82 GeneralOperation]: Start isEquivalent. First operand 68 states. Second operand 39 states. [2019-01-18 14:29:00,363 INFO L74 IsIncluded]: Start isIncluded. First operand 68 states. Second operand 39 states. [2019-01-18 14:29:00,363 INFO L87 Difference]: Start difference. First operand 68 states. Second operand 39 states. [2019-01-18 14:29:00,366 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:29:00,366 INFO L93 Difference]: Finished difference Result 68 states and 190 transitions. [2019-01-18 14:29:00,366 INFO L276 IsEmpty]: Start isEmpty. Operand 68 states and 190 transitions. [2019-01-18 14:29:00,367 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:29:00,367 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:29:00,367 INFO L74 IsIncluded]: Start isIncluded. First operand 39 states. Second operand 68 states. [2019-01-18 14:29:00,367 INFO L87 Difference]: Start difference. First operand 39 states. Second operand 68 states. [2019-01-18 14:29:00,369 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:29:00,369 INFO L93 Difference]: Finished difference Result 68 states and 190 transitions. [2019-01-18 14:29:00,369 INFO L276 IsEmpty]: Start isEmpty. Operand 68 states and 190 transitions. [2019-01-18 14:29:00,370 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:29:00,370 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:29:00,370 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:29:00,370 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:29:00,370 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 39 states. [2019-01-18 14:29:00,371 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 39 states to 39 states and 153 transitions. [2019-01-18 14:29:00,371 INFO L78 Accepts]: Start accepts. Automaton has 39 states and 153 transitions. Word has length 4 [2019-01-18 14:29:00,372 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:29:00,372 INFO L480 AbstractCegarLoop]: Abstraction has 39 states and 153 transitions. [2019-01-18 14:29:00,372 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-18 14:29:00,372 INFO L276 IsEmpty]: Start isEmpty. Operand 39 states and 153 transitions. [2019-01-18 14:29:00,372 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-18 14:29:00,372 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:29:00,372 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1] [2019-01-18 14:29:00,373 INFO L423 AbstractCegarLoop]: === Iteration 18 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:29:00,373 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:29:00,373 INFO L82 PathProgramCache]: Analyzing trace with hash 29182896, now seen corresponding path program 2 times [2019-01-18 14:29:00,373 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:29:00,374 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:29:00,374 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:29:00,374 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:29:00,374 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:29:00,380 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:29:00,735 WARN L181 SmtUtils]: Spent 195.00 ms on a formula simplification. DAG size of input: 17 DAG size of output: 13 [2019-01-18 14:29:00,754 INFO L273 TraceCheckUtils]: 0: Hoare triple {3586#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;#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]; {3588#(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-18 14:29:00,756 INFO L273 TraceCheckUtils]: 1: Hoare triple {3588#(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]; {3588#(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-18 14:29:00,757 INFO L273 TraceCheckUtils]: 2: Hoare triple {3588#(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]; {3589#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-18 14:29:00,758 INFO L273 TraceCheckUtils]: 3: Hoare triple {3589#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {3590#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:29:00,758 INFO L273 TraceCheckUtils]: 4: Hoare triple {3590#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {3587#false} is VALID [2019-01-18 14:29:00,759 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-18 14:29:00,759 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:29:00,759 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:29:00,759 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-18 14:29:00,759 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-18 14:29:00,760 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:29:00,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 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-18 14:29:00,769 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-18 14:29:00,769 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-18 14:29:00,776 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-18 14:29:00,776 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-18 14:29:00,780 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:29:00,780 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:29:00,824 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 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 18 treesize of output 21 [2019-01-18 14:29:00,829 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-18 14:29:00,836 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:00,837 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:00,839 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-18 14:29:00,883 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:00,885 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:00,886 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:00,887 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-18 14:29:00,913 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:00,914 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:00,915 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:00,916 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:00,916 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-18 14:29:00,920 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:01,036 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:01,054 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:01,069 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:01,082 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:01,115 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:01,116 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 48 treesize of output 54 [2019-01-18 14:29:01,171 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:01,172 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:01,173 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 41 treesize of output 53 [2019-01-18 14:29:01,235 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:01,236 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:01,238 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:01,239 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:01,240 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 32 treesize of output 61 [2019-01-18 14:29:01,309 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:01,310 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:01,312 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:01,313 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:01,314 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:01,315 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:01,318 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 5 select indices, 5 select index equivalence classes, 11 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 41 [2019-01-18 14:29:01,337 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:01,355 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:01,373 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:01,392 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:01,435 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 2 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-18 14:29:01,435 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 5 variables, input treesize:69, output treesize:66 [2019-01-18 14:29:01,445 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:29:01,445 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_85|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_malloc_ptr, |v_#valid_21|]. (let ((.cse2 (store |v_#valid_21| ULTIMATE.start_main_p1 1))) (let ((.cse0 (store .cse2 ULTIMATE.start_main_p2 1))) (let ((.cse1 (store .cse0 ULTIMATE.start_main_p3 1))) (and (= (select .cse0 ULTIMATE.start_main_p3) 0) (= 0 (select (store .cse1 ULTIMATE.start_main_p4 1) ULTIMATE.start_malloc_ptr)) (= (store (store (store (store (store |v_#memory_int_85| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) ULTIMATE.start_malloc_ptr 0) |#memory_int|) (= 0 (select .cse1 ULTIMATE.start_main_p4)) (= 0 (select .cse2 ULTIMATE.start_main_p2)))))) [2019-01-18 14:29:01,445 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_malloc_ptr]. (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:29:01,538 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:01,539 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-18 14:29:01,543 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:01,584 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-18 14:29:01,584 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:76, output treesize:50 [2019-01-18 14:29:01,594 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:29:01,595 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_86|, ULTIMATE.start_main_p3, ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_86| ULTIMATE.start_main_p4))) (and (= .cse0 0) (= (select |v_#memory_int_86| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_86| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (store |v_#memory_int_86| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_86| ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |v_#memory_int_86| ULTIMATE.start_malloc_ptr)))) [2019-01-18 14:29:01,595 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr))) [2019-01-18 14:29:01,667 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:01,669 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:01,670 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:01,671 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:01,672 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:01,674 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:01,675 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:01,676 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-18 14:29:01,680 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:01,726 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-18 14:29:01,727 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:62, output treesize:50 [2019-01-18 14:29:01,754 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:29:01,755 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_87|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_87| ULTIMATE.start_main_p4))) (and (= (select |v_#memory_int_87| ULTIMATE.start_main_p3) 0) (= 0 (select |v_#memory_int_87| ULTIMATE.start_malloc_ptr)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (= |#memory_int| (store |v_#memory_int_87| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= (+ .cse0 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |v_#memory_int_87| ULTIMATE.start_main_p2) 0) (= 0 (select |v_#memory_int_87| ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)))) [2019-01-18 14:29:01,755 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr))) [2019-01-18 14:29:01,820 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:01,821 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:01,823 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:01,824 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:01,825 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:01,826 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:01,827 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:01,829 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-18 14:29:01,835 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:01,876 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-18 14:29:01,877 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:62, output treesize:40 [2019-01-18 14:29:01,893 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:29:01,893 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_88|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_88| ULTIMATE.start_main_p1))) (and (= (select |v_#memory_int_88| ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_88| ULTIMATE.start_malloc_ptr) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (= (+ (select |v_#memory_int_88| ULTIMATE.start_main_p4) 2) 0) (= (select |v_#memory_int_88| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= .cse0 0) (= (store |v_#memory_int_88| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)))) [2019-01-18 14:29:01,893 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr))) [2019-01-18 14:29:01,929 INFO L273 TraceCheckUtils]: 0: Hoare triple {3586#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;#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]; {3594#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_malloc_ptr Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:29:01,932 INFO L273 TraceCheckUtils]: 1: Hoare triple {3594#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_malloc_ptr Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {3598#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_malloc_ptr Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))))} is VALID [2019-01-18 14:29:01,934 INFO L273 TraceCheckUtils]: 2: Hoare triple {3598#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_malloc_ptr Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {3602#(and (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_malloc_ptr Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))))} is VALID [2019-01-18 14:29:01,937 INFO L273 TraceCheckUtils]: 3: Hoare triple {3602#(and (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_malloc_ptr Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {3606#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_malloc_ptr Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))))} is VALID [2019-01-18 14:29:01,939 INFO L273 TraceCheckUtils]: 4: Hoare triple {3606#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_malloc_ptr Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))))} assume !(#memory_int[main_p1] >= 0); {3587#false} is VALID [2019-01-18 14:29:01,939 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-18 14:29:01,940 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:29:01,984 INFO L273 TraceCheckUtils]: 4: Hoare triple {3590#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {3587#false} is VALID [2019-01-18 14:29:01,985 INFO L273 TraceCheckUtils]: 3: Hoare triple {3613#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {3590#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:29:01,986 INFO L273 TraceCheckUtils]: 2: Hoare triple {3617#(<= 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]; {3613#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} is VALID [2019-01-18 14:29:01,988 INFO L273 TraceCheckUtils]: 1: Hoare triple {3621#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 2))) ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {3617#(<= 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-18 14:29:01,990 INFO L273 TraceCheckUtils]: 0: Hoare triple {3586#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;#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]; {3621#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 2))) ULTIMATE.start_main_p1) 1))} is VALID [2019-01-18 14:29:01,991 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-18 14:29:02,010 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:29:02,011 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 4, 4] total 10 [2019-01-18 14:29:02,011 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:29:02,011 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 5 [2019-01-18 14:29:02,011 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:29:02,011 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states. [2019-01-18 14:29:02,026 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-18 14:29:02,027 INFO L459 AbstractCegarLoop]: Interpolant automaton has 9 states [2019-01-18 14:29:02,027 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2019-01-18 14:29:02,027 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=54, Invalid=78, Unknown=0, NotChecked=0, Total=132 [2019-01-18 14:29:02,027 INFO L87 Difference]: Start difference. First operand 39 states and 153 transitions. Second operand 9 states. [2019-01-18 14:29:03,460 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:29:03,460 INFO L93 Difference]: Finished difference Result 73 states and 219 transitions. [2019-01-18 14:29:03,460 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-18 14:29:03,460 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 5 [2019-01-18 14:29:03,460 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:29:03,460 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2019-01-18 14:29:03,461 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 76 transitions. [2019-01-18 14:29:03,461 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2019-01-18 14:29:03,461 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 76 transitions. [2019-01-18 14:29:03,461 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 76 transitions. [2019-01-18 14:29:03,584 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-18 14:29:03,586 INFO L225 Difference]: With dead ends: 73 [2019-01-18 14:29:03,586 INFO L226 Difference]: Without dead ends: 71 [2019-01-18 14:29:03,586 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 13 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 43 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=63, Invalid=93, Unknown=0, NotChecked=0, Total=156 [2019-01-18 14:29:03,586 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 71 states. [2019-01-18 14:29:03,874 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 71 to 42. [2019-01-18 14:29:03,874 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:29:03,875 INFO L82 GeneralOperation]: Start isEquivalent. First operand 71 states. Second operand 42 states. [2019-01-18 14:29:03,875 INFO L74 IsIncluded]: Start isIncluded. First operand 71 states. Second operand 42 states. [2019-01-18 14:29:03,875 INFO L87 Difference]: Start difference. First operand 71 states. Second operand 42 states. [2019-01-18 14:29:03,877 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:29:03,877 INFO L93 Difference]: Finished difference Result 71 states and 216 transitions. [2019-01-18 14:29:03,877 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 216 transitions. [2019-01-18 14:29:03,878 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:29:03,878 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:29:03,878 INFO L74 IsIncluded]: Start isIncluded. First operand 42 states. Second operand 71 states. [2019-01-18 14:29:03,878 INFO L87 Difference]: Start difference. First operand 42 states. Second operand 71 states. [2019-01-18 14:29:03,879 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:29:03,880 INFO L93 Difference]: Finished difference Result 71 states and 216 transitions. [2019-01-18 14:29:03,880 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 216 transitions. [2019-01-18 14:29:03,880 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:29:03,880 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:29:03,880 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:29:03,881 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:29:03,881 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 42 states. [2019-01-18 14:29:03,882 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 42 states to 42 states and 171 transitions. [2019-01-18 14:29:03,882 INFO L78 Accepts]: Start accepts. Automaton has 42 states and 171 transitions. Word has length 5 [2019-01-18 14:29:03,882 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:29:03,882 INFO L480 AbstractCegarLoop]: Abstraction has 42 states and 171 transitions. [2019-01-18 14:29:03,882 INFO L481 AbstractCegarLoop]: Interpolant automaton has 9 states. [2019-01-18 14:29:03,882 INFO L276 IsEmpty]: Start isEmpty. Operand 42 states and 171 transitions. [2019-01-18 14:29:03,883 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-18 14:29:03,883 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:29:03,883 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-18 14:29:03,883 INFO L423 AbstractCegarLoop]: === Iteration 19 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:29:03,883 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:29:03,883 INFO L82 PathProgramCache]: Analyzing trace with hash 29185378, now seen corresponding path program 1 times [2019-01-18 14:29:03,884 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:29:03,884 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:29:03,884 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-18 14:29:03,884 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:29:03,885 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:29:03,890 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:29:03,988 INFO L273 TraceCheckUtils]: 0: Hoare triple {3939#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;#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]; {3941#(and (or (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))) (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (or (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p5)))} is VALID [2019-01-18 14:29:03,990 INFO L273 TraceCheckUtils]: 1: Hoare triple {3941#(and (or (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))) (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (or (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p5)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {3942#(or (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) 1) 0) (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-18 14:29:03,991 INFO L273 TraceCheckUtils]: 2: Hoare triple {3942#(or (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2) 1) 0) (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]; {3943#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:29:03,992 INFO L273 TraceCheckUtils]: 3: Hoare triple {3943#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {3943#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:29:03,992 INFO L273 TraceCheckUtils]: 4: Hoare triple {3943#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {3940#false} is VALID [2019-01-18 14:29:03,993 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-18 14:29:03,993 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:29:03,993 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:29:03,993 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-18 14:29:03,993 INFO L207 CegarAbsIntRunner]: [0], [18], [20], [24], [25] [2019-01-18 14:29:03,995 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:29:03,995 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:29:04,006 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:29:04,006 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 2. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:29:04,007 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:29:04,007 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:29:04,007 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:29:04,007 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-18 14:29:04,017 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:29:04,017 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:29:04,021 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:29:04,024 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:29:04,024 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:29:04,107 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-18 14:29:04,112 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-18 14:29:04,121 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:04,122 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:04,123 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 33 [2019-01-18 14:29:04,134 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:04,135 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:04,136 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:04,137 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 5 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 47 [2019-01-18 14:29:04,152 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:04,154 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:04,156 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:04,157 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:04,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, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 62 [2019-01-18 14:29:04,162 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:04,193 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:04,208 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:04,221 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:04,234 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:04,259 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 43 treesize of output 39 [2019-01-18 14:29:04,298 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:04,301 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:04,302 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 36 treesize of output 49 [2019-01-18 14:29:04,357 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:04,358 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:04,361 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:04,362 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:04,364 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 32 treesize of output 57 [2019-01-18 14:29:04,434 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:04,435 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:04,437 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:04,438 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:04,439 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:04,441 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:04,442 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 5 select indices, 5 select index equivalence classes, 10 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 37 [2019-01-18 14:29:04,445 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:04,463 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:04,478 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:04,498 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:04,537 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-18 14:29:04,538 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 4 variables, input treesize:61, output treesize:62 [2019-01-18 14:29:04,545 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:29:04,546 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_92|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, |v_#valid_22|]. (let ((.cse0 (store (store |v_#valid_22| ULTIMATE.start_main_p1 1) ULTIMATE.start_main_p2 1))) (let ((.cse1 (store .cse0 ULTIMATE.start_main_p3 1))) (and (= (select .cse0 ULTIMATE.start_main_p3) 0) (= |#memory_int| (store (store (store (store (store |v_#memory_int_92| 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)) (= 0 (select (store .cse1 ULTIMATE.start_main_p4 1) ULTIMATE.start_main_p5)) (= 0 (select .cse1 ULTIMATE.start_main_p4))))) [2019-01-18 14:29:04,546 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p1]. (and (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:29:04,632 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:04,636 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 10 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 62 [2019-01-18 14:29:04,639 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:04,673 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-18 14:29:04,674 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:72, output treesize:46 [2019-01-18 14:29:06,890 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:29:06,891 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_93|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_93| ULTIMATE.start_main_p4))) (and (= (select |v_#memory_int_93| ULTIMATE.start_main_p1) 0) (= 0 (select |v_#memory_int_93| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_93| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_93| ULTIMATE.start_main_p5) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (store |v_#memory_int_93| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= .cse0 0))) [2019-01-18 14:29:06,891 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-18 14:29:06,988 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:06,989 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:06,990 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:06,991 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:06,994 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:06,995 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:06,996 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:06,997 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 12 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 38 treesize of output 76 [2019-01-18 14:29:07,001 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:07,035 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-18 14:29:07,035 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:58, output treesize:36 [2019-01-18 14:29:07,047 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:29:07,047 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_94|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_94| ULTIMATE.start_main_p5))) (and (= (select |v_#memory_int_94| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_94| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (+ (select |v_#memory_int_94| ULTIMATE.start_main_p4) 1)) (= .cse0 0) (= (store |v_#memory_int_94| ULTIMATE.start_main_p5 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |v_#memory_int_94| ULTIMATE.start_main_p2) 0))) [2019-01-18 14:29:07,048 WARN L386 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) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (+ (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)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-18 14:29:07,095 INFO L273 TraceCheckUtils]: 0: Hoare triple {3939#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;#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]; {3947#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:29:07,097 INFO L273 TraceCheckUtils]: 1: Hoare triple {3947#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 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]; {3951#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:29:07,100 INFO L273 TraceCheckUtils]: 2: Hoare triple {3951#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {3955#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:29:07,101 INFO L273 TraceCheckUtils]: 3: Hoare triple {3955#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume #memory_int[main_p1] >= 0; {3955#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:29:07,105 INFO L273 TraceCheckUtils]: 4: Hoare triple {3955#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume !(#memory_int[main_p2] <= 0); {3940#false} is VALID [2019-01-18 14:29:07,106 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-18 14:29:07,106 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:29:07,141 INFO L273 TraceCheckUtils]: 4: Hoare triple {3943#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {3940#false} is VALID [2019-01-18 14:29:07,141 INFO L273 TraceCheckUtils]: 3: Hoare triple {3943#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {3943#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:29:07,142 INFO L273 TraceCheckUtils]: 2: Hoare triple {3968#(<= (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]; {3943#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:29:07,144 INFO L273 TraceCheckUtils]: 1: Hoare triple {3972#(<= (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]; {3968#(<= (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-18 14:29:07,146 INFO L273 TraceCheckUtils]: 0: Hoare triple {3939#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;#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]; {3972#(<= (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-18 14:29:07,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-18 14:29:07,166 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:29:07,166 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 8 [2019-01-18 14:29:07,166 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:29:07,166 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-18 14:29:07,167 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:29:07,167 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-18 14:29:07,186 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-18 14:29:07,186 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-18 14:29:07,186 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-18 14:29:07,186 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=36, Invalid=54, Unknown=0, NotChecked=0, Total=90 [2019-01-18 14:29:07,187 INFO L87 Difference]: Start difference. First operand 42 states and 171 transitions. Second operand 8 states. [2019-01-18 14:29:09,186 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:29:09,187 INFO L93 Difference]: Finished difference Result 84 states and 258 transitions. [2019-01-18 14:29:09,187 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-18 14:29:09,187 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-18 14:29:09,187 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:29:09,187 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:29:09,188 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 79 transitions. [2019-01-18 14:29:09,188 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:29:09,188 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 79 transitions. [2019-01-18 14:29:09,188 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 79 transitions. [2019-01-18 14:29:09,320 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-18 14:29:09,322 INFO L225 Difference]: With dead ends: 84 [2019-01-18 14:29:09,322 INFO L226 Difference]: Without dead ends: 78 [2019-01-18 14:29:09,323 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 13 GetRequests, 3 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 23 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=52, Invalid=80, Unknown=0, NotChecked=0, Total=132 [2019-01-18 14:29:09,323 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 78 states. [2019-01-18 14:29:09,726 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 78 to 48. [2019-01-18 14:29:09,726 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:29:09,726 INFO L82 GeneralOperation]: Start isEquivalent. First operand 78 states. Second operand 48 states. [2019-01-18 14:29:09,726 INFO L74 IsIncluded]: Start isIncluded. First operand 78 states. Second operand 48 states. [2019-01-18 14:29:09,726 INFO L87 Difference]: Start difference. First operand 78 states. Second operand 48 states. [2019-01-18 14:29:09,729 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:29:09,729 INFO L93 Difference]: Finished difference Result 78 states and 249 transitions. [2019-01-18 14:29:09,729 INFO L276 IsEmpty]: Start isEmpty. Operand 78 states and 249 transitions. [2019-01-18 14:29:09,729 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:29:09,730 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:29:09,730 INFO L74 IsIncluded]: Start isIncluded. First operand 48 states. Second operand 78 states. [2019-01-18 14:29:09,730 INFO L87 Difference]: Start difference. First operand 48 states. Second operand 78 states. [2019-01-18 14:29:09,731 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:29:09,731 INFO L93 Difference]: Finished difference Result 78 states and 249 transitions. [2019-01-18 14:29:09,731 INFO L276 IsEmpty]: Start isEmpty. Operand 78 states and 249 transitions. [2019-01-18 14:29:09,732 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:29:09,732 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:29:09,732 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:29:09,732 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:29:09,732 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 48 states. [2019-01-18 14:29:09,733 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 48 states to 48 states and 218 transitions. [2019-01-18 14:29:09,733 INFO L78 Accepts]: Start accepts. Automaton has 48 states and 218 transitions. Word has length 5 [2019-01-18 14:29:09,733 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:29:09,733 INFO L480 AbstractCegarLoop]: Abstraction has 48 states and 218 transitions. [2019-01-18 14:29:09,733 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-18 14:29:09,734 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 218 transitions. [2019-01-18 14:29:09,734 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-18 14:29:09,734 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:29:09,734 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-18 14:29:09,734 INFO L423 AbstractCegarLoop]: === Iteration 20 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:29:09,735 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:29:09,735 INFO L82 PathProgramCache]: Analyzing trace with hash 29184942, now seen corresponding path program 1 times [2019-01-18 14:29:09,735 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:29:09,735 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:29:09,735 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:29:09,736 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:29:09,736 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:29:09,741 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:29:09,991 INFO L273 TraceCheckUtils]: 0: Hoare triple {4336#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;#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]; {4338#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (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_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 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-18 14:29:09,993 INFO L273 TraceCheckUtils]: 1: Hoare triple {4338#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (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_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 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]; {4339#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (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_p2)) (= 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-18 14:29:09,993 INFO L273 TraceCheckUtils]: 2: Hoare triple {4339#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (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_p2)) (= 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]; {4340#(and (= (select |#memory_int| ULTIMATE.start_main_p2) 0) (= 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-18 14:29:09,994 INFO L273 TraceCheckUtils]: 3: Hoare triple {4340#(and (= (select |#memory_int| ULTIMATE.start_main_p2) 0) (= 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]; {4341#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-18 14:29:09,995 INFO L273 TraceCheckUtils]: 4: Hoare triple {4341#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {4337#false} is VALID [2019-01-18 14:29:09,995 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-18 14:29:09,995 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:29:09,995 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:29:09,996 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-18 14:29:09,996 INFO L207 CegarAbsIntRunner]: [0], [10], [18], [20], [23] [2019-01-18 14:29:09,997 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:29:09,997 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:29:10,006 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:29:10,007 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 2. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-18 14:29:10,007 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:29:10,007 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:29:10,008 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:29:10,008 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-18 14:29:10,017 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:29:10,017 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:29:10,035 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:29:10,053 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:29:10,054 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:29:10,102 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 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 18 treesize of output 21 [2019-01-18 14:29:10,110 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-18 14:29:10,218 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:10,239 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:10,240 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-18 14:29:10,355 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:10,356 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:10,356 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:10,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-18 14:29:10,377 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-18 14:29:10,380 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:10,440 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:10,456 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:10,470 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:10,483 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:10,511 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:10,512 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 40 [2019-01-18 14:29:10,558 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:10,559 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:10,560 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 42 [2019-01-18 14:29:10,612 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:10,613 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:10,614 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:10,616 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:10,616 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 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 21 treesize of output 25 [2019-01-18 14:29:10,619 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:10,631 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:10,642 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:10,671 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 2 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-18 14:29:10,671 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 3 variables, input treesize:52, output treesize:50 [2019-01-18 14:29:10,679 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:29:10,680 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_97|, ULTIMATE.start_main_p3, |v_#valid_23|]. (let ((.cse0 (store |v_#valid_23| ULTIMATE.start_main_p1 1))) (let ((.cse1 (store .cse0 ULTIMATE.start_main_p2 1))) (and (= 0 (select .cse0 ULTIMATE.start_main_p2)) (= 0 (select .cse1 ULTIMATE.start_main_p3)) (= (select (store .cse1 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4) 0) (= (store (store (store (store (store |v_#memory_int_97| 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-18 14:29:10,680 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:29:10,773 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:10,781 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 7 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 2 case distinctions, treesize of input 36 treesize of output 54 [2019-01-18 14:29:10,786 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 2 xjuncts. [2019-01-18 14:29:10,926 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 2 xjuncts. [2019-01-18 14:29:10,926 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:60, output treesize:74 [2019-01-18 14:29:10,952 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:29:10,952 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_98|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_98| ULTIMATE.start_main_p4))) (and (= 0 (select |v_#memory_int_98| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_98| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |v_#memory_int_98| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_98| ULTIMATE.start_main_p2)) (= |#memory_int| (store |v_#memory_int_98| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= 0 .cse0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-01-18 14:29:10,952 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, v_prenex_26]. (let ((.cse3 (select |#memory_int| ULTIMATE.start_main_p5)) (.cse0 (= (select |#memory_int| ULTIMATE.start_main_p1) 0)) (.cse1 (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1))) (.cse2 (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (or (and (not (= v_prenex_26 ULTIMATE.start_main_p2)) .cse0 .cse1 .cse2 (not (= v_prenex_26 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_26) 0) (= 0 (+ .cse3 1))) (and (= 0 .cse3) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) .cse0 .cse1 (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) .cse2 (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)))) [2019-01-18 14:29:11,458 WARN L181 SmtUtils]: Spent 240.00 ms on a formula simplification that was a NOOP. DAG size: 42 [2019-01-18 14:29:11,501 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:11,502 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:11,503 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:11,504 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:11,511 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:11,512 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:11,513 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:11,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, 10 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 6 case distinctions, treesize of input 50 treesize of output 80 [2019-01-18 14:29:11,546 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 8 xjuncts. [2019-01-18 14:29:11,731 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:11,732 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:11,733 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:11,735 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:11,735 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:29:11,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, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 45 treesize of output 51 [2019-01-18 14:29:11,783 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:11,921 INFO L267 ElimStorePlain]: Start of recursive call 1: 5 dim-0 vars, 2 dim-1 vars, End of recursive call: 11 dim-0 vars, and 5 xjuncts. [2019-01-18 14:29:11,922 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 7 variables, input treesize:96, output treesize:167 [2019-01-18 14:29:14,421 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:29:14,421 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_99|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, v_prenex_27, v_prenex_28, v_prenex_26]. (let ((.cse0 (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))) (or (let ((.cse1 (select |v_#memory_int_99| ULTIMATE.start_main_p5))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_99| ULTIMATE.start_main_p2) 0) .cse0 (= 0 (select |v_#memory_int_99| ULTIMATE.start_main_p1)) (= (store |v_#memory_int_99| ULTIMATE.start_main_p5 (+ .cse1 1)) |#memory_int|) (= 0 .cse1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |v_#memory_int_99| ULTIMATE.start_main_p3) 0) (= 0 (+ (select |v_#memory_int_99| ULTIMATE.start_main_p4) 1)))) (let ((.cse2 (+ (select v_prenex_27 v_prenex_28) 1))) (and (= 0 (select v_prenex_27 ULTIMATE.start_main_p1)) (= 0 (select v_prenex_27 v_prenex_26)) .cse0 (not (= v_prenex_26 ULTIMATE.start_main_p1)) (= (select v_prenex_27 ULTIMATE.start_main_p2) 0) (not (= v_prenex_26 ULTIMATE.start_main_p2)) (= (store v_prenex_27 v_prenex_28 .cse2) |#memory_int|) (= .cse2 0))))) [2019-01-18 14:29:14,421 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [v_prenex_30, v_prenex_29, ULTIMATE.start_main_p5, v_prenex_28, v_prenex_26, v_prenex_34, v_prenex_33, v_prenex_31, v_prenex_32, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse3 (select |#memory_int| ULTIMATE.start_main_p1)) (.cse4 (select |#memory_int| ULTIMATE.start_main_p2))) (let ((.cse1 (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1))) (.cse2 (= 0 .cse4)) (.cse0 (= .cse3 0))) (or (and (not (= v_prenex_28 v_prenex_26)) (= (select |#memory_int| v_prenex_28) 0) (not (= v_prenex_28 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| v_prenex_26)) .cse0 (not (= v_prenex_26 ULTIMATE.start_main_p1)) .cse1 (not (= v_prenex_28 ULTIMATE.start_main_p1)) .cse2 (not (= v_prenex_26 ULTIMATE.start_main_p2))) (and (= .cse3 1) (not (= v_prenex_34 ULTIMATE.start_main_p2)) (= (+ (select |#memory_int| v_prenex_33) 1) 0) .cse2 (= (select |#memory_int| v_prenex_34) 0)) (and (not (= v_prenex_30 ULTIMATE.start_main_p2)) .cse0 (= (+ (select |#memory_int| v_prenex_29) 1) 0) .cse1 (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) .cse2 (not (= v_prenex_30 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_30) 0)) (and .cse0 (= (+ (select |#memory_int| v_prenex_31) 1) 0) .cse1 (= (select |#memory_int| v_prenex_32) 1) .cse2) (and (= 1 .cse4) .cse0 (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))))) [2019-01-18 14:29:14,558 WARN L181 SmtUtils]: Spent 107.00 ms on a formula simplification. DAG size of input: 88 DAG size of output: 69 [2019-01-18 14:29:14,613 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:14,614 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:14,615 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:14,616 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:14,618 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:14,619 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:14,620 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:14,621 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:14,622 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:14,623 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:29:14,626 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 37 treesize of output 86 [2019-01-18 14:29:14,627 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:14,731 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:14,731 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 55 treesize of output 53 [2019-01-18 14:29:14,734 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:14,810 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:14,812 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:14,813 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:14,814 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:14,815 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:14,816 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:14,817 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:14,819 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:14,820 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:14,820 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:29:14,821 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 37 treesize of output 82 [2019-01-18 14:29:14,824 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:14,906 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:14,907 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:14,908 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:14,910 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:14,911 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:14,912 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:14,913 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:14,914 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:14,915 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:14,916 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:14,917 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:29:14,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, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 37 treesize of output 73 [2019-01-18 14:29:14,922 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:14,998 INFO L267 ElimStorePlain]: Start of recursive call 1: 12 dim-0 vars, 4 dim-1 vars, End of recursive call: 12 dim-0 vars, and 4 xjuncts. [2019-01-18 14:29:14,999 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 16 variables, input treesize:167, output treesize:121 [2019-01-18 14:29:17,198 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:29:17,199 WARN L385 uantifierElimination]: Input elimination task: ∃ [v_prenex_40, v_prenex_39, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, v_prenex_35, v_prenex_36, v_prenex_33, v_prenex_34, v_prenex_37, v_prenex_38, v_prenex_28, v_prenex_26, |v_#memory_int_100|, ULTIMATE.start_main_p2, v_prenex_32, v_prenex_31]. (or (let ((.cse0 (select v_prenex_40 v_prenex_39))) (and (= .cse0 1) (= 0 (+ (select v_prenex_40 ULTIMATE.start_main_p4) 1)) (= (select v_prenex_40 ULTIMATE.start_main_p3) 0) (= (select v_prenex_40 ULTIMATE.start_main_p1) 0) (= |#memory_int| (store v_prenex_40 v_prenex_39 (+ .cse0 (- 1)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))) (let ((.cse1 (select v_prenex_35 v_prenex_36))) (and (= 0 (+ (select v_prenex_35 v_prenex_33) 1)) (= (select v_prenex_35 ULTIMATE.start_main_p1) 1) (= |#memory_int| (store v_prenex_35 v_prenex_36 (+ .cse1 (- 1)))) (not (= v_prenex_34 v_prenex_36)) (= .cse1 0) (= (select v_prenex_35 v_prenex_34) 0))) (let ((.cse2 (select v_prenex_37 v_prenex_38))) (and (= (select v_prenex_37 v_prenex_28) 0) (not (= v_prenex_28 v_prenex_26)) (not (= v_prenex_38 ULTIMATE.start_main_p1)) (not (= v_prenex_28 v_prenex_38)) (= (select v_prenex_37 ULTIMATE.start_main_p1) 0) (not (= v_prenex_26 ULTIMATE.start_main_p1)) (not (= v_prenex_28 ULTIMATE.start_main_p1)) (= (select v_prenex_37 v_prenex_26) 0) (= .cse2 0) (= |#memory_int| (store v_prenex_37 v_prenex_38 (+ .cse2 (- 1)))) (not (= v_prenex_26 v_prenex_38)))) (let ((.cse3 (select |v_#memory_int_100| ULTIMATE.start_main_p2))) (and (= (select |v_#memory_int_100| v_prenex_32) 1) (= .cse3 0) (= |#memory_int| (store |v_#memory_int_100| ULTIMATE.start_main_p2 (+ .cse3 (- 1)))) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (+ (select |v_#memory_int_100| v_prenex_31) 1) 0) (= (select |v_#memory_int_100| ULTIMATE.start_main_p1) 0)))) [2019-01-18 14:29:17,199 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [v_prenex_36, v_prenex_33, v_prenex_34, v_prenex_31, ULTIMATE.start_main_p2, v_prenex_32, ULTIMATE.start_main_p4, v_prenex_39, ULTIMATE.start_main_p3, v_prenex_28, v_prenex_26, v_prenex_38]. (let ((.cse0 (select |#memory_int| ULTIMATE.start_main_p1))) (let ((.cse1 (= .cse0 0))) (or (and (not (= v_prenex_36 v_prenex_33)) (= .cse0 1) (= (- 1) (select |#memory_int| v_prenex_36)) (= 0 (select |#memory_int| v_prenex_34)) (= (- 1) (select |#memory_int| v_prenex_33))) (and (not (= v_prenex_31 ULTIMATE.start_main_p2)) (= (+ (select |#memory_int| v_prenex_31) 1) 0) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= 1 (select |#memory_int| v_prenex_32)) .cse1) (and .cse1 (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= v_prenex_39 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= 0 (select |#memory_int| v_prenex_39)) (not (= v_prenex_39 ULTIMATE.start_main_p1))) (and (not (= v_prenex_28 v_prenex_26)) (= (select |#memory_int| v_prenex_28) 0) (= 0 (select |#memory_int| v_prenex_26)) .cse1 (not (= v_prenex_26 ULTIMATE.start_main_p1)) (not (= v_prenex_28 ULTIMATE.start_main_p1)) (= (- 1) (select |#memory_int| v_prenex_38)))))) [2019-01-18 14:29:17,307 INFO L273 TraceCheckUtils]: 0: Hoare triple {4336#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;#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]; {4345#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:29:17,309 INFO L273 TraceCheckUtils]: 1: Hoare triple {4345#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {4349#(or (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((v_prenex_26 Int)) (and (not (= v_prenex_26 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_26) 0) (not (= v_prenex_26 ULTIMATE.start_main_p2)))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1))) (and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2))))} is VALID [2019-01-18 14:29:17,317 INFO L273 TraceCheckUtils]: 2: Hoare triple {4349#(or (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((v_prenex_26 Int)) (and (not (= v_prenex_26 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_26) 0) (not (= v_prenex_26 ULTIMATE.start_main_p2)))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1))) (and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2))))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {4353#(or (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((v_prenex_31 Int)) (= (+ (select |#memory_int| v_prenex_31) 1) 0)) (exists ((v_prenex_32 Int)) (= (select |#memory_int| v_prenex_32) 1))) (and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= 1 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (and (exists ((v_prenex_26 Int) (v_prenex_28 Int)) (and (not (= v_prenex_28 v_prenex_26)) (= (select |#memory_int| v_prenex_28) 0) (not (= v_prenex_28 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| v_prenex_26)) (not (= v_prenex_26 ULTIMATE.start_main_p1)) (not (= v_prenex_28 ULTIMATE.start_main_p1)) (not (= v_prenex_26 ULTIMATE.start_main_p2)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((v_prenex_34 Int)) (and (= (select |#memory_int| v_prenex_34) 0) (not (= v_prenex_34 ULTIMATE.start_main_p2)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((v_prenex_33 Int)) (= (+ (select |#memory_int| v_prenex_33) 1) 0))))} is VALID [2019-01-18 14:29:17,322 INFO L273 TraceCheckUtils]: 3: Hoare triple {4353#(or (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((v_prenex_31 Int)) (= (+ (select |#memory_int| v_prenex_31) 1) 0)) (exists ((v_prenex_32 Int)) (= (select |#memory_int| v_prenex_32) 1))) (and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= 1 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (and (exists ((v_prenex_26 Int) (v_prenex_28 Int)) (and (not (= v_prenex_28 v_prenex_26)) (= (select |#memory_int| v_prenex_28) 0) (not (= v_prenex_28 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| v_prenex_26)) (not (= v_prenex_26 ULTIMATE.start_main_p1)) (not (= v_prenex_28 ULTIMATE.start_main_p1)) (not (= v_prenex_26 ULTIMATE.start_main_p2)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((v_prenex_34 Int)) (and (= (select |#memory_int| v_prenex_34) 0) (not (= v_prenex_34 ULTIMATE.start_main_p2)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((v_prenex_33 Int)) (= (+ (select |#memory_int| v_prenex_33) 1) 0))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {4357#(or (and (exists ((v_prenex_31 Int) (ULTIMATE.start_main_p2 Int)) (and (not (= v_prenex_31 ULTIMATE.start_main_p2)) (= (+ (select |#memory_int| v_prenex_31) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_32 Int)) (= 1 (select |#memory_int| v_prenex_32)))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((v_prenex_33 Int) (v_prenex_36 Int)) (and (not (= v_prenex_36 v_prenex_33)) (= 0 (+ (select |#memory_int| v_prenex_33) 1)) (= 0 (+ (select |#memory_int| v_prenex_36) 1)))) (exists ((v_prenex_34 Int)) (= 0 (select |#memory_int| v_prenex_34)))) (and (exists ((v_prenex_38 Int)) (= 0 (+ (select |#memory_int| v_prenex_38) 1))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_26 Int) (v_prenex_28 Int)) (and (not (= v_prenex_28 v_prenex_26)) (= (select |#memory_int| v_prenex_28) 0) (= 0 (select |#memory_int| v_prenex_26)) (not (= v_prenex_26 ULTIMATE.start_main_p1)) (not (= v_prenex_28 ULTIMATE.start_main_p1))))))} is VALID [2019-01-18 14:29:17,323 INFO L273 TraceCheckUtils]: 4: Hoare triple {4357#(or (and (exists ((v_prenex_31 Int) (ULTIMATE.start_main_p2 Int)) (and (not (= v_prenex_31 ULTIMATE.start_main_p2)) (= (+ (select |#memory_int| v_prenex_31) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_32 Int)) (= 1 (select |#memory_int| v_prenex_32)))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((v_prenex_33 Int) (v_prenex_36 Int)) (and (not (= v_prenex_36 v_prenex_33)) (= 0 (+ (select |#memory_int| v_prenex_33) 1)) (= 0 (+ (select |#memory_int| v_prenex_36) 1)))) (exists ((v_prenex_34 Int)) (= 0 (select |#memory_int| v_prenex_34)))) (and (exists ((v_prenex_38 Int)) (= 0 (+ (select |#memory_int| v_prenex_38) 1))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_26 Int) (v_prenex_28 Int)) (and (not (= v_prenex_28 v_prenex_26)) (= (select |#memory_int| v_prenex_28) 0) (= 0 (select |#memory_int| v_prenex_26)) (not (= v_prenex_26 ULTIMATE.start_main_p1)) (not (= v_prenex_28 ULTIMATE.start_main_p1))))))} assume !(#memory_int[main_p1] >= 0); {4337#false} is VALID [2019-01-18 14:29:17,324 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-18 14:29:17,324 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:29:17,405 INFO L273 TraceCheckUtils]: 4: Hoare triple {4361#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {4337#false} is VALID [2019-01-18 14:29:17,406 INFO L273 TraceCheckUtils]: 3: Hoare triple {4365#(<= 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]; {4361#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:29:17,407 INFO L273 TraceCheckUtils]: 2: Hoare triple {4369#(<= 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]; {4365#(<= 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-18 14:29:17,408 INFO L273 TraceCheckUtils]: 1: Hoare triple {4373#(<= 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]; {4369#(<= 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-18 14:29:17,410 INFO L273 TraceCheckUtils]: 0: Hoare triple {4336#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;#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]; {4373#(<= 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-18 14:29:17,410 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-18 14:29:17,429 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:29:17,429 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-18 14:29:17,429 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:29:17,429 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-18 14:29:17,429 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:29:17,429 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-18 14:29:17,450 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-18 14:29:17,450 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-18 14:29:17,450 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-18 14:29:17,450 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=62, Invalid=120, Unknown=0, NotChecked=0, Total=182 [2019-01-18 14:29:17,451 INFO L87 Difference]: Start difference. First operand 48 states and 218 transitions. Second operand 10 states. [2019-01-18 14:29:19,615 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:29:19,615 INFO L93 Difference]: Finished difference Result 109 states and 322 transitions. [2019-01-18 14:29:19,616 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2019-01-18 14:29:19,616 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-18 14:29:19,616 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:29:19,616 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:29:19,617 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 103 transitions. [2019-01-18 14:29:19,617 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:29:19,618 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 103 transitions. [2019-01-18 14:29:19,618 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states and 103 transitions. [2019-01-18 14:29:19,817 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 103 edges. 103 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:29:19,819 INFO L225 Difference]: With dead ends: 109 [2019-01-18 14:29:19,820 INFO L226 Difference]: Without dead ends: 107 [2019-01-18 14:29:19,820 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 17 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 17 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 60 ImplicationChecksByTransitivity, 1.4s TimeCoverageRelationStatistics Valid=115, Invalid=227, Unknown=0, NotChecked=0, Total=342 [2019-01-18 14:29:19,820 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 107 states. [2019-01-18 14:29:20,219 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 107 to 51. [2019-01-18 14:29:20,220 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:29:20,220 INFO L82 GeneralOperation]: Start isEquivalent. First operand 107 states. Second operand 51 states. [2019-01-18 14:29:20,220 INFO L74 IsIncluded]: Start isIncluded. First operand 107 states. Second operand 51 states. [2019-01-18 14:29:20,220 INFO L87 Difference]: Start difference. First operand 107 states. Second operand 51 states. [2019-01-18 14:29:20,223 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:29:20,223 INFO L93 Difference]: Finished difference Result 107 states and 317 transitions. [2019-01-18 14:29:20,224 INFO L276 IsEmpty]: Start isEmpty. Operand 107 states and 317 transitions. [2019-01-18 14:29:20,224 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:29:20,224 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:29:20,224 INFO L74 IsIncluded]: Start isIncluded. First operand 51 states. Second operand 107 states. [2019-01-18 14:29:20,224 INFO L87 Difference]: Start difference. First operand 51 states. Second operand 107 states. [2019-01-18 14:29:20,226 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:29:20,226 INFO L93 Difference]: Finished difference Result 107 states and 317 transitions. [2019-01-18 14:29:20,226 INFO L276 IsEmpty]: Start isEmpty. Operand 107 states and 317 transitions. [2019-01-18 14:29:20,226 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:29:20,227 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:29:20,227 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:29:20,227 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:29:20,227 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 51 states. [2019-01-18 14:29:20,228 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 51 states to 51 states and 236 transitions. [2019-01-18 14:29:20,228 INFO L78 Accepts]: Start accepts. Automaton has 51 states and 236 transitions. Word has length 5 [2019-01-18 14:29:20,228 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:29:20,228 INFO L480 AbstractCegarLoop]: Abstraction has 51 states and 236 transitions. [2019-01-18 14:29:20,228 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-18 14:29:20,228 INFO L276 IsEmpty]: Start isEmpty. Operand 51 states and 236 transitions. [2019-01-18 14:29:20,229 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-18 14:29:20,229 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:29:20,229 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-18 14:29:20,229 INFO L423 AbstractCegarLoop]: === Iteration 21 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:29:20,229 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:29:20,229 INFO L82 PathProgramCache]: Analyzing trace with hash 29171924, now seen corresponding path program 1 times [2019-01-18 14:29:20,229 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:29:20,230 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:29:20,230 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:29:20,230 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:29:20,230 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:29:20,234 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:29:20,328 INFO L273 TraceCheckUtils]: 0: Hoare triple {4840#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;#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]; {4842#(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)))} is VALID [2019-01-18 14:29:20,329 INFO L273 TraceCheckUtils]: 1: Hoare triple {4842#(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)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {4843#(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-18 14:29:20,330 INFO L273 TraceCheckUtils]: 2: Hoare triple {4843#(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]; {4843#(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-18 14:29:20,331 INFO L273 TraceCheckUtils]: 3: Hoare triple {4843#(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; {4844#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:29:20,331 INFO L273 TraceCheckUtils]: 4: Hoare triple {4844#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {4841#false} is VALID [2019-01-18 14:29:20,332 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-18 14:29:20,332 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:29:20,332 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:29:20,332 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-18 14:29:20,333 INFO L207 CegarAbsIntRunner]: [0], [6], [18], [24], [25] [2019-01-18 14:29:20,335 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:29:20,335 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:29:20,344 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:29:20,344 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 2. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:29:20,344 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:29:20,345 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:29:20,345 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:29:20,345 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-18 14:29:20,353 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:29:20,353 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:29:20,357 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:29:20,360 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:29:20,361 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:29:20,404 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 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 18 treesize of output 21 [2019-01-18 14:29:20,410 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-18 14:29:20,418 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:20,420 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:20,421 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-18 14:29:20,432 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:20,433 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:20,434 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:20,435 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-18 14:29:20,453 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-18 14:29:20,456 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:20,475 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:20,492 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:20,505 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:20,516 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:20,541 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:20,541 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 40 [2019-01-18 14:29:20,583 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:20,584 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:20,585 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 42 [2019-01-18 14:29:20,631 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:20,633 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:20,634 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:20,635 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:20,636 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 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 21 treesize of output 25 [2019-01-18 14:29:20,638 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:20,648 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:20,658 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:20,684 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-18 14:29:20,684 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 4 variables, input treesize:52, output treesize:50 [2019-01-18 14:29:20,692 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:29:20,692 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_104|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5, |v_#valid_24|]. (let ((.cse0 (store |v_#valid_24| ULTIMATE.start_main_p1 1))) (let ((.cse1 (store .cse0 ULTIMATE.start_main_p2 1))) (and (= 0 (select .cse0 ULTIMATE.start_main_p2)) (= |#memory_int| (store (store (store (store (store |v_#memory_int_104| 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)) (= 0 (select (store .cse1 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4)) (= (select .cse1 ULTIMATE.start_main_p3) 0)))) [2019-01-18 14:29:20,692 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:29:20,839 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:20,840 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-18 14:29:20,843 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:20,864 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-18 14:29:20,864 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:55, output treesize:33 [2019-01-18 14:29:23,281 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:29:23,281 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_105|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_105| ULTIMATE.start_main_p4))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= |#memory_int| (store |v_#memory_int_105| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_105| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 .cse0) (= (select |v_#memory_int_105| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_105| ULTIMATE.start_main_p2) 0))) [2019-01-18 14:29:23,281 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-18 14:29:23,390 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:23,391 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:23,392 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:23,393 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:23,394 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:23,395 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:23,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, 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-18 14:29:23,400 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:23,423 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-18 14:29:23,423 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:45, output treesize:27 [2019-01-18 14:29:23,430 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:29:23,430 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_106|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_106| ULTIMATE.start_main_p1))) (and (= (store |v_#memory_int_106| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_106| ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_106| ULTIMATE.start_main_p3)) (= 0 .cse0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (+ (select |v_#memory_int_106| ULTIMATE.start_main_p4) 1) 0))) [2019-01-18 14:29:23,431 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (+ (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)) [2019-01-18 14:29:23,466 INFO L273 TraceCheckUtils]: 0: Hoare triple {4840#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;#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]; {4848#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:29:23,468 INFO L273 TraceCheckUtils]: 1: Hoare triple {4848#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {4852#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:29:23,471 INFO L273 TraceCheckUtils]: 2: Hoare triple {4852#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {4856#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} is VALID [2019-01-18 14:29:23,472 INFO L273 TraceCheckUtils]: 3: Hoare triple {4856#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} assume #memory_int[main_p1] >= 0; {4856#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} is VALID [2019-01-18 14:29:23,472 INFO L273 TraceCheckUtils]: 4: Hoare triple {4856#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} assume !(#memory_int[main_p2] <= 0); {4841#false} is VALID [2019-01-18 14:29:23,473 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-18 14:29:23,473 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:29:23,515 INFO L273 TraceCheckUtils]: 4: Hoare triple {4863#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {4841#false} is VALID [2019-01-18 14:29:23,516 INFO L273 TraceCheckUtils]: 3: Hoare triple {4863#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {4863#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:29:23,517 INFO L273 TraceCheckUtils]: 2: Hoare triple {4870#(<= (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]; {4863#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:29:23,518 INFO L273 TraceCheckUtils]: 1: Hoare triple {4874#(<= (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]; {4870#(<= (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-18 14:29:23,520 INFO L273 TraceCheckUtils]: 0: Hoare triple {4840#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;#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]; {4874#(<= (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-18 14:29:23,521 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-18 14:29:23,540 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:29:23,540 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-18 14:29:23,540 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:29:23,541 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-18 14:29:23,541 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:29:23,541 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-18 14:29:23,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-18 14:29:23,555 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-18 14:29:23,555 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-18 14:29:23,555 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=40, Invalid=70, Unknown=0, NotChecked=0, Total=110 [2019-01-18 14:29:23,555 INFO L87 Difference]: Start difference. First operand 51 states and 236 transitions. Second operand 8 states. [2019-01-18 14:29:24,853 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:29:24,853 INFO L93 Difference]: Finished difference Result 77 states and 292 transitions. [2019-01-18 14:29:24,854 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-18 14:29:24,854 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-18 14:29:24,854 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:29:24,854 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:29:24,854 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 52 transitions. [2019-01-18 14:29:24,854 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:29:24,855 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 52 transitions. [2019-01-18 14:29:24,855 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 52 transitions. [2019-01-18 14:29:24,923 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 52 edges. 52 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:29:24,924 INFO L225 Difference]: With dead ends: 77 [2019-01-18 14:29:24,925 INFO L226 Difference]: Without dead ends: 76 [2019-01-18 14:29:24,925 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 15 GetRequests, 2 SyntacticMatches, 1 SemanticMatches, 12 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 29 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=69, Invalid=113, Unknown=0, NotChecked=0, Total=182 [2019-01-18 14:29:24,925 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 76 states. [2019-01-18 14:29:25,413 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 76 to 55. [2019-01-18 14:29:25,413 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:29:25,413 INFO L82 GeneralOperation]: Start isEquivalent. First operand 76 states. Second operand 55 states. [2019-01-18 14:29:25,413 INFO L74 IsIncluded]: Start isIncluded. First operand 76 states. Second operand 55 states. [2019-01-18 14:29:25,413 INFO L87 Difference]: Start difference. First operand 76 states. Second operand 55 states. [2019-01-18 14:29:25,416 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:29:25,416 INFO L93 Difference]: Finished difference Result 76 states and 290 transitions. [2019-01-18 14:29:25,416 INFO L276 IsEmpty]: Start isEmpty. Operand 76 states and 290 transitions. [2019-01-18 14:29:25,416 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:29:25,416 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:29:25,417 INFO L74 IsIncluded]: Start isIncluded. First operand 55 states. Second operand 76 states. [2019-01-18 14:29:25,417 INFO L87 Difference]: Start difference. First operand 55 states. Second operand 76 states. [2019-01-18 14:29:25,418 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:29:25,418 INFO L93 Difference]: Finished difference Result 76 states and 290 transitions. [2019-01-18 14:29:25,418 INFO L276 IsEmpty]: Start isEmpty. Operand 76 states and 290 transitions. [2019-01-18 14:29:25,419 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:29:25,419 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:29:25,419 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:29:25,419 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:29:25,419 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 55 states. [2019-01-18 14:29:25,420 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 55 states to 55 states and 261 transitions. [2019-01-18 14:29:25,420 INFO L78 Accepts]: Start accepts. Automaton has 55 states and 261 transitions. Word has length 5 [2019-01-18 14:29:25,421 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:29:25,421 INFO L480 AbstractCegarLoop]: Abstraction has 55 states and 261 transitions. [2019-01-18 14:29:25,421 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-18 14:29:25,421 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 261 transitions. [2019-01-18 14:29:25,421 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-18 14:29:25,421 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:29:25,421 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-18 14:29:25,421 INFO L423 AbstractCegarLoop]: === Iteration 22 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:29:25,422 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:29:25,422 INFO L82 PathProgramCache]: Analyzing trace with hash 29175642, now seen corresponding path program 2 times [2019-01-18 14:29:25,422 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:29:25,422 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:29:25,422 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:29:25,422 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:29:25,422 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:29:25,429 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:29:25,584 INFO L273 TraceCheckUtils]: 0: Hoare triple {5251#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;#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]; {5253#(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_p5)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p4 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-18 14:29:25,585 INFO L273 TraceCheckUtils]: 1: Hoare triple {5253#(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_p5)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p4 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]; {5254#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p5)) (= 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-18 14:29:25,587 INFO L273 TraceCheckUtils]: 2: Hoare triple {5254#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p5)) (= 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]; {5255#(and (or (= 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))) (= (select |#memory_int| ULTIMATE.start_main_p5) 0))} is VALID [2019-01-18 14:29:25,588 INFO L273 TraceCheckUtils]: 3: Hoare triple {5255#(and (or (= 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))) (= (select |#memory_int| ULTIMATE.start_main_p5) 0))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {5256#(or (<= 1 (select |#memory_int| ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-01-18 14:29:25,589 INFO L273 TraceCheckUtils]: 4: Hoare triple {5256#(or (<= 1 (select |#memory_int| ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} assume !(#memory_int[main_p1] >= 0); {5252#false} is VALID [2019-01-18 14:29:25,589 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-18 14:29:25,589 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:29:25,590 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:29:25,590 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-18 14:29:25,590 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-18 14:29:25,590 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:29:25,590 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-18 14:29:25,599 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-18 14:29:25,600 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-18 14:29:25,605 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-18 14:29:25,605 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-18 14:29:25,610 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:29:25,610 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:29:25,664 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:25,665 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 48 treesize of output 54 [2019-01-18 14:29:25,759 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:25,760 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:25,761 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 41 treesize of output 53 [2019-01-18 14:29:25,819 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:25,820 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:25,821 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:25,822 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:25,823 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 32 treesize of output 61 [2019-01-18 14:29:25,901 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:25,902 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:25,903 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:25,905 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:25,906 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:25,907 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:25,908 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 5 select indices, 5 select index equivalence classes, 11 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 41 [2019-01-18 14:29:25,910 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:25,926 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:25,943 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:25,961 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:25,987 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 4 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-18 14:29:25,995 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 7 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-18 14:29:26,008 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 9 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-18 14:29:26,021 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 10 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-18 14:29:26,037 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-18 14:29:26,040 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:26,065 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:26,080 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:26,090 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:26,100 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:26,134 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 2 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-18 14:29:26,134 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 3 variables, input treesize:69, output treesize:66 [2019-01-18 14:29:26,141 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:29:26,141 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_109|, ULTIMATE.start_main_p3, |v_#valid_25|]. (let ((.cse1 (store |v_#valid_25| ULTIMATE.start_main_p1 1))) (let ((.cse2 (store .cse1 ULTIMATE.start_main_p2 1))) (let ((.cse0 (store .cse2 ULTIMATE.start_main_p3 1))) (and (= (store (store (store (store (store |v_#memory_int_109| 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|) (= (select (store .cse0 ULTIMATE.start_main_p4 1) ULTIMATE.start_main_p5) 0) (= 0 (select .cse0 ULTIMATE.start_main_p4)) (= (select .cse1 ULTIMATE.start_main_p2) 0) (= 0 (select .cse2 ULTIMATE.start_main_p3)))))) [2019-01-18 14:29:26,141 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:29:26,223 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:26,224 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-18 14:29:26,227 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:26,259 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-18 14:29:26,260 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:76, output treesize:50 [2019-01-18 14:29:26,282 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:29:26,282 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_110|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_110| ULTIMATE.start_main_p4))) (and (= .cse0 0) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_110| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_110| ULTIMATE.start_main_p5) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= |#memory_int| (store |v_#memory_int_110| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= (select |v_#memory_int_110| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_110| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))) [2019-01-18 14:29:26,283 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-18 14:29:26,350 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:26,352 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:26,353 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:26,354 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:26,355 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:26,356 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:29:26,357 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-18 14:29:26,360 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:26,396 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-18 14:29:26,396 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:62, output treesize:42 [2019-01-18 14:29:26,409 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:29:26,410 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_111|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_111| ULTIMATE.start_main_p2))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_111| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_111| ULTIMATE.start_main_p5) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= |#memory_int| (store |v_#memory_int_111| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= (select |v_#memory_int_111| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 .cse0) (= (+ (select |v_#memory_int_111| ULTIMATE.start_main_p4) 1) 0))) [2019-01-18 14:29:26,410 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-18 14:29:26,568 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:26,568 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:26,569 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:26,570 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:26,571 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:26,572 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:26,573 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:26,574 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:26,575 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:26,576 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 82 [2019-01-18 14:29:26,580 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:26,612 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-18 14:29:26,613 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:56, output treesize:38 [2019-01-18 14:29:26,624 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:29:26,624 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_112|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_112| ULTIMATE.start_main_p5))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= (+ (select |v_#memory_int_112| ULTIMATE.start_main_p2) 1) 0) (= 0 (select |v_#memory_int_112| ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 0 (+ (select |v_#memory_int_112| ULTIMATE.start_main_p4) 1)) (= (store |v_#memory_int_112| ULTIMATE.start_main_p5 (+ .cse0 1)) |#memory_int|) (= .cse0 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_112| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))) [2019-01-18 14:29:26,624 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-18 14:29:26,655 INFO L273 TraceCheckUtils]: 0: Hoare triple {5251#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;#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]; {5260#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:29:26,657 INFO L273 TraceCheckUtils]: 1: Hoare triple {5260#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {5264#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:29:26,659 INFO L273 TraceCheckUtils]: 2: Hoare triple {5264#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {5268#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int)) (and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-01-18 14:29:26,661 INFO L273 TraceCheckUtils]: 3: Hoare triple {5268#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int)) (and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {5272#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (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)) (and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-18 14:29:26,662 INFO L273 TraceCheckUtils]: 4: Hoare triple {5272#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (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)) (and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume !(#memory_int[main_p1] >= 0); {5252#false} is VALID [2019-01-18 14:29:26,663 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-18 14:29:26,663 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:29:26,749 INFO L273 TraceCheckUtils]: 4: Hoare triple {5256#(or (<= 1 (select |#memory_int| ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} assume !(#memory_int[main_p1] >= 0); {5252#false} is VALID [2019-01-18 14:29:26,750 INFO L273 TraceCheckUtils]: 3: Hoare triple {5279#(or (= (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 0) (<= 1 (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]; {5256#(or (<= 1 (select |#memory_int| ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-01-18 14:29:26,752 INFO L273 TraceCheckUtils]: 2: Hoare triple {5283#(or (= (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_p1) 0) (<= 1 (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_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {5279#(or (= (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1) 0) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p1)))} is VALID [2019-01-18 14:29:26,754 INFO L273 TraceCheckUtils]: 1: Hoare triple {5287#(or (= (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_p5 (+ (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_p5) 1)) ULTIMATE.start_main_p1) 0) (<= 1 (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_p5 (+ (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_p5) 1)) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {5283#(or (= (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_p1) 0) (<= 1 (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_p1)))} is VALID [2019-01-18 14:29:26,757 INFO L273 TraceCheckUtils]: 0: Hoare triple {5251#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;#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]; {5287#(or (= (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_p5 (+ (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_p5) 1)) ULTIMATE.start_main_p1) 0) (<= 1 (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_p5 (+ (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_p5) 1)) ULTIMATE.start_main_p1)))} is VALID [2019-01-18 14:29:26,757 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-18 14:29:26,776 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:29:26,776 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-18 14:29:26,777 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:29:26,777 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-18 14:29:26,777 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:29:26,777 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-18 14:29:26,794 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-18 14:29:26,794 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-18 14:29:26,794 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-18 14:29:26,794 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=56, Invalid=100, Unknown=0, NotChecked=0, Total=156 [2019-01-18 14:29:26,795 INFO L87 Difference]: Start difference. First operand 55 states and 261 transitions. Second operand 10 states. [2019-01-18 14:29:28,717 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:29:28,718 INFO L93 Difference]: Finished difference Result 88 states and 340 transitions. [2019-01-18 14:29:28,718 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-18 14:29:28,718 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-18 14:29:28,718 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:29:28,718 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:29:28,719 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 69 transitions. [2019-01-18 14:29:28,719 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:29:28,719 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 69 transitions. [2019-01-18 14:29:28,720 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 69 transitions. [2019-01-18 14:29:28,826 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-18 14:29:28,828 INFO L225 Difference]: With dead ends: 88 [2019-01-18 14:29:28,828 INFO L226 Difference]: Without dead ends: 83 [2019-01-18 14:29:28,828 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 0 SyntacticMatches, 1 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 57 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=76, Invalid=134, Unknown=0, NotChecked=0, Total=210 [2019-01-18 14:29:28,829 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 83 states. [2019-01-18 14:29:29,353 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 83 to 61. [2019-01-18 14:29:29,354 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:29:29,354 INFO L82 GeneralOperation]: Start isEquivalent. First operand 83 states. Second operand 61 states. [2019-01-18 14:29:29,354 INFO L74 IsIncluded]: Start isIncluded. First operand 83 states. Second operand 61 states. [2019-01-18 14:29:29,354 INFO L87 Difference]: Start difference. First operand 83 states. Second operand 61 states. [2019-01-18 14:29:29,357 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:29:29,357 INFO L93 Difference]: Finished difference Result 83 states and 331 transitions. [2019-01-18 14:29:29,357 INFO L276 IsEmpty]: Start isEmpty. Operand 83 states and 331 transitions. [2019-01-18 14:29:29,358 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:29:29,358 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:29:29,358 INFO L74 IsIncluded]: Start isIncluded. First operand 61 states. Second operand 83 states. [2019-01-18 14:29:29,358 INFO L87 Difference]: Start difference. First operand 61 states. Second operand 83 states. [2019-01-18 14:29:29,360 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:29:29,360 INFO L93 Difference]: Finished difference Result 83 states and 331 transitions. [2019-01-18 14:29:29,360 INFO L276 IsEmpty]: Start isEmpty. Operand 83 states and 331 transitions. [2019-01-18 14:29:29,360 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:29:29,360 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:29:29,361 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:29:29,361 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:29:29,361 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 61 states. [2019-01-18 14:29:29,362 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 61 states to 61 states and 273 transitions. [2019-01-18 14:29:29,362 INFO L78 Accepts]: Start accepts. Automaton has 61 states and 273 transitions. Word has length 5 [2019-01-18 14:29:29,362 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:29:29,363 INFO L480 AbstractCegarLoop]: Abstraction has 61 states and 273 transitions. [2019-01-18 14:29:29,363 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-18 14:29:29,363 INFO L276 IsEmpty]: Start isEmpty. Operand 61 states and 273 transitions. [2019-01-18 14:29:29,363 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-18 14:29:29,363 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:29:29,363 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-18 14:29:29,364 INFO L423 AbstractCegarLoop]: === Iteration 23 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:29:29,364 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:29:29,364 INFO L82 PathProgramCache]: Analyzing trace with hash 29179612, now seen corresponding path program 1 times [2019-01-18 14:29:29,364 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:29:29,364 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:29:29,365 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-18 14:29:29,365 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:29:29,365 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:29:29,370 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:29:29,436 INFO L273 TraceCheckUtils]: 0: Hoare triple {5701#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;#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]; {5703#(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-18 14:29:29,437 INFO L273 TraceCheckUtils]: 1: Hoare triple {5703#(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]; {5704#(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-18 14:29:29,438 INFO L273 TraceCheckUtils]: 2: Hoare triple {5704#(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]; {5705#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:29:29,439 INFO L273 TraceCheckUtils]: 3: Hoare triple {5705#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {5705#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:29:29,439 INFO L273 TraceCheckUtils]: 4: Hoare triple {5705#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {5702#false} is VALID [2019-01-18 14:29:29,440 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-18 14:29:29,440 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:29:29,440 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:29:29,440 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-18 14:29:29,441 INFO L207 CegarAbsIntRunner]: [0], [14], [18], [24], [25] [2019-01-18 14:29:29,442 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:29:29,442 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:29:29,467 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:29:29,467 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 2. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:29:29,468 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:29:29,468 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:29:29,468 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:29:29,468 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-18 14:29:29,476 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:29:29,476 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:29:29,480 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:29:29,488 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:29:29,488 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:29:29,506 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-18 14:29:29,519 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-18 14:29:29,532 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:29,533 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:29,534 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 33 [2019-01-18 14:29:29,571 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:29,572 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:29,573 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:29,574 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 5 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 47 [2019-01-18 14:29:29,593 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 5 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 46 [2019-01-18 14:29:29,596 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:29,614 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:29,628 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:29,640 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:29,650 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:29,669 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 25 [2019-01-18 14:29:29,690 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:29,692 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:29,693 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 22 treesize of output 38 [2019-01-18 14:29:29,840 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:29,841 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:29,843 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:29,844 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:29,845 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 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 21 treesize of output 21 [2019-01-18 14:29:29,847 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:29,857 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:29,866 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:29,887 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-18 14:29:29,887 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 4 variables, input treesize:44, output treesize:46 [2019-01-18 14:29:29,894 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:29:29,894 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_116|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p5, |v_#valid_26|]. (let ((.cse0 (store (store |v_#valid_26| ULTIMATE.start_main_p1 1) ULTIMATE.start_main_p2 1))) (and (= (store (store (store (store (store |v_#memory_int_116| 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|) (= (select .cse0 ULTIMATE.start_main_p3) 0) (= (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4) 0))) [2019-01-18 14:29:29,894 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p5, ULTIMATE.start_main_p1]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:29:29,952 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:29,953 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-18 14:29:29,956 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:29,967 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-18 14:29:29,967 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:38, output treesize:20 [2019-01-18 14:29:32,369 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:29:32,369 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_117|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_117| ULTIMATE.start_main_p4))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 .cse0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_117| ULTIMATE.start_main_p3)) (= 0 (select |v_#memory_int_117| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (store |v_#memory_int_117| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|))) [2019-01-18 14:29:32,370 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-18 14:29:32,451 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:32,452 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:32,453 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:32,454 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:32,455 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:32,456 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-18 14:29:32,459 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:32,474 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-18 14:29:32,474 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:32, output treesize:18 [2019-01-18 14:29:32,498 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:29:32,498 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_118|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_118| ULTIMATE.start_main_p3))) (and (= 0 .cse0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= |#memory_int| (store |v_#memory_int_118| ULTIMATE.start_main_p3 (+ .cse0 1))) (= 0 (select |v_#memory_int_118| ULTIMATE.start_main_p2)) (= 0 (+ (select |v_#memory_int_118| ULTIMATE.start_main_p4) 1)))) [2019-01-18 14:29:32,498 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (and (= (+ (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))) [2019-01-18 14:29:32,525 INFO L273 TraceCheckUtils]: 0: Hoare triple {5701#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;#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]; {5709#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:29:32,526 INFO L273 TraceCheckUtils]: 1: Hoare triple {5709#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (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]; {5713#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (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))} is VALID [2019-01-18 14:29:32,527 INFO L273 TraceCheckUtils]: 2: Hoare triple {5713#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (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))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {5717#(and (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:29:32,528 INFO L273 TraceCheckUtils]: 3: Hoare triple {5717#(and (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume #memory_int[main_p1] >= 0; {5717#(and (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:29:32,528 INFO L273 TraceCheckUtils]: 4: Hoare triple {5717#(and (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume !(#memory_int[main_p2] <= 0); {5702#false} is VALID [2019-01-18 14:29:32,529 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-18 14:29:32,529 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:29:32,568 INFO L273 TraceCheckUtils]: 4: Hoare triple {5724#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {5702#false} is VALID [2019-01-18 14:29:32,570 INFO L273 TraceCheckUtils]: 3: Hoare triple {5724#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {5724#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:29:32,573 INFO L273 TraceCheckUtils]: 2: Hoare triple {5731#(<= (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]; {5724#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:29:32,574 INFO L273 TraceCheckUtils]: 1: Hoare triple {5735#(<= (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]; {5731#(<= (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-18 14:29:32,575 INFO L273 TraceCheckUtils]: 0: Hoare triple {5701#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;#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]; {5735#(<= (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-18 14:29:32,576 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-18 14:29:32,594 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:29:32,594 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-18 14:29:32,594 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:29:32,594 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-18 14:29:32,594 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:29:32,595 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-18 14:29:32,607 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-18 14:29:32,607 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-18 14:29:32,607 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-18 14:29:32,607 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-18 14:29:32,608 INFO L87 Difference]: Start difference. First operand 61 states and 273 transitions. Second operand 8 states. [2019-01-18 14:29:33,970 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:29:33,970 INFO L93 Difference]: Finished difference Result 81 states and 298 transitions. [2019-01-18 14:29:33,970 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-18 14:29:33,970 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-18 14:29:33,971 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:29:33,971 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:29:33,971 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 51 transitions. [2019-01-18 14:29:33,971 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:29:33,971 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 51 transitions. [2019-01-18 14:29:33,972 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 51 transitions. [2019-01-18 14:29:34,030 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 51 edges. 51 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:29:34,032 INFO L225 Difference]: With dead ends: 81 [2019-01-18 14:29:34,032 INFO L226 Difference]: Without dead ends: 80 [2019-01-18 14:29:34,032 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 13 GetRequests, 2 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-18 14:29:34,032 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 80 states. [2019-01-18 14:29:34,549 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 80 to 61. [2019-01-18 14:29:34,549 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:29:34,549 INFO L82 GeneralOperation]: Start isEquivalent. First operand 80 states. Second operand 61 states. [2019-01-18 14:29:34,549 INFO L74 IsIncluded]: Start isIncluded. First operand 80 states. Second operand 61 states. [2019-01-18 14:29:34,550 INFO L87 Difference]: Start difference. First operand 80 states. Second operand 61 states. [2019-01-18 14:29:34,552 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:29:34,552 INFO L93 Difference]: Finished difference Result 80 states and 296 transitions. [2019-01-18 14:29:34,552 INFO L276 IsEmpty]: Start isEmpty. Operand 80 states and 296 transitions. [2019-01-18 14:29:34,553 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:29:34,553 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:29:34,553 INFO L74 IsIncluded]: Start isIncluded. First operand 61 states. Second operand 80 states. [2019-01-18 14:29:34,554 INFO L87 Difference]: Start difference. First operand 61 states. Second operand 80 states. [2019-01-18 14:29:34,556 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:29:34,556 INFO L93 Difference]: Finished difference Result 80 states and 296 transitions. [2019-01-18 14:29:34,556 INFO L276 IsEmpty]: Start isEmpty. Operand 80 states and 296 transitions. [2019-01-18 14:29:34,556 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:29:34,557 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:29:34,557 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:29:34,557 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:29:34,557 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 61 states. [2019-01-18 14:29:34,558 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 61 states to 61 states and 273 transitions. [2019-01-18 14:29:34,559 INFO L78 Accepts]: Start accepts. Automaton has 61 states and 273 transitions. Word has length 5 [2019-01-18 14:29:34,559 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:29:34,559 INFO L480 AbstractCegarLoop]: Abstraction has 61 states and 273 transitions. [2019-01-18 14:29:34,559 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-18 14:29:34,559 INFO L276 IsEmpty]: Start isEmpty. Operand 61 states and 273 transitions. [2019-01-18 14:29:34,559 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-18 14:29:34,559 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:29:34,560 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-18 14:29:34,560 INFO L423 AbstractCegarLoop]: === Iteration 24 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:29:34,560 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:29:34,560 INFO L82 PathProgramCache]: Analyzing trace with hash 29179176, now seen corresponding path program 1 times [2019-01-18 14:29:34,560 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:29:34,561 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:29:34,561 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:29:34,561 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:29:34,561 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:29:34,567 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:29:34,790 INFO L273 TraceCheckUtils]: 0: Hoare triple {6129#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;#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]; {6131#(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-18 14:29:34,792 INFO L273 TraceCheckUtils]: 1: Hoare triple {6131#(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]; {6132#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (or (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (and (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} is VALID [2019-01-18 14:29:34,793 INFO L273 TraceCheckUtils]: 2: Hoare triple {6132#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (or (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (and (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {6133#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (or (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) 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-18 14:29:34,794 INFO L273 TraceCheckUtils]: 3: Hoare triple {6133#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (or (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) 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]; {6134#(or (<= 1 (select |#memory_int| ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-01-18 14:29:34,795 INFO L273 TraceCheckUtils]: 4: Hoare triple {6134#(or (<= 1 (select |#memory_int| ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} assume !(#memory_int[main_p1] >= 0); {6130#false} is VALID [2019-01-18 14:29:34,795 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-18 14:29:34,796 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:29:34,796 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:29:34,796 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-18 14:29:34,796 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [18], [23] [2019-01-18 14:29:34,797 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:29:34,798 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:29:34,805 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:29:34,805 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 2. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-18 14:29:34,805 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:29:34,805 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:29:34,805 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:29:34,805 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-18 14:29:34,815 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:29:34,815 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:29:34,819 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:29:34,823 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:29:34,823 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:29:34,861 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:34,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, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 40 [2019-01-18 14:29:34,903 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:34,904 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:34,905 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 42 [2019-01-18 14:29:34,953 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:34,954 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:34,955 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:34,956 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:34,957 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 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 21 treesize of output 25 [2019-01-18 14:29:34,959 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:34,970 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:34,981 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:34,999 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 3 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-18 14:29:35,007 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 5 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-18 14:29:35,017 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 6 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-18 14:29:35,030 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-18 14:29:35,047 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-18 14:29:35,051 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:35,068 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:35,084 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:35,096 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:35,107 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:35,130 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 2 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-18 14:29:35,130 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 3 variables, input treesize:52, output treesize:50 [2019-01-18 14:29:35,138 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:29:35,138 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_121|, ULTIMATE.start_main_p5, |v_#valid_27|]. (let ((.cse1 (store |v_#valid_27| ULTIMATE.start_main_p1 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p2 1))) (and (= 0 (select .cse0 ULTIMATE.start_main_p3)) (= 0 (select .cse1 ULTIMATE.start_main_p2)) (= (store (store (store (store (store |v_#memory_int_121| 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|) (= 0 (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4))))) [2019-01-18 14:29:35,138 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p5]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:29:35,236 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:35,236 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-18 14:29:35,239 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:35,281 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-18 14:29:35,282 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:55, output treesize:33 [2019-01-18 14:29:35,306 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:29:35,306 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_122|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_122| ULTIMATE.start_main_p4))) (and (= (store |v_#memory_int_122| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_122| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 .cse0) (= (select |v_#memory_int_122| ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_122| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-01-18 14:29:35,306 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-18 14:29:35,356 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:35,357 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:35,358 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:35,359 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:35,360 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:35,361 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:35,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, 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-18 14:29:35,364 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:35,390 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-18 14:29:35,390 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:45, output treesize:27 [2019-01-18 14:29:35,405 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:29:35,405 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_123|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_123| ULTIMATE.start_main_p3))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (+ (select |v_#memory_int_123| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |v_#memory_int_123| ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (store |v_#memory_int_123| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= (select |v_#memory_int_123| ULTIMATE.start_main_p1) 0) (= 0 .cse0))) [2019-01-18 14:29:35,405 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2))) [2019-01-18 14:29:35,444 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:35,445 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:35,446 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:35,447 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:35,448 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:35,449 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:35,450 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:35,451 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:29:35,452 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:35,452 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 76 [2019-01-18 14:29:35,455 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:35,481 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-18 14:29:35,481 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:37, output treesize:25 [2019-01-18 14:29:35,493 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:29:35,493 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_124|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_124| ULTIMATE.start_main_p2))) (and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 1 (select |v_#memory_int_124| ULTIMATE.start_main_p3)) (= (store |v_#memory_int_124| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= 0 .cse0) (= 0 (+ (select |v_#memory_int_124| ULTIMATE.start_main_p4) 1)) (= 0 (select |v_#memory_int_124| ULTIMATE.start_main_p1)))) [2019-01-18 14:29:35,494 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (and (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) [2019-01-18 14:29:35,518 INFO L273 TraceCheckUtils]: 0: Hoare triple {6129#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;#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]; {6138#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:29:35,519 INFO L273 TraceCheckUtils]: 1: Hoare triple {6138#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {6142#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:29:35,521 INFO L273 TraceCheckUtils]: 2: Hoare triple {6142#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {6146#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:29:35,523 INFO L273 TraceCheckUtils]: 3: Hoare triple {6146#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {6150#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int)) (and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)))} is VALID [2019-01-18 14:29:35,524 INFO L273 TraceCheckUtils]: 4: Hoare triple {6150#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int)) (and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)))} assume !(#memory_int[main_p1] >= 0); {6130#false} is VALID [2019-01-18 14:29:35,524 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-18 14:29:35,524 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:29:35,608 INFO L273 TraceCheckUtils]: 4: Hoare triple {6134#(or (<= 1 (select |#memory_int| ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} assume !(#memory_int[main_p1] >= 0); {6130#false} is VALID [2019-01-18 14:29:35,609 INFO L273 TraceCheckUtils]: 3: Hoare triple {6157#(or (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) 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]; {6134#(or (<= 1 (select |#memory_int| ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-01-18 14:29:35,611 INFO L273 TraceCheckUtils]: 2: Hoare triple {6161#(or (= (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) 0) (<= 1 (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]; {6157#(or (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) 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-18 14:29:35,613 INFO L273 TraceCheckUtils]: 1: Hoare triple {6165#(or (<= 1 (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)) (= (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) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {6161#(or (= (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) 0) (<= 1 (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-18 14:29:35,615 INFO L273 TraceCheckUtils]: 0: Hoare triple {6129#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;#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]; {6165#(or (<= 1 (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)) (= (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) 0))} is VALID [2019-01-18 14:29:35,616 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-18 14:29:35,635 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:29:35,635 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-18 14:29:35,636 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:29:35,636 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-18 14:29:35,636 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:29:35,636 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-18 14:29:35,650 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-18 14:29:35,650 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-18 14:29:35,651 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-18 14:29:35,651 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=54, Invalid=102, Unknown=0, NotChecked=0, Total=156 [2019-01-18 14:29:35,651 INFO L87 Difference]: Start difference. First operand 61 states and 273 transitions. Second operand 10 states. [2019-01-18 14:29:37,447 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:29:37,447 INFO L93 Difference]: Finished difference Result 113 states and 415 transitions. [2019-01-18 14:29:37,447 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-18 14:29:37,447 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-18 14:29:37,447 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:29:37,447 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:29:37,448 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 79 transitions. [2019-01-18 14:29:37,448 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:29:37,448 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 79 transitions. [2019-01-18 14:29:37,448 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 79 transitions. [2019-01-18 14:29:37,564 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-18 14:29:37,567 INFO L225 Difference]: With dead ends: 113 [2019-01-18 14:29:37,568 INFO L226 Difference]: Without dead ends: 112 [2019-01-18 14:29:37,568 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 15 GetRequests, 0 SyntacticMatches, 1 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 55 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=84, Invalid=156, Unknown=0, NotChecked=0, Total=240 [2019-01-18 14:29:37,568 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 112 states. [2019-01-18 14:29:38,130 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 112 to 60. [2019-01-18 14:29:38,130 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:29:38,131 INFO L82 GeneralOperation]: Start isEquivalent. First operand 112 states. Second operand 60 states. [2019-01-18 14:29:38,131 INFO L74 IsIncluded]: Start isIncluded. First operand 112 states. Second operand 60 states. [2019-01-18 14:29:38,131 INFO L87 Difference]: Start difference. First operand 112 states. Second operand 60 states. [2019-01-18 14:29:38,134 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:29:38,134 INFO L93 Difference]: Finished difference Result 112 states and 410 transitions. [2019-01-18 14:29:38,134 INFO L276 IsEmpty]: Start isEmpty. Operand 112 states and 410 transitions. [2019-01-18 14:29:38,135 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:29:38,135 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:29:38,135 INFO L74 IsIncluded]: Start isIncluded. First operand 60 states. Second operand 112 states. [2019-01-18 14:29:38,135 INFO L87 Difference]: Start difference. First operand 60 states. Second operand 112 states. [2019-01-18 14:29:38,138 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:29:38,138 INFO L93 Difference]: Finished difference Result 112 states and 410 transitions. [2019-01-18 14:29:38,138 INFO L276 IsEmpty]: Start isEmpty. Operand 112 states and 410 transitions. [2019-01-18 14:29:38,138 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:29:38,138 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:29:38,138 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:29:38,138 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:29:38,138 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 60 states. [2019-01-18 14:29:38,140 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 60 states to 60 states and 267 transitions. [2019-01-18 14:29:38,140 INFO L78 Accepts]: Start accepts. Automaton has 60 states and 267 transitions. Word has length 5 [2019-01-18 14:29:38,140 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:29:38,140 INFO L480 AbstractCegarLoop]: Abstraction has 60 states and 267 transitions. [2019-01-18 14:29:38,140 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-18 14:29:38,140 INFO L276 IsEmpty]: Start isEmpty. Operand 60 states and 267 transitions. [2019-01-18 14:29:38,140 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-18 14:29:38,140 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:29:38,140 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-18 14:29:38,141 INFO L423 AbstractCegarLoop]: === Iteration 25 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:29:38,141 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:29:38,141 INFO L82 PathProgramCache]: Analyzing trace with hash 29242478, now seen corresponding path program 1 times [2019-01-18 14:29:38,141 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:29:38,141 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:29:38,142 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:29:38,142 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:29:38,142 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:29:38,146 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:29:38,487 WARN L181 SmtUtils]: Spent 123.00 ms on a formula simplification. DAG size of input: 24 DAG size of output: 13 [2019-01-18 14:29:38,541 INFO L273 TraceCheckUtils]: 0: Hoare triple {6672#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;#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]; {6674#(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-18 14:29:38,542 INFO L273 TraceCheckUtils]: 1: Hoare triple {6674#(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]; {6675#(and (or (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))) (or (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))))} is VALID [2019-01-18 14:29:38,543 INFO L273 TraceCheckUtils]: 2: Hoare triple {6675#(and (or (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))) (or (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {6676#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} is VALID [2019-01-18 14:29:38,544 INFO L273 TraceCheckUtils]: 3: Hoare triple {6676#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {6677#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:29:38,544 INFO L273 TraceCheckUtils]: 4: Hoare triple {6677#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {6673#false} is VALID [2019-01-18 14:29:38,545 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-18 14:29:38,545 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:29:38,545 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:29:38,545 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-18 14:29:38,546 INFO L207 CegarAbsIntRunner]: [0], [6], [18], [20], [23] [2019-01-18 14:29:38,548 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:29:38,548 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:29:38,589 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:29:38,589 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 2. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-18 14:29:38,589 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:29:38,589 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:29:38,589 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:29:38,589 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-18 14:29:38,598 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:29:38,598 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:29:38,602 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:29:38,606 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:29:38,606 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:29:38,714 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 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 18 treesize of output 21 [2019-01-18 14:29:38,720 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-18 14:29:38,727 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:38,728 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:38,729 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-18 14:29:38,740 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:38,741 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:38,743 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:38,744 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-18 14:29:38,762 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-18 14:29:38,765 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:38,786 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:38,802 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:38,815 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:38,827 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:38,852 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:38,853 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 40 [2019-01-18 14:29:38,907 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:38,909 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:38,909 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 42 [2019-01-18 14:29:38,956 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:38,958 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:38,959 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:38,960 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:38,960 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 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 21 treesize of output 25 [2019-01-18 14:29:38,962 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:38,973 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:38,983 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:39,012 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-18 14:29:39,012 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 4 variables, input treesize:52, output treesize:50 [2019-01-18 14:29:39,022 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:29:39,022 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_128|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, |v_#valid_28|]. (let ((.cse1 (store |v_#valid_28| ULTIMATE.start_main_p1 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p2 1))) (and (= 0 (select .cse0 ULTIMATE.start_main_p3)) (= (store (store (store (store (store |v_#memory_int_128| 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|) (= 0 (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4)) (= 0 (select .cse1 ULTIMATE.start_main_p2))))) [2019-01-18 14:29:39,023 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:29:39,099 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:39,147 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 7 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 8 case distinctions, treesize of input 36 treesize of output 66 [2019-01-18 14:29:39,154 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 16 xjuncts. [2019-01-18 14:29:39,344 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 11 dim-0 vars, and 5 xjuncts. [2019-01-18 14:29:39,345 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:60, output treesize:199 [2019-01-18 14:29:41,869 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:29:41,870 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_129|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_129| ULTIMATE.start_main_p5))) (and (= (select |v_#memory_int_129| ULTIMATE.start_main_p1) 0) (= |#memory_int| (store |v_#memory_int_129| ULTIMATE.start_main_p5 (+ .cse0 1))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_129| ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 .cse0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |v_#memory_int_129| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_129| ULTIMATE.start_main_p4) 0))) [2019-01-18 14:29:41,870 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5, v_prenex_48, v_prenex_47, v_prenex_46, v_prenex_45, v_prenex_44, v_prenex_43, v_prenex_41, v_prenex_42]. (let ((.cse4 (select |#memory_int| ULTIMATE.start_main_p4)) (.cse3 (select |#memory_int| ULTIMATE.start_main_p1))) (let ((.cse0 (= .cse3 0)) (.cse2 (= .cse4 0)) (.cse1 (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (or (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) .cse0 (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) .cse1 .cse2) (and (not (= v_prenex_48 ULTIMATE.start_main_p4)) (= .cse3 1) (not (= v_prenex_48 v_prenex_47)) (not (= v_prenex_47 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| v_prenex_47)) (not (= v_prenex_48 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_48) 0) .cse1 .cse2) (and (not (= v_prenex_46 v_prenex_45)) .cse0 (= .cse4 1) (not (= v_prenex_45 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| v_prenex_45)) (not (= v_prenex_46 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_46) 0) .cse1) (and (not (= v_prenex_44 ULTIMATE.start_main_p4)) (= 1 (select |#memory_int| v_prenex_43)) .cse0 (not (= v_prenex_44 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_44) 0) .cse2 .cse1) (and .cse0 (not (= v_prenex_41 ULTIMATE.start_main_p1)) (not (= v_prenex_41 ULTIMATE.start_main_p4)) (= (select |#memory_int| v_prenex_42) 1) (= 0 (select |#memory_int| v_prenex_41)) (not (= v_prenex_42 ULTIMATE.start_main_p1)) .cse2 .cse1)))) [2019-01-18 14:29:42,063 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:42,064 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:42,064 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:42,066 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:42,067 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:42,068 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 47 treesize of output 65 [2019-01-18 14:29:42,071 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:42,161 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:42,162 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:42,163 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:42,164 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:42,166 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:42,166 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:29:42,167 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 43 treesize of output 51 [2019-01-18 14:29:42,170 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:42,230 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:42,231 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:42,232 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:42,233 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:42,234 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:42,235 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:42,236 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 43 treesize of output 73 [2019-01-18 14:29:42,239 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:42,308 INFO L267 ElimStorePlain]: Start of recursive call 1: 9 dim-0 vars, 3 dim-1 vars, End of recursive call: 9 dim-0 vars, and 3 xjuncts. [2019-01-18 14:29:42,308 INFO L202 ElimStorePlain]: Needed 4 recursive calls to eliminate 12 variables, input treesize:138, output treesize:96 [2019-01-18 14:29:44,477 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:29:44,477 WARN L385 uantifierElimination]: Input elimination task: ∃ [v_prenex_50, v_prenex_49, v_prenex_41, v_prenex_42, v_prenex_52, v_prenex_51, v_prenex_48, v_prenex_47, |v_#memory_int_130|, ULTIMATE.start_main_p4, v_prenex_46, v_prenex_45]. (or (let ((.cse0 (select v_prenex_50 v_prenex_49))) (and (= 0 .cse0) (not (= v_prenex_41 ULTIMATE.start_main_p1)) (not (= v_prenex_41 v_prenex_49)) (not (= ULTIMATE.start_main_p1 v_prenex_49)) (= 1 (select v_prenex_50 v_prenex_42)) (= 0 (select v_prenex_50 v_prenex_41)) (= 0 (select v_prenex_50 ULTIMATE.start_main_p1)) (not (= v_prenex_42 ULTIMATE.start_main_p1)) (= |#memory_int| (store v_prenex_50 v_prenex_49 (+ .cse0 (- 1)))))) (let ((.cse1 (select v_prenex_52 v_prenex_51))) (and (= (select v_prenex_52 v_prenex_48) 0) (not (= v_prenex_48 v_prenex_51)) (not (= v_prenex_48 ULTIMATE.start_main_p1)) (= 0 .cse1) (not (= v_prenex_47 v_prenex_51)) (not (= v_prenex_48 v_prenex_47)) (= 0 (select v_prenex_52 v_prenex_47)) (= 1 (select v_prenex_52 ULTIMATE.start_main_p1)) (= |#memory_int| (store v_prenex_52 v_prenex_51 (+ .cse1 (- 1)))))) (let ((.cse2 (select |v_#memory_int_130| ULTIMATE.start_main_p4))) (and (= |#memory_int| (store |v_#memory_int_130| ULTIMATE.start_main_p4 (+ .cse2 (- 1)))) (= 0 (select |v_#memory_int_130| ULTIMATE.start_main_p1)) (not (= v_prenex_46 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_130| v_prenex_45)) (not (= v_prenex_45 ULTIMATE.start_main_p1)) (= 1 .cse2) (not (= v_prenex_46 v_prenex_45)) (= 0 (select |v_#memory_int_130| v_prenex_46))))) [2019-01-18 14:29:44,478 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [v_prenex_42, v_prenex_41, v_prenex_49, v_prenex_45, ULTIMATE.start_main_p4, v_prenex_46, v_prenex_51, v_prenex_48, v_prenex_47]. (let ((.cse1 (select |#memory_int| ULTIMATE.start_main_p1))) (let ((.cse0 (= .cse1 0))) (or (and (= (select |#memory_int| v_prenex_42) 1) (not (= v_prenex_41 ULTIMATE.start_main_p1)) .cse0 (= 0 (select |#memory_int| v_prenex_41)) (= (- 1) (select |#memory_int| v_prenex_49))) (and (not (= v_prenex_45 ULTIMATE.start_main_p4)) (not (= v_prenex_46 ULTIMATE.start_main_p4)) .cse0 (= 0 (select |#memory_int| v_prenex_45)) (= (select |#memory_int| v_prenex_46) 0) (not (= v_prenex_46 ULTIMATE.start_main_p1)) (not (= v_prenex_45 ULTIMATE.start_main_p1)) (not (= v_prenex_46 v_prenex_45)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) (and (= (select |#memory_int| v_prenex_51) (- 1)) (= .cse1 1) (= 0 (select |#memory_int| v_prenex_48)) (not (= v_prenex_48 v_prenex_47)) (= 0 (select |#memory_int| v_prenex_47)))))) [2019-01-18 14:29:44,670 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:44,671 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:44,672 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:44,673 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:44,674 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:44,675 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:44,676 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:44,677 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:44,678 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:44,679 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:44,680 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:29:44,681 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 37 treesize of output 83 [2019-01-18 14:29:44,683 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:44,769 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:44,769 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 55 treesize of output 51 [2019-01-18 14:29:44,772 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:44,829 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:44,831 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:44,832 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:44,833 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:44,834 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:44,835 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:44,836 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:44,837 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:44,838 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:44,839 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:44,840 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:44,841 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 12 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 37 treesize of output 79 [2019-01-18 14:29:44,843 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:44,906 INFO L267 ElimStorePlain]: Start of recursive call 1: 9 dim-0 vars, 3 dim-1 vars, End of recursive call: 9 dim-0 vars, and 3 xjuncts. [2019-01-18 14:29:44,906 INFO L202 ElimStorePlain]: Needed 4 recursive calls to eliminate 12 variables, input treesize:130, output treesize:88 [2019-01-18 14:29:47,090 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:29:47,090 WARN L385 uantifierElimination]: Input elimination task: ∃ [v_prenex_54, v_prenex_51, v_prenex_48, v_prenex_47, v_prenex_53, v_prenex_45, ULTIMATE.start_main_p4, v_prenex_46, |v_#memory_int_131|, v_prenex_41, v_prenex_49, v_prenex_42]. (or (let ((.cse0 (select v_prenex_54 ULTIMATE.start_main_p1))) (and (= .cse0 1) (= (store v_prenex_54 ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= 0 (+ (select v_prenex_54 v_prenex_51) 1)) (not (= v_prenex_48 v_prenex_47)) (= 0 (select v_prenex_54 v_prenex_47)) (= 0 (select v_prenex_54 v_prenex_48)))) (let ((.cse1 (select v_prenex_53 ULTIMATE.start_main_p1))) (and (= 0 (select v_prenex_53 v_prenex_45)) (not (= v_prenex_45 ULTIMATE.start_main_p4)) (= (store v_prenex_53 ULTIMATE.start_main_p1 (+ .cse1 1)) |#memory_int|) (not (= v_prenex_46 ULTIMATE.start_main_p4)) (= 0 (select v_prenex_53 v_prenex_46)) (not (= v_prenex_46 ULTIMATE.start_main_p1)) (not (= v_prenex_45 ULTIMATE.start_main_p1)) (= .cse1 0) (not (= v_prenex_46 v_prenex_45)) (= 0 (select v_prenex_53 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (let ((.cse2 (select |v_#memory_int_131| ULTIMATE.start_main_p1))) (and (not (= v_prenex_41 ULTIMATE.start_main_p1)) (= (+ (select |v_#memory_int_131| v_prenex_49) 1) 0) (= (select |v_#memory_int_131| v_prenex_42) 1) (= (store |v_#memory_int_131| ULTIMATE.start_main_p1 (+ .cse2 1)) |#memory_int|) (= (select |v_#memory_int_131| v_prenex_41) 0) (= .cse2 0)))) [2019-01-18 14:29:47,090 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [v_prenex_42, v_prenex_41, v_prenex_49, v_prenex_48, v_prenex_47, v_prenex_51, v_prenex_45, ULTIMATE.start_main_p4, v_prenex_46]. (let ((.cse1 (select |#memory_int| ULTIMATE.start_main_p1))) (let ((.cse0 (= .cse1 1))) (or (and (= (select |#memory_int| v_prenex_42) 1) .cse0 (= 0 (select |#memory_int| v_prenex_41)) (not (= v_prenex_42 ULTIMATE.start_main_p1)) (= (+ (select |#memory_int| v_prenex_49) 1) 0)) (and (= 0 (select |#memory_int| v_prenex_48)) (not (= v_prenex_48 v_prenex_47)) (= .cse1 2) (= (+ (select |#memory_int| v_prenex_51) 1) 0) (= 0 (select |#memory_int| v_prenex_47))) (and (not (= v_prenex_45 ULTIMATE.start_main_p4)) .cse0 (not (= v_prenex_46 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| v_prenex_45)) (= (select |#memory_int| v_prenex_46) 0) (not (= v_prenex_46 v_prenex_45)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))) [2019-01-18 14:29:47,198 INFO L273 TraceCheckUtils]: 0: Hoare triple {6672#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;#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]; {6681#(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 (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:29:47,200 INFO L273 TraceCheckUtils]: 1: Hoare triple {6681#(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 (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {6685#(or (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((v_prenex_48 Int) (v_prenex_47 Int)) (and (= (select |#memory_int| v_prenex_48) 0) (not (= v_prenex_48 ULTIMATE.start_main_p1)) (not (= v_prenex_48 ULTIMATE.start_main_p4)) (not (= v_prenex_48 v_prenex_47)) (= 0 (select |#memory_int| v_prenex_47)) (not (= v_prenex_47 ULTIMATE.start_main_p4)))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_42 Int)) (and (= (select |#memory_int| v_prenex_42) 1) (not (= v_prenex_42 ULTIMATE.start_main_p1)))) (exists ((v_prenex_41 Int)) (and (not (= v_prenex_41 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| v_prenex_41)) (not (= v_prenex_41 ULTIMATE.start_main_p4)))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))) (and (= (select |#memory_int| ULTIMATE.start_main_p4) 1) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_45 Int) (v_prenex_46 Int)) (and (= 0 (select |#memory_int| v_prenex_45)) (= (select |#memory_int| v_prenex_46) 0) (not (= v_prenex_46 ULTIMATE.start_main_p1)) (not (= v_prenex_45 ULTIMATE.start_main_p1)) (not (= v_prenex_46 v_prenex_45))))))} is VALID [2019-01-18 14:29:47,205 INFO L273 TraceCheckUtils]: 2: Hoare triple {6685#(or (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((v_prenex_48 Int) (v_prenex_47 Int)) (and (= (select |#memory_int| v_prenex_48) 0) (not (= v_prenex_48 ULTIMATE.start_main_p1)) (not (= v_prenex_48 ULTIMATE.start_main_p4)) (not (= v_prenex_48 v_prenex_47)) (= 0 (select |#memory_int| v_prenex_47)) (not (= v_prenex_47 ULTIMATE.start_main_p4)))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_42 Int)) (and (= (select |#memory_int| v_prenex_42) 1) (not (= v_prenex_42 ULTIMATE.start_main_p1)))) (exists ((v_prenex_41 Int)) (and (not (= v_prenex_41 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| v_prenex_41)) (not (= v_prenex_41 ULTIMATE.start_main_p4)))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))) (and (= (select |#memory_int| ULTIMATE.start_main_p4) 1) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_45 Int) (v_prenex_46 Int)) (and (= 0 (select |#memory_int| v_prenex_45)) (= (select |#memory_int| v_prenex_46) 0) (not (= v_prenex_46 ULTIMATE.start_main_p1)) (not (= v_prenex_45 ULTIMATE.start_main_p1)) (not (= v_prenex_46 v_prenex_45))))))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {6689#(or (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_41 Int)) (and (not (= v_prenex_41 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| v_prenex_41)))) (exists ((v_prenex_49 Int)) (= 0 (+ (select |#memory_int| v_prenex_49) 1))) (exists ((v_prenex_42 Int)) (= (select |#memory_int| v_prenex_42) 1))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((v_prenex_51 Int)) (= (+ (select |#memory_int| v_prenex_51) 1) 0)) (exists ((v_prenex_48 Int) (v_prenex_47 Int)) (and (= 0 (select |#memory_int| v_prenex_48)) (not (= v_prenex_48 v_prenex_47)) (= 0 (select |#memory_int| v_prenex_47))))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (v_prenex_45 Int) (v_prenex_46 Int)) (and (not (= v_prenex_45 ULTIMATE.start_main_p4)) (not (= v_prenex_46 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| v_prenex_45)) (= (select |#memory_int| v_prenex_46) 0) (not (= v_prenex_46 ULTIMATE.start_main_p1)) (not (= v_prenex_45 ULTIMATE.start_main_p1)) (not (= v_prenex_46 v_prenex_45)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))))))} is VALID [2019-01-18 14:29:47,213 INFO L273 TraceCheckUtils]: 3: Hoare triple {6689#(or (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_41 Int)) (and (not (= v_prenex_41 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| v_prenex_41)))) (exists ((v_prenex_49 Int)) (= 0 (+ (select |#memory_int| v_prenex_49) 1))) (exists ((v_prenex_42 Int)) (= (select |#memory_int| v_prenex_42) 1))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((v_prenex_51 Int)) (= (+ (select |#memory_int| v_prenex_51) 1) 0)) (exists ((v_prenex_48 Int) (v_prenex_47 Int)) (and (= 0 (select |#memory_int| v_prenex_48)) (not (= v_prenex_48 v_prenex_47)) (= 0 (select |#memory_int| v_prenex_47))))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (v_prenex_45 Int) (v_prenex_46 Int)) (and (not (= v_prenex_45 ULTIMATE.start_main_p4)) (not (= v_prenex_46 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| v_prenex_45)) (= (select |#memory_int| v_prenex_46) 0) (not (= v_prenex_46 ULTIMATE.start_main_p1)) (not (= v_prenex_45 ULTIMATE.start_main_p1)) (not (= v_prenex_46 v_prenex_45)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {6693#(or (and (exists ((v_prenex_51 Int)) (= (+ (select |#memory_int| v_prenex_51) 1) 0)) (exists ((v_prenex_48 Int) (v_prenex_47 Int)) (and (= 0 (select |#memory_int| v_prenex_48)) (not (= v_prenex_48 v_prenex_47)) (= 0 (select |#memory_int| v_prenex_47)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 2)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (v_prenex_45 Int) (v_prenex_46 Int)) (and (not (= v_prenex_45 ULTIMATE.start_main_p4)) (not (= v_prenex_46 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| v_prenex_45)) (= (select |#memory_int| v_prenex_46) 0) (not (= v_prenex_46 v_prenex_45)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)))) (and (exists ((v_prenex_49 Int)) (= (+ (select |#memory_int| v_prenex_49) 1) 0)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((v_prenex_42 Int)) (and (= (select |#memory_int| v_prenex_42) 1) (not (= v_prenex_42 ULTIMATE.start_main_p1)))) (exists ((v_prenex_41 Int)) (= 0 (select |#memory_int| v_prenex_41)))))} is VALID [2019-01-18 14:29:47,214 INFO L273 TraceCheckUtils]: 4: Hoare triple {6693#(or (and (exists ((v_prenex_51 Int)) (= (+ (select |#memory_int| v_prenex_51) 1) 0)) (exists ((v_prenex_48 Int) (v_prenex_47 Int)) (and (= 0 (select |#memory_int| v_prenex_48)) (not (= v_prenex_48 v_prenex_47)) (= 0 (select |#memory_int| v_prenex_47)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 2)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (v_prenex_45 Int) (v_prenex_46 Int)) (and (not (= v_prenex_45 ULTIMATE.start_main_p4)) (not (= v_prenex_46 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| v_prenex_45)) (= (select |#memory_int| v_prenex_46) 0) (not (= v_prenex_46 v_prenex_45)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)))) (and (exists ((v_prenex_49 Int)) (= (+ (select |#memory_int| v_prenex_49) 1) 0)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((v_prenex_42 Int)) (and (= (select |#memory_int| v_prenex_42) 1) (not (= v_prenex_42 ULTIMATE.start_main_p1)))) (exists ((v_prenex_41 Int)) (= 0 (select |#memory_int| v_prenex_41)))))} assume !(#memory_int[main_p1] >= 0); {6673#false} is VALID [2019-01-18 14:29:47,215 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-18 14:29:47,215 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:29:47,246 INFO L273 TraceCheckUtils]: 4: Hoare triple {6677#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {6673#false} is VALID [2019-01-18 14:29:47,247 INFO L273 TraceCheckUtils]: 3: Hoare triple {6676#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {6677#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:29:47,248 INFO L273 TraceCheckUtils]: 2: Hoare triple {6703#(<= 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]; {6676#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} is VALID [2019-01-18 14:29:47,249 INFO L273 TraceCheckUtils]: 1: Hoare triple {6707#(<= 0 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) 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))) ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {6703#(<= 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-18 14:29:47,251 INFO L273 TraceCheckUtils]: 0: Hoare triple {6672#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;#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]; {6707#(<= 0 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) 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))) ULTIMATE.start_main_p1) 1))} is VALID [2019-01-18 14:29:47,251 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-18 14:29:47,271 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:29:47,271 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 10 [2019-01-18 14:29:47,271 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:29:47,272 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-18 14:29:47,272 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:29:47,272 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-18 14:29:47,302 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-18 14:29:47,302 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-18 14:29:47,302 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-18 14:29:47,302 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=53, Invalid=79, Unknown=0, NotChecked=0, Total=132 [2019-01-18 14:29:47,302 INFO L87 Difference]: Start difference. First operand 60 states and 267 transitions. Second operand 10 states. [2019-01-18 14:29:50,576 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:29:50,576 INFO L93 Difference]: Finished difference Result 137 states and 516 transitions. [2019-01-18 14:29:50,576 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 11 states. [2019-01-18 14:29:50,576 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-18 14:29:50,576 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:29:50,576 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:29:50,577 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 107 transitions. [2019-01-18 14:29:50,577 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:29:50,577 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 11 states to 11 states and 107 transitions. [2019-01-18 14:29:50,577 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states and 107 transitions. [2019-01-18 14:29:50,820 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 107 edges. 107 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:29:50,823 INFO L225 Difference]: With dead ends: 137 [2019-01-18 14:29:50,824 INFO L226 Difference]: Without dead ends: 136 [2019-01-18 14:29:50,824 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 16 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 43 ImplicationChecksByTransitivity, 0.9s TimeCoverageRelationStatistics Valid=90, Invalid=150, Unknown=0, NotChecked=0, Total=240 [2019-01-18 14:29:50,824 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 136 states. [2019-01-18 14:29:51,941 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 136 to 93. [2019-01-18 14:29:51,942 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:29:51,942 INFO L82 GeneralOperation]: Start isEquivalent. First operand 136 states. Second operand 93 states. [2019-01-18 14:29:51,942 INFO L74 IsIncluded]: Start isIncluded. First operand 136 states. Second operand 93 states. [2019-01-18 14:29:51,942 INFO L87 Difference]: Start difference. First operand 136 states. Second operand 93 states. [2019-01-18 14:29:51,946 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:29:51,946 INFO L93 Difference]: Finished difference Result 136 states and 513 transitions. [2019-01-18 14:29:51,947 INFO L276 IsEmpty]: Start isEmpty. Operand 136 states and 513 transitions. [2019-01-18 14:29:51,947 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:29:51,947 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:29:51,947 INFO L74 IsIncluded]: Start isIncluded. First operand 93 states. Second operand 136 states. [2019-01-18 14:29:51,947 INFO L87 Difference]: Start difference. First operand 93 states. Second operand 136 states. [2019-01-18 14:29:51,951 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:29:51,951 INFO L93 Difference]: Finished difference Result 136 states and 513 transitions. [2019-01-18 14:29:51,951 INFO L276 IsEmpty]: Start isEmpty. Operand 136 states and 513 transitions. [2019-01-18 14:29:51,952 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:29:51,952 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:29:51,952 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:29:51,952 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:29:51,952 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 93 states. [2019-01-18 14:29:51,955 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 93 states to 93 states and 468 transitions. [2019-01-18 14:29:51,955 INFO L78 Accepts]: Start accepts. Automaton has 93 states and 468 transitions. Word has length 5 [2019-01-18 14:29:51,955 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:29:51,955 INFO L480 AbstractCegarLoop]: Abstraction has 93 states and 468 transitions. [2019-01-18 14:29:51,955 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-18 14:29:51,955 INFO L276 IsEmpty]: Start isEmpty. Operand 93 states and 468 transitions. [2019-01-18 14:29:51,956 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-18 14:29:51,956 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:29:51,956 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-18 14:29:51,956 INFO L423 AbstractCegarLoop]: === Iteration 26 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:29:51,956 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:29:51,956 INFO L82 PathProgramCache]: Analyzing trace with hash 29231506, now seen corresponding path program 1 times [2019-01-18 14:29:51,957 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:29:51,957 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:29:51,957 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:29:51,957 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:29:51,958 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:29:51,961 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:29:52,103 INFO L273 TraceCheckUtils]: 0: Hoare triple {7370#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;#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]; {7372#(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-18 14:29:52,104 INFO L273 TraceCheckUtils]: 1: Hoare triple {7372#(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]; {7373#(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-18 14:29:52,105 INFO L273 TraceCheckUtils]: 2: Hoare triple {7373#(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]; {7373#(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-18 14:29:52,105 INFO L273 TraceCheckUtils]: 3: Hoare triple {7373#(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; {7374#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:29:52,106 INFO L273 TraceCheckUtils]: 4: Hoare triple {7374#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {7371#false} is VALID [2019-01-18 14:29:52,106 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-18 14:29:52,107 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:29:52,107 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:29:52,107 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-18 14:29:52,107 INFO L207 CegarAbsIntRunner]: [0], [6], [20], [24], [25] [2019-01-18 14:29:52,108 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:29:52,108 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:29:52,149 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:29:52,149 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 2. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:29:52,149 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:29:52,149 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:29:52,149 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:29:52,149 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-18 14:29:52,157 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:29:52,158 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:29:52,161 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:29:52,166 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:29:52,167 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:29:52,211 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:52,211 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 48 treesize of output 54 [2019-01-18 14:29:52,260 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:52,261 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:52,262 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 41 treesize of output 53 [2019-01-18 14:29:52,319 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:52,320 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:52,321 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:52,322 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:52,323 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 32 treesize of output 61 [2019-01-18 14:29:52,391 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:52,392 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:52,393 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:52,394 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:52,395 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:52,396 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:52,397 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 5 select indices, 5 select index equivalence classes, 11 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 41 [2019-01-18 14:29:52,402 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:52,419 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:52,436 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:52,453 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:52,480 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 4 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-18 14:29:52,488 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 7 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-18 14:29:52,500 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 9 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-18 14:29:52,514 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 10 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-18 14:29:52,531 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-18 14:29:52,535 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:52,560 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:52,575 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:52,587 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:52,598 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:29:52,636 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-18 14:29:52,637 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 4 variables, input treesize:69, output treesize:66 [2019-01-18 14:29:52,646 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:29:52,647 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_135|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, |v_#valid_29|]. (let ((.cse1 (store |v_#valid_29| ULTIMATE.start_main_p1 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p2 1))) (let ((.cse2 (store .cse0 ULTIMATE.start_main_p3 1))) (and (= (select .cse0 ULTIMATE.start_main_p3) 0) (= (store (store (store (store (store |v_#memory_int_135| 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|) (= (select .cse1 ULTIMATE.start_main_p2) 0) (= (select (store .cse2 ULTIMATE.start_main_p4 1) ULTIMATE.start_main_p5) 0) (= 0 (select .cse2 ULTIMATE.start_main_p4)))))) [2019-01-18 14:29:52,647 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (and (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:29:52,735 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:52,736 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-18 14:29:52,740 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:52,798 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-18 14:29:52,799 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:76, output treesize:50 [2019-01-18 14:29:53,958 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:29:53,958 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_136|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_136| ULTIMATE.start_main_p5))) (and (= (select |v_#memory_int_136| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_136| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_136| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= |#memory_int| (store |v_#memory_int_136| ULTIMATE.start_main_p5 (+ .cse0 1))) (= .cse0 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_136| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))) [2019-01-18 14:29:53,959 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:29:54,031 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:54,033 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:54,034 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:54,035 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:54,036 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:54,037 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:29:54,038 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:29:54,039 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-18 14:29:54,043 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:29:54,081 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-18 14:29:54,081 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:60, output treesize:42 [2019-01-18 14:29:56,174 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:29:56,174 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_137|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_137| ULTIMATE.start_main_p1))) (and (= 1 (select |v_#memory_int_137| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= .cse0 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_137| ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= |#memory_int| (store |v_#memory_int_137| ULTIMATE.start_main_p1 (+ .cse0 1))) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_137| ULTIMATE.start_main_p3) 0) (= 0 (select |v_#memory_int_137| ULTIMATE.start_main_p4)))) [2019-01-18 14:29:56,174 WARN L386 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) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 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) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:29:56,256 INFO L273 TraceCheckUtils]: 0: Hoare triple {7370#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;#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]; {7378#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:29:56,259 INFO L273 TraceCheckUtils]: 1: Hoare triple {7378#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {7382#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-18 14:29:56,260 INFO L273 TraceCheckUtils]: 2: Hoare triple {7382#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {7386#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 1 (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 (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-18 14:29:56,261 INFO L273 TraceCheckUtils]: 3: Hoare triple {7386#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 1 (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 (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p1] >= 0; {7386#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 1 (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 (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-18 14:29:56,261 INFO L273 TraceCheckUtils]: 4: Hoare triple {7386#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 1 (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 (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume !(#memory_int[main_p2] <= 0); {7371#false} is VALID [2019-01-18 14:29:56,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-18 14:29:56,262 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:29:56,324 INFO L273 TraceCheckUtils]: 4: Hoare triple {7393#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {7371#false} is VALID [2019-01-18 14:29:56,325 INFO L273 TraceCheckUtils]: 3: Hoare triple {7393#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {7393#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:29:56,326 INFO L273 TraceCheckUtils]: 2: Hoare triple {7400#(<= (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]; {7393#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:29:56,327 INFO L273 TraceCheckUtils]: 1: Hoare triple {7404#(<= (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]; {7400#(<= (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-18 14:29:56,329 INFO L273 TraceCheckUtils]: 0: Hoare triple {7370#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;#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]; {7404#(<= (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-18 14:29:56,329 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-18 14:29:56,348 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:29:56,348 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-18 14:29:56,348 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:29:56,348 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-18 14:29:56,349 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:29:56,349 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-18 14:29:56,362 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-18 14:29:56,362 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-18 14:29:56,363 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-18 14:29:56,363 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=43, Invalid=67, Unknown=0, NotChecked=0, Total=110 [2019-01-18 14:29:56,363 INFO L87 Difference]: Start difference. First operand 93 states and 468 transitions. Second operand 8 states. [2019-01-18 14:29:58,255 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:29:58,256 INFO L93 Difference]: Finished difference Result 120 states and 513 transitions. [2019-01-18 14:29:58,256 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-18 14:29:58,256 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-18 14:29:58,256 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:29:58,256 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:29:58,256 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 58 transitions. [2019-01-18 14:29:58,256 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:29:58,257 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 58 transitions. [2019-01-18 14:29:58,257 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 58 transitions. [2019-01-18 14:29:58,344 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-18 14:29:58,346 INFO L225 Difference]: With dead ends: 120 [2019-01-18 14:29:58,346 INFO L226 Difference]: Without dead ends: 119 [2019-01-18 14:29:58,347 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 2 SyntacticMatches, 1 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=61, Invalid=95, Unknown=0, NotChecked=0, Total=156 [2019-01-18 14:29:58,347 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 119 states. [2019-01-18 14:29:59,510 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 119 to 96. [2019-01-18 14:29:59,510 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:29:59,511 INFO L82 GeneralOperation]: Start isEquivalent. First operand 119 states. Second operand 96 states. [2019-01-18 14:29:59,511 INFO L74 IsIncluded]: Start isIncluded. First operand 119 states. Second operand 96 states. [2019-01-18 14:29:59,511 INFO L87 Difference]: Start difference. First operand 119 states. Second operand 96 states. [2019-01-18 14:29:59,514 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:29:59,514 INFO L93 Difference]: Finished difference Result 119 states and 511 transitions. [2019-01-18 14:29:59,514 INFO L276 IsEmpty]: Start isEmpty. Operand 119 states and 511 transitions. [2019-01-18 14:29:59,515 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:29:59,515 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:29:59,515 INFO L74 IsIncluded]: Start isIncluded. First operand 96 states. Second operand 119 states. [2019-01-18 14:29:59,515 INFO L87 Difference]: Start difference. First operand 96 states. Second operand 119 states. [2019-01-18 14:29:59,517 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:29:59,518 INFO L93 Difference]: Finished difference Result 119 states and 511 transitions. [2019-01-18 14:29:59,518 INFO L276 IsEmpty]: Start isEmpty. Operand 119 states and 511 transitions. [2019-01-18 14:29:59,518 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:29:59,518 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:29:59,518 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:29:59,518 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:29:59,518 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 96 states. [2019-01-18 14:29:59,521 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 96 states to 96 states and 486 transitions. [2019-01-18 14:29:59,521 INFO L78 Accepts]: Start accepts. Automaton has 96 states and 486 transitions. Word has length 5 [2019-01-18 14:29:59,521 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:29:59,521 INFO L480 AbstractCegarLoop]: Abstraction has 96 states and 486 transitions. [2019-01-18 14:29:59,521 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-18 14:29:59,521 INFO L276 IsEmpty]: Start isEmpty. Operand 96 states and 486 transitions. [2019-01-18 14:29:59,521 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-18 14:29:59,521 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:29:59,521 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-18 14:29:59,522 INFO L423 AbstractCegarLoop]: === Iteration 27 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:29:59,522 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:29:59,522 INFO L82 PathProgramCache]: Analyzing trace with hash 29248868, now seen corresponding path program 1 times [2019-01-18 14:29:59,522 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:29:59,523 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:29:59,523 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:29:59,523 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:29:59,523 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:29:59,525 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:29:59,913 WARN L181 SmtUtils]: Spent 201.00 ms on a formula simplification that was a NOOP. DAG size: 16 [2019-01-18 14:30:00,124 INFO L273 TraceCheckUtils]: 0: Hoare triple {8020#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;#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]; {8022#(and (or (= 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))) (or (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p5) 0)))} is VALID [2019-01-18 14:30:00,126 INFO L273 TraceCheckUtils]: 1: Hoare triple {8022#(and (or (= 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))) (or (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p5) 0)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {8023#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:30:00,126 INFO L273 TraceCheckUtils]: 2: Hoare triple {8023#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {8023#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:30:00,127 INFO L273 TraceCheckUtils]: 3: Hoare triple {8023#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {8023#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:30:00,127 INFO L273 TraceCheckUtils]: 4: Hoare triple {8023#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {8021#false} is VALID [2019-01-18 14:30:00,128 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-18 14:30:00,128 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:30:00,128 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:30:00,128 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-18 14:30:00,129 INFO L207 CegarAbsIntRunner]: [0], [20], [24], [26], [27] [2019-01-18 14:30:00,130 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:30:00,130 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:30:00,141 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:30:00,142 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 2. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-18 14:30:00,142 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:30:00,142 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:30:00,142 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:30:00,142 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-18 14:30:00,151 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:30:00,151 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:30:00,155 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:30:00,159 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:30:00,160 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:30:00,174 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-18 14:30:00,181 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-18 14:30:00,188 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:00,190 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:00,190 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 33 [2019-01-18 14:30:00,200 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:00,202 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:00,203 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:00,204 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 5 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 47 [2019-01-18 14:30:00,216 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:00,219 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:00,220 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:00,221 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:00,222 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 27 treesize of output 62 [2019-01-18 14:30:00,225 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:00,252 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:00,267 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:00,279 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:00,290 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:00,311 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 43 treesize of output 39 [2019-01-18 14:30:00,336 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:00,338 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:00,339 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 36 treesize of output 49 [2019-01-18 14:30:00,386 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:00,387 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:00,389 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:00,391 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:00,391 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 32 treesize of output 57 [2019-01-18 14:30:00,454 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:00,455 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:00,456 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:00,456 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:00,458 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:00,460 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:00,460 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 5 select indices, 5 select index equivalence classes, 10 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 37 [2019-01-18 14:30:00,464 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:00,479 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:00,494 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:00,511 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:00,547 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 2 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-18 14:30:00,548 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 5 variables, input treesize:61, output treesize:62 [2019-01-18 14:30:00,563 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:30:00,563 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_140|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4, |v_#valid_30|]. (let ((.cse1 (store (store |v_#valid_30| ULTIMATE.start_main_p1 1) ULTIMATE.start_main_p2 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p3 1))) (and (= (select .cse0 ULTIMATE.start_main_p4) 0) (= 0 (select .cse1 ULTIMATE.start_main_p3)) (= (select (store .cse0 ULTIMATE.start_main_p4 1) ULTIMATE.start_main_p5) 0) (= (store (store (store (store (store |v_#memory_int_140| 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-18 14:30:00,563 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2, ULTIMATE.start_main_p1]. (and (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:30:00,753 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:00,754 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 10 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 68 [2019-01-18 14:30:00,757 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:00,791 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-18 14:30:00,792 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:72, output treesize:46 [2019-01-18 14:30:00,813 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:30:00,814 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_141|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_141| ULTIMATE.start_main_p5))) (and (= (select |v_#memory_int_141| ULTIMATE.start_main_p4) 0) (= |#memory_int| (store |v_#memory_int_141| ULTIMATE.start_main_p5 (+ .cse0 1))) (= 0 (select |v_#memory_int_141| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_141| ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_141| ULTIMATE.start_main_p3)) (= .cse0 0))) [2019-01-18 14:30:00,814 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:30:00,888 INFO L273 TraceCheckUtils]: 0: Hoare triple {8020#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;#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]; {8027#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-18 14:30:00,891 INFO L273 TraceCheckUtils]: 1: Hoare triple {8027#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {8031#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:30:00,892 INFO L273 TraceCheckUtils]: 2: Hoare triple {8031#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p1] >= 0; {8031#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:30:00,893 INFO L273 TraceCheckUtils]: 3: Hoare triple {8031#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p2] <= 0; {8031#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:30:00,894 INFO L273 TraceCheckUtils]: 4: Hoare triple {8031#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume !(#memory_int[main_p3] >= 0); {8021#false} is VALID [2019-01-18 14:30:00,894 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-18 14:30:00,894 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:30:00,909 INFO L273 TraceCheckUtils]: 4: Hoare triple {8023#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {8021#false} is VALID [2019-01-18 14:30:00,910 INFO L273 TraceCheckUtils]: 3: Hoare triple {8023#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {8023#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:30:00,910 INFO L273 TraceCheckUtils]: 2: Hoare triple {8023#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {8023#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:30:00,911 INFO L273 TraceCheckUtils]: 1: Hoare triple {8050#(<= 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]; {8023#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:30:00,913 INFO L273 TraceCheckUtils]: 0: Hoare triple {8020#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;#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]; {8050#(<= 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-18 14:30:00,913 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-18 14:30:00,933 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-01-18 14:30:00,933 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [2, 2] total 5 [2019-01-18 14:30:00,933 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-18 14:30:00,933 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 5 [2019-01-18 14:30:00,933 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:30:00,933 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-01-18 14:30:00,939 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-18 14:30:00,939 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-01-18 14:30:00,939 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-01-18 14:30:00,939 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=20, Invalid=22, Unknown=0, NotChecked=0, Total=42 [2019-01-18 14:30:00,940 INFO L87 Difference]: Start difference. First operand 96 states and 486 transitions. Second operand 4 states. [2019-01-18 14:30:03,167 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:30:03,168 INFO L93 Difference]: Finished difference Result 105 states and 515 transitions. [2019-01-18 14:30:03,168 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-18 14:30:03,168 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 5 [2019-01-18 14:30:03,168 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:30:03,168 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-18 14:30:03,168 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 25 transitions. [2019-01-18 14:30:03,168 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-18 14:30:03,168 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 25 transitions. [2019-01-18 14:30:03,169 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 25 transitions. [2019-01-18 14:30:03,189 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-18 14:30:03,192 INFO L225 Difference]: With dead ends: 105 [2019-01-18 14:30:03,192 INFO L226 Difference]: Without dead ends: 104 [2019-01-18 14:30:03,193 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 10 GetRequests, 5 SyntacticMatches, 0 SemanticMatches, 5 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 8 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=20, Invalid=22, Unknown=0, NotChecked=0, Total=42 [2019-01-18 14:30:03,193 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 104 states. [2019-01-18 14:30:04,418 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 104 to 103. [2019-01-18 14:30:04,418 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:30:04,418 INFO L82 GeneralOperation]: Start isEquivalent. First operand 104 states. Second operand 103 states. [2019-01-18 14:30:04,418 INFO L74 IsIncluded]: Start isIncluded. First operand 104 states. Second operand 103 states. [2019-01-18 14:30:04,419 INFO L87 Difference]: Start difference. First operand 104 states. Second operand 103 states. [2019-01-18 14:30:04,422 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:30:04,422 INFO L93 Difference]: Finished difference Result 104 states and 513 transitions. [2019-01-18 14:30:04,422 INFO L276 IsEmpty]: Start isEmpty. Operand 104 states and 513 transitions. [2019-01-18 14:30:04,422 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:30:04,423 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:30:04,423 INFO L74 IsIncluded]: Start isIncluded. First operand 103 states. Second operand 104 states. [2019-01-18 14:30:04,423 INFO L87 Difference]: Start difference. First operand 103 states. Second operand 104 states. [2019-01-18 14:30:04,426 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:30:04,426 INFO L93 Difference]: Finished difference Result 104 states and 513 transitions. [2019-01-18 14:30:04,426 INFO L276 IsEmpty]: Start isEmpty. Operand 104 states and 513 transitions. [2019-01-18 14:30:04,427 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:30:04,427 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:30:04,427 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:30:04,427 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:30:04,427 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 103 states. [2019-01-18 14:30:04,430 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 103 states to 103 states and 513 transitions. [2019-01-18 14:30:04,430 INFO L78 Accepts]: Start accepts. Automaton has 103 states and 513 transitions. Word has length 5 [2019-01-18 14:30:04,431 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:30:04,431 INFO L480 AbstractCegarLoop]: Abstraction has 103 states and 513 transitions. [2019-01-18 14:30:04,431 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-01-18 14:30:04,431 INFO L276 IsEmpty]: Start isEmpty. Operand 103 states and 513 transitions. [2019-01-18 14:30:04,431 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-18 14:30:04,431 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:30:04,432 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-18 14:30:04,432 INFO L423 AbstractCegarLoop]: === Iteration 28 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:30:04,432 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:30:04,432 INFO L82 PathProgramCache]: Analyzing trace with hash 29235162, now seen corresponding path program 3 times [2019-01-18 14:30:04,432 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:30:04,433 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:30:04,433 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:30:04,433 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:30:04,433 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:30:04,438 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:30:04,876 INFO L273 TraceCheckUtils]: 0: Hoare triple {8631#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;#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]; {8633#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p5) 0) (or (= 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_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:30:04,877 INFO L273 TraceCheckUtils]: 1: Hoare triple {8633#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p5) 0) (or (= 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_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {8634#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (or (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) 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))) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:30:04,879 INFO L273 TraceCheckUtils]: 2: Hoare triple {8634#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (or (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) 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))) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {8635#(and (or (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) 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-18 14:30:04,880 INFO L273 TraceCheckUtils]: 3: Hoare triple {8635#(and (or (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) 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]; {8636#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:30:04,880 INFO L273 TraceCheckUtils]: 4: Hoare triple {8636#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {8632#false} is VALID [2019-01-18 14:30:04,881 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-18 14:30:04,881 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:30:04,881 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:30:04,881 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-18 14:30:04,881 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-18 14:30:04,882 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:30:04,882 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-18 14:30:04,891 INFO L103 rtionOrderModulation]: Keeping assertion order TERMS_WITH_SMALL_CONSTANTS_FIRST [2019-01-18 14:30:04,892 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder TERMS_WITH_SMALL_CONSTANTS_FIRST (IT: FPandBP) [2019-01-18 14:30:04,896 INFO L249 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2019-01-18 14:30:04,896 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-18 14:30:04,901 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:30:04,902 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:30:04,939 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 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 18 treesize of output 21 [2019-01-18 14:30:04,949 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-18 14:30:04,956 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:04,958 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:04,959 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-18 14:30:04,969 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:04,971 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:04,972 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:04,973 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-18 14:30:05,002 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-18 14:30:05,004 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:05,024 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:05,039 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:05,052 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:05,064 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:05,088 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:05,089 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 40 [2019-01-18 14:30:05,132 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:05,133 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:05,134 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 42 [2019-01-18 14:30:05,178 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:05,179 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:05,181 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:05,182 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:05,182 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 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 21 treesize of output 25 [2019-01-18 14:30:05,184 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:05,194 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:05,204 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:05,227 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 2 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-18 14:30:05,228 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 3 variables, input treesize:52, output treesize:50 [2019-01-18 14:30:05,233 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:30:05,234 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_143|, ULTIMATE.start_main_p3, |v_#valid_31|]. (let ((.cse1 (store |v_#valid_31| ULTIMATE.start_main_p1 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p2 1))) (and (= |#memory_int| (store (store (store (store (store |v_#memory_int_143| 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)) (= 0 (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4)) (= (select .cse1 ULTIMATE.start_main_p2) 0) (= 0 (select .cse0 ULTIMATE.start_main_p3))))) [2019-01-18 14:30:05,234 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:30:05,296 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:05,326 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 7 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 8 case distinctions, treesize of input 36 treesize of output 66 [2019-01-18 14:30:05,333 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 16 xjuncts. [2019-01-18 14:30:05,508 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 6 dim-0 vars, and 5 xjuncts. [2019-01-18 14:30:05,508 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:60, output treesize:199 [2019-01-18 14:30:08,232 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:30:08,233 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_144|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_144| ULTIMATE.start_main_p5))) (and (= 0 (select |v_#memory_int_144| ULTIMATE.start_main_p3)) (= (store |v_#memory_int_144| ULTIMATE.start_main_p5 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 .cse0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_144| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_144| ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_144| ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-01-18 14:30:08,233 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [v_prenex_57, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, v_prenex_56, v_prenex_55, v_prenex_58]. (let ((.cse8 (select |#memory_int| ULTIMATE.start_main_p4)) (.cse7 (select |#memory_int| ULTIMATE.start_main_p2)) (.cse6 (select |#memory_int| ULTIMATE.start_main_p1))) (let ((.cse0 (= .cse6 0)) (.cse1 (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1))) (.cse2 (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4))) (.cse3 (= 0 .cse7)) (.cse5 (= .cse8 0)) (.cse4 (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (or (and (not (= v_prenex_57 ULTIMATE.start_main_p4)) (not (= v_prenex_57 ULTIMATE.start_main_p2)) .cse0 .cse1 .cse2 (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) .cse3 (not (= v_prenex_57 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_57) 0) .cse4 .cse5) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= .cse6 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) .cse2 .cse3 (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) .cse4 .cse5) (and (not (= v_prenex_56 ULTIMATE.start_main_p4)) (= 1 .cse7) .cse0 (not (= v_prenex_56 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_56) 0) .cse5 .cse4) (and (not (= v_prenex_55 ULTIMATE.start_main_p2)) .cse0 (= .cse8 1) .cse1 .cse3 (not (= v_prenex_55 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_55) 0) .cse4) (and .cse0 .cse1 .cse2 (= (select |#memory_int| v_prenex_58) 1) .cse3 (not (= v_prenex_58 ULTIMATE.start_main_p1)) .cse5 .cse4)))) [2019-01-18 14:30:08,413 WARN L181 SmtUtils]: Spent 126.00 ms on a formula simplification. DAG size of input: 78 DAG size of output: 62 [2019-01-18 14:30:08,516 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:08,517 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:08,518 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:08,519 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:08,520 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:08,521 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:08,522 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 43 treesize of output 61 [2019-01-18 14:30:08,524 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:08,626 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:08,627 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:08,628 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:08,629 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:08,630 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:30:08,631 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 43 treesize of output 51 [2019-01-18 14:30:08,633 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:08,724 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:08,725 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:08,726 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:08,727 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:08,728 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:08,729 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:08,730 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 43 treesize of output 65 [2019-01-18 14:30:08,732 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:08,822 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:08,823 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:08,824 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:08,825 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:08,826 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:08,827 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:08,828 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 43 treesize of output 65 [2019-01-18 14:30:08,832 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:08,909 INFO L267 ElimStorePlain]: Start of recursive call 1: 8 dim-0 vars, 4 dim-1 vars, End of recursive call: 8 dim-0 vars, and 4 xjuncts. [2019-01-18 14:30:08,909 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 12 variables, input treesize:181, output treesize:121 [2019-01-18 14:30:10,953 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:30:10,953 WARN L385 uantifierElimination]: Input elimination task: ∃ [v_prenex_60, v_prenex_59, v_prenex_55, |v_#memory_int_145|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, v_prenex_64, v_prenex_63, v_prenex_56, v_prenex_62, v_prenex_61, v_prenex_58]. (let ((.cse3 (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (or (let ((.cse0 (select v_prenex_60 v_prenex_59))) (and (not (= v_prenex_59 ULTIMATE.start_main_p1)) (= 0 .cse0) (= (store v_prenex_60 v_prenex_59 (+ .cse0 (- 1))) |#memory_int|) (not (= v_prenex_55 v_prenex_59)) (= 0 (select v_prenex_60 ULTIMATE.start_main_p1)) (= 1 (select v_prenex_60 ULTIMATE.start_main_p4)) (not (= v_prenex_55 ULTIMATE.start_main_p1)) (= (select v_prenex_60 v_prenex_55) 0))) (let ((.cse1 (select |v_#memory_int_145| ULTIMATE.start_main_p2))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_145| ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_145| ULTIMATE.start_main_p3)) (= 1 (select |v_#memory_int_145| ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (store |v_#memory_int_145| ULTIMATE.start_main_p2 (+ .cse1 (- 1))) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 .cse1))) (let ((.cse2 (select v_prenex_64 v_prenex_63))) (and (= 1 .cse2) (= (store v_prenex_64 v_prenex_63 (+ .cse2 (- 1))) |#memory_int|) (= 0 (select v_prenex_64 ULTIMATE.start_main_p4)) (not (= v_prenex_56 ULTIMATE.start_main_p4)) (not (= v_prenex_56 ULTIMATE.start_main_p1)) (= (select v_prenex_64 v_prenex_56) 0) (= 0 (select v_prenex_64 ULTIMATE.start_main_p1)) .cse3)) (let ((.cse4 (select v_prenex_62 v_prenex_61))) (and (not (= v_prenex_61 ULTIMATE.start_main_p4)) (= 1 (select v_prenex_62 v_prenex_58)) (not (= v_prenex_61 ULTIMATE.start_main_p1)) (= 0 (select v_prenex_62 ULTIMATE.start_main_p4)) (not (= v_prenex_58 ULTIMATE.start_main_p1)) (= 0 (select v_prenex_62 ULTIMATE.start_main_p1)) (= 0 .cse4) (= (store v_prenex_62 v_prenex_61 (+ .cse4 (- 1))) |#memory_int|) .cse3)))) [2019-01-18 14:30:10,953 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [v_prenex_59, v_prenex_55, v_prenex_61, v_prenex_58, v_prenex_63, v_prenex_56, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |#memory_int| ULTIMATE.start_main_p4)) (.cse4 (select |#memory_int| ULTIMATE.start_main_p1))) (let ((.cse1 (= .cse4 0)) (.cse2 (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))) (.cse3 (= .cse0 0))) (or (and (= (- 1) (select |#memory_int| v_prenex_59)) (= 0 (select |#memory_int| v_prenex_55)) (= .cse0 1) .cse1 (not (= v_prenex_55 ULTIMATE.start_main_p1))) (and (= (- 1) (select |#memory_int| v_prenex_61)) .cse1 (= 1 (select |#memory_int| v_prenex_58)) .cse2 .cse3) (and (not (= v_prenex_63 ULTIMATE.start_main_p4)) (= (select |#memory_int| v_prenex_63) 0) .cse1 (not (= v_prenex_56 v_prenex_63)) (not (= v_prenex_56 ULTIMATE.start_main_p4)) (not (= v_prenex_56 ULTIMATE.start_main_p1)) (not (= v_prenex_63 ULTIMATE.start_main_p1)) .cse2 .cse3 (= (select |#memory_int| v_prenex_56) 0)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= .cse4 1) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) .cse3)))) [2019-01-18 14:30:11,095 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:11,097 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:11,098 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:11,099 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:11,100 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:11,101 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:11,102 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:11,103 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:11,104 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:11,105 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:11,106 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:30:11,107 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 37 treesize of output 82 [2019-01-18 14:30:11,109 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:11,211 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:11,212 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 55 treesize of output 59 [2019-01-18 14:30:11,215 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:11,294 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:11,296 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:11,297 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:11,298 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:11,299 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:11,300 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:11,301 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:11,302 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:11,303 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:11,304 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:30:11,305 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 37 treesize of output 73 [2019-01-18 14:30:11,308 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:11,389 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:11,391 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:11,392 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:11,393 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:11,394 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:11,395 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:11,396 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:11,397 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:11,398 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:11,400 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:11,400 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:30:11,401 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 37 treesize of output 78 [2019-01-18 14:30:11,403 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:11,481 INFO L267 ElimStorePlain]: Start of recursive call 1: 12 dim-0 vars, 4 dim-1 vars, End of recursive call: 12 dim-0 vars, and 4 xjuncts. [2019-01-18 14:30:11,481 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 16 variables, input treesize:167, output treesize:123 [2019-01-18 14:30:13,622 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:30:13,622 WARN L385 uantifierElimination]: Input elimination task: ∃ [v_prenex_70, v_prenex_69, v_prenex_55, v_prenex_59, v_prenex_66, v_prenex_65, v_prenex_63, v_prenex_56, v_prenex_68, v_prenex_67, v_prenex_58, v_prenex_61, |v_#memory_int_146|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (or (let ((.cse0 (select v_prenex_70 v_prenex_69))) (and (= 0 (select v_prenex_70 v_prenex_55)) (= (select v_prenex_70 ULTIMATE.start_main_p1) 0) (= |#memory_int| (store v_prenex_70 v_prenex_69 (+ .cse0 (- 1)))) (= (+ (select v_prenex_70 v_prenex_59) 1) 0) (not (= v_prenex_55 ULTIMATE.start_main_p1)) (= 1 .cse0))) (let ((.cse1 (select v_prenex_66 v_prenex_65))) (and (= 0 (select v_prenex_66 v_prenex_63)) (not (= ULTIMATE.start_main_p1 v_prenex_65)) (not (= v_prenex_56 v_prenex_63)) (not (= v_prenex_63 v_prenex_65)) (= 0 .cse1) (= |#memory_int| (store v_prenex_66 v_prenex_65 (+ .cse1 (- 1)))) (not (= v_prenex_56 ULTIMATE.start_main_p1)) (= (select v_prenex_66 ULTIMATE.start_main_p1) 0) (not (= v_prenex_56 v_prenex_65)) (not (= v_prenex_63 ULTIMATE.start_main_p1)) (= 0 (select v_prenex_66 v_prenex_56)))) (let ((.cse2 (select v_prenex_68 v_prenex_67))) (and (= 0 .cse2) (not (= ULTIMATE.start_main_p1 v_prenex_67)) (= (select v_prenex_68 ULTIMATE.start_main_p1) 0) (= (select v_prenex_68 v_prenex_58) 1) (= |#memory_int| (store v_prenex_68 v_prenex_67 (+ .cse2 (- 1)))) (= 0 (+ (select v_prenex_68 v_prenex_61) 1)))) (let ((.cse3 (select |v_#memory_int_146| ULTIMATE.start_main_p4))) (and (= (+ (select |v_#memory_int_146| ULTIMATE.start_main_p2) 1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_146| ULTIMATE.start_main_p1) 1) (= 0 .cse3) (= 0 (select |v_#memory_int_146| ULTIMATE.start_main_p3)) (= |#memory_int| (store |v_#memory_int_146| ULTIMATE.start_main_p4 (+ .cse3 (- 1))))))) [2019-01-18 14:30:13,623 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [v_prenex_63, v_prenex_56, v_prenex_65, v_prenex_69, v_prenex_55, v_prenex_59, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, v_prenex_67, v_prenex_61, v_prenex_58]. (let ((.cse1 (select |#memory_int| ULTIMATE.start_main_p1))) (let ((.cse0 (= .cse1 0))) (or (and (= (select |#memory_int| v_prenex_63) 0) .cse0 (not (= v_prenex_56 v_prenex_63)) (= (- 1) (select |#memory_int| v_prenex_65)) (not (= v_prenex_56 ULTIMATE.start_main_p1)) (not (= v_prenex_63 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_56) 0)) (and (not (= v_prenex_69 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| v_prenex_55)) .cse0 (not (= v_prenex_55 ULTIMATE.start_main_p1)) (= (+ (select |#memory_int| v_prenex_59) 1) 0) (not (= v_prenex_55 v_prenex_69)) (= 0 (select |#memory_int| v_prenex_69))) (and (= .cse1 1) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) (and (= (select |#memory_int| v_prenex_67) (- 1)) .cse0 (not (= v_prenex_67 v_prenex_61)) (= (+ (select |#memory_int| v_prenex_61) 1) 0) (= 1 (select |#memory_int| v_prenex_58)))))) [2019-01-18 14:30:13,751 INFO L273 TraceCheckUtils]: 0: Hoare triple {8631#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;#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]; {8640#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:30:13,754 INFO L273 TraceCheckUtils]: 1: Hoare triple {8640#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {8644#(or (and (exists ((v_prenex_58 Int)) (and (not (= v_prenex_58 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_58) 1))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) (and (= (select |#memory_int| ULTIMATE.start_main_p4) 1) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((v_prenex_55 Int)) (and (= (select |#memory_int| v_prenex_55) 0) (not (= v_prenex_55 ULTIMATE.start_main_p1)) (not (= v_prenex_55 ULTIMATE.start_main_p2)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2))) (and (= 1 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_56 Int)) (and (not (= v_prenex_56 ULTIMATE.start_main_p4)) (not (= v_prenex_56 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_56) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))))} is VALID [2019-01-18 14:30:13,759 INFO L273 TraceCheckUtils]: 2: Hoare triple {8644#(or (and (exists ((v_prenex_58 Int)) (and (not (= v_prenex_58 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_58) 1))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) (and (= (select |#memory_int| ULTIMATE.start_main_p4) 1) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((v_prenex_55 Int)) (and (= (select |#memory_int| v_prenex_55) 0) (not (= v_prenex_55 ULTIMATE.start_main_p1)) (not (= v_prenex_55 ULTIMATE.start_main_p2)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2))) (and (= 1 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_56 Int)) (and (not (= v_prenex_56 ULTIMATE.start_main_p4)) (not (= v_prenex_56 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_56) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {8648#(or (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1))) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_56 Int) (v_prenex_63 Int)) (and (not (= v_prenex_63 ULTIMATE.start_main_p4)) (= (select |#memory_int| v_prenex_63) 0) (not (= v_prenex_56 v_prenex_63)) (not (= v_prenex_56 ULTIMATE.start_main_p4)) (not (= v_prenex_56 ULTIMATE.start_main_p1)) (not (= v_prenex_63 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_56) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_58 Int)) (= 1 (select |#memory_int| v_prenex_58))) (exists ((v_prenex_61 Int)) (= 0 (+ (select |#memory_int| v_prenex_61) 1))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))) (and (= (select |#memory_int| ULTIMATE.start_main_p4) 1) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_55 Int)) (and (= 0 (select |#memory_int| v_prenex_55)) (not (= v_prenex_55 ULTIMATE.start_main_p1)))) (exists ((v_prenex_59 Int)) (= 0 (+ (select |#memory_int| v_prenex_59) 1)))))} is VALID [2019-01-18 14:30:13,764 INFO L273 TraceCheckUtils]: 3: Hoare triple {8648#(or (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1))) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_56 Int) (v_prenex_63 Int)) (and (not (= v_prenex_63 ULTIMATE.start_main_p4)) (= (select |#memory_int| v_prenex_63) 0) (not (= v_prenex_56 v_prenex_63)) (not (= v_prenex_56 ULTIMATE.start_main_p4)) (not (= v_prenex_56 ULTIMATE.start_main_p1)) (not (= v_prenex_63 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_56) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_58 Int)) (= 1 (select |#memory_int| v_prenex_58))) (exists ((v_prenex_61 Int)) (= 0 (+ (select |#memory_int| v_prenex_61) 1))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))) (and (= (select |#memory_int| ULTIMATE.start_main_p4) 1) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_55 Int)) (and (= 0 (select |#memory_int| v_prenex_55)) (not (= v_prenex_55 ULTIMATE.start_main_p1)))) (exists ((v_prenex_59 Int)) (= 0 (+ (select |#memory_int| v_prenex_59) 1)))))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {8652#(or (and (exists ((v_prenex_67 Int) (v_prenex_61 Int)) (and (= (+ (select |#memory_int| v_prenex_67) 1) 0) (not (= v_prenex_67 v_prenex_61)) (= (+ (select |#memory_int| v_prenex_61) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_58 Int)) (= 1 (select |#memory_int| v_prenex_58)))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_55 Int) (v_prenex_69 Int)) (and (not (= v_prenex_69 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| v_prenex_55)) (not (= v_prenex_55 ULTIMATE.start_main_p1)) (not (= v_prenex_55 v_prenex_69)) (= 0 (select |#memory_int| v_prenex_69)))) (exists ((v_prenex_59 Int)) (= (+ (select |#memory_int| v_prenex_59) 1) 0))) (and (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int)) (and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)))))} is VALID [2019-01-18 14:30:13,766 INFO L273 TraceCheckUtils]: 4: Hoare triple {8652#(or (and (exists ((v_prenex_67 Int) (v_prenex_61 Int)) (and (= (+ (select |#memory_int| v_prenex_67) 1) 0) (not (= v_prenex_67 v_prenex_61)) (= (+ (select |#memory_int| v_prenex_61) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_58 Int)) (= 1 (select |#memory_int| v_prenex_58)))) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_55 Int) (v_prenex_69 Int)) (and (not (= v_prenex_69 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| v_prenex_55)) (not (= v_prenex_55 ULTIMATE.start_main_p1)) (not (= v_prenex_55 v_prenex_69)) (= 0 (select |#memory_int| v_prenex_69)))) (exists ((v_prenex_59 Int)) (= (+ (select |#memory_int| v_prenex_59) 1) 0))) (and (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int)) (and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)))))} assume !(#memory_int[main_p1] >= 0); {8632#false} is VALID [2019-01-18 14:30:13,766 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-18 14:30:13,766 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:30:13,824 INFO L273 TraceCheckUtils]: 4: Hoare triple {8636#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {8632#false} is VALID [2019-01-18 14:30:13,825 INFO L273 TraceCheckUtils]: 3: Hoare triple {8659#(<= 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]; {8636#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:30:13,826 INFO L273 TraceCheckUtils]: 2: Hoare triple {8663#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {8659#(<= 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-18 14:30:13,828 INFO L273 TraceCheckUtils]: 1: Hoare triple {8667#(<= 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_p4 (+ (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_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {8663#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:30:13,831 INFO L273 TraceCheckUtils]: 0: Hoare triple {8631#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;#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]; {8667#(<= 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_p4 (+ (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_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-18 14:30:13,831 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-18 14:30:13,851 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:30:13,851 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-18 14:30:13,851 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:30:13,851 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-18 14:30:13,851 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:30:13,852 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-18 14:30:13,874 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-18 14:30:13,874 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-18 14:30:13,874 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-18 14:30:13,874 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=58, Invalid=98, Unknown=0, NotChecked=0, Total=156 [2019-01-18 14:30:13,875 INFO L87 Difference]: Start difference. First operand 103 states and 513 transitions. Second operand 10 states. [2019-01-18 14:30:15,052 WARN L181 SmtUtils]: Spent 125.00 ms on a formula simplification. DAG size of input: 79 DAG size of output: 72 [2019-01-18 14:30:16,751 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:30:16,752 INFO L93 Difference]: Finished difference Result 131 states and 560 transitions. [2019-01-18 14:30:16,752 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-18 14:30:16,752 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-18 14:30:16,752 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:30:16,752 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:30:16,753 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 58 transitions. [2019-01-18 14:30:16,753 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:30:16,753 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 58 transitions. [2019-01-18 14:30:16,753 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 58 transitions. [2019-01-18 14:30:16,904 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-18 14:30:16,906 INFO L225 Difference]: With dead ends: 131 [2019-01-18 14:30:16,906 INFO L226 Difference]: Without dead ends: 130 [2019-01-18 14:30:16,907 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 1 SyntacticMatches, 0 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 51 ImplicationChecksByTransitivity, 1.0s TimeCoverageRelationStatistics Valid=77, Invalid=133, Unknown=0, NotChecked=0, Total=210 [2019-01-18 14:30:16,907 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 130 states. [2019-01-18 14:30:17,558 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 130 to 41. [2019-01-18 14:30:17,558 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:30:17,558 INFO L82 GeneralOperation]: Start isEquivalent. First operand 130 states. Second operand 41 states. [2019-01-18 14:30:17,558 INFO L74 IsIncluded]: Start isIncluded. First operand 130 states. Second operand 41 states. [2019-01-18 14:30:17,558 INFO L87 Difference]: Start difference. First operand 130 states. Second operand 41 states. [2019-01-18 14:30:17,562 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:30:17,562 INFO L93 Difference]: Finished difference Result 130 states and 551 transitions. [2019-01-18 14:30:17,562 INFO L276 IsEmpty]: Start isEmpty. Operand 130 states and 551 transitions. [2019-01-18 14:30:17,563 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:30:17,563 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:30:17,563 INFO L74 IsIncluded]: Start isIncluded. First operand 41 states. Second operand 130 states. [2019-01-18 14:30:17,563 INFO L87 Difference]: Start difference. First operand 41 states. Second operand 130 states. [2019-01-18 14:30:17,567 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:30:17,567 INFO L93 Difference]: Finished difference Result 130 states and 551 transitions. [2019-01-18 14:30:17,567 INFO L276 IsEmpty]: Start isEmpty. Operand 130 states and 551 transitions. [2019-01-18 14:30:17,567 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:30:17,567 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:30:17,568 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:30:17,568 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:30:17,568 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 41 states. [2019-01-18 14:30:17,569 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 41 states to 41 states and 140 transitions. [2019-01-18 14:30:17,569 INFO L78 Accepts]: Start accepts. Automaton has 41 states and 140 transitions. Word has length 5 [2019-01-18 14:30:17,569 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:30:17,569 INFO L480 AbstractCegarLoop]: Abstraction has 41 states and 140 transitions. [2019-01-18 14:30:17,569 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-18 14:30:17,569 INFO L276 IsEmpty]: Start isEmpty. Operand 41 states and 140 transitions. [2019-01-18 14:30:17,570 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-18 14:30:17,570 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:30:17,570 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-18 14:30:17,570 INFO L423 AbstractCegarLoop]: === Iteration 29 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:30:17,570 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:30:17,570 INFO L82 PathProgramCache]: Analyzing trace with hash 29239194, now seen corresponding path program 1 times [2019-01-18 14:30:17,570 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:30:17,578 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:30:17,578 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-18 14:30:17,579 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:30:17,580 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:30:17,584 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:30:17,719 INFO L273 TraceCheckUtils]: 0: Hoare triple {9211#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;#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]; {9213#(and (= (select |#memory_int| ULTIMATE.start_main_p5) 0) (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-18 14:30:17,720 INFO L273 TraceCheckUtils]: 1: Hoare triple {9213#(and (= (select |#memory_int| ULTIMATE.start_main_p5) 0) (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]; {9214#(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-18 14:30:17,721 INFO L273 TraceCheckUtils]: 2: Hoare triple {9214#(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]; {9215#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:30:17,721 INFO L273 TraceCheckUtils]: 3: Hoare triple {9215#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {9215#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:30:17,722 INFO L273 TraceCheckUtils]: 4: Hoare triple {9215#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {9212#false} is VALID [2019-01-18 14:30:17,722 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-18 14:30:17,722 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:30:17,722 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:30:17,723 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-18 14:30:17,723 INFO L207 CegarAbsIntRunner]: [0], [14], [20], [24], [25] [2019-01-18 14:30:17,724 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:30:17,724 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:30:17,731 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:30:17,731 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 2. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:30:17,731 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:30:17,731 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:30:17,731 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:30:17,732 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-18 14:30:17,741 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:30:17,742 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:30:17,745 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:30:17,750 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:30:17,750 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:30:17,764 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-18 14:30:17,770 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-18 14:30:17,777 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:17,778 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:17,779 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 33 [2019-01-18 14:30:17,895 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:17,921 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:17,942 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:17,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, 5 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 47 [2019-01-18 14:30:17,992 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:17,995 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:17,996 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:17,997 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:17,998 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 27 treesize of output 62 [2019-01-18 14:30:18,017 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:18,046 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:18,061 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:18,073 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:18,084 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:18,106 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 43 treesize of output 39 [2019-01-18 14:30:18,130 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:18,132 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:18,133 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 36 treesize of output 49 [2019-01-18 14:30:18,181 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:18,182 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:18,184 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:18,185 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:18,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, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 32 treesize of output 57 [2019-01-18 14:30:18,245 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:18,246 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:18,247 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:18,248 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:18,250 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:18,252 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:18,252 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 5 select indices, 5 select index equivalence classes, 10 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 37 [2019-01-18 14:30:18,254 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:18,270 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:18,285 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:18,301 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:18,335 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-18 14:30:18,335 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 4 variables, input treesize:61, output treesize:62 [2019-01-18 14:30:18,345 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:30:18,345 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_150|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, |v_#valid_32|]. (let ((.cse1 (store (store |v_#valid_32| ULTIMATE.start_main_p1 1) ULTIMATE.start_main_p2 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p3 1))) (and (= (select (store .cse0 ULTIMATE.start_main_p4 1) ULTIMATE.start_main_p5) 0) (= (store (store (store (store (store |v_#memory_int_150| 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|) (= 0 (select .cse0 ULTIMATE.start_main_p4)) (= 0 (select .cse1 ULTIMATE.start_main_p3))))) [2019-01-18 14:30:18,345 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (and (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:30:18,424 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:18,425 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 10 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 68 [2019-01-18 14:30:18,428 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:18,460 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-18 14:30:18,460 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:72, output treesize:46 [2019-01-18 14:30:18,473 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:30:18,473 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_151|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_151| ULTIMATE.start_main_p5))) (and (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= 0 (select |v_#memory_int_151| ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_151| ULTIMATE.start_main_p3)) (= (select |v_#memory_int_151| ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (store |v_#memory_int_151| ULTIMATE.start_main_p5 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_151| ULTIMATE.start_main_p1)) (= .cse0 0))) [2019-01-18 14:30:18,473 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p1, ULTIMATE.start_main_p5]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:30:18,599 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:18,600 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:18,601 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:18,602 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:18,604 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:18,605 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:18,606 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:30:18,607 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 10 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 76 [2019-01-18 14:30:18,611 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:18,644 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-18 14:30:18,644 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:56, output treesize:38 [2019-01-18 14:30:20,908 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:30:20,908 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_152|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_152| ULTIMATE.start_main_p3))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (store |v_#memory_int_152| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_152| ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_152| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |v_#memory_int_152| ULTIMATE.start_main_p5) 1) (= (select |v_#memory_int_152| ULTIMATE.start_main_p2) 0) (= 0 .cse0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-01-18 14:30:20,908 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p5, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 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)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:30:20,979 INFO L273 TraceCheckUtils]: 0: Hoare triple {9211#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;#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]; {9219#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:30:20,982 INFO L273 TraceCheckUtils]: 1: Hoare triple {9219#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {9223#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (not (= ULTIMATE.start_main_p3 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_p1 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-18 14:30:20,985 INFO L273 TraceCheckUtils]: 2: Hoare triple {9223#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (not (= ULTIMATE.start_main_p3 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_p1 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {9227#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-18 14:30:20,986 INFO L273 TraceCheckUtils]: 3: Hoare triple {9227#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} assume #memory_int[main_p1] >= 0; {9227#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-18 14:30:20,987 INFO L273 TraceCheckUtils]: 4: Hoare triple {9227#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} assume !(#memory_int[main_p2] <= 0); {9212#false} is VALID [2019-01-18 14:30:20,988 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-18 14:30:20,988 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:30:21,031 INFO L273 TraceCheckUtils]: 4: Hoare triple {9234#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {9212#false} is VALID [2019-01-18 14:30:21,032 INFO L273 TraceCheckUtils]: 3: Hoare triple {9234#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {9234#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:30:21,033 INFO L273 TraceCheckUtils]: 2: Hoare triple {9241#(<= (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]; {9234#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:30:21,034 INFO L273 TraceCheckUtils]: 1: Hoare triple {9245#(<= (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]; {9241#(<= (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-18 14:30:21,036 INFO L273 TraceCheckUtils]: 0: Hoare triple {9211#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;#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]; {9245#(<= (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-18 14:30:21,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-18 14:30:21,056 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:30:21,056 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-18 14:30:21,056 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:30:21,057 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-18 14:30:21,057 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:30:21,057 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-18 14:30:21,070 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-18 14:30:21,070 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-18 14:30:21,070 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-18 14:30:21,070 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=43, Invalid=67, Unknown=0, NotChecked=0, Total=110 [2019-01-18 14:30:21,071 INFO L87 Difference]: Start difference. First operand 41 states and 140 transitions. Second operand 8 states. [2019-01-18 14:30:24,572 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:30:24,572 INFO L93 Difference]: Finished difference Result 71 states and 187 transitions. [2019-01-18 14:30:24,572 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-18 14:30:24,572 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-18 14:30:24,573 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:30:24,573 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:30:24,573 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 65 transitions. [2019-01-18 14:30:24,573 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:30:24,579 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 65 transitions. [2019-01-18 14:30:24,579 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 65 transitions. [2019-01-18 14:30:24,669 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-18 14:30:24,670 INFO L225 Difference]: With dead ends: 71 [2019-01-18 14:30:24,671 INFO L226 Difference]: Without dead ends: 68 [2019-01-18 14:30:24,671 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 12 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=50, Invalid=82, Unknown=0, NotChecked=0, Total=132 [2019-01-18 14:30:24,671 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 68 states. [2019-01-18 14:30:25,404 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 68 to 46. [2019-01-18 14:30:25,405 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:30:25,405 INFO L82 GeneralOperation]: Start isEquivalent. First operand 68 states. Second operand 46 states. [2019-01-18 14:30:25,405 INFO L74 IsIncluded]: Start isIncluded. First operand 68 states. Second operand 46 states. [2019-01-18 14:30:25,405 INFO L87 Difference]: Start difference. First operand 68 states. Second operand 46 states. [2019-01-18 14:30:25,407 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:30:25,407 INFO L93 Difference]: Finished difference Result 68 states and 183 transitions. [2019-01-18 14:30:25,407 INFO L276 IsEmpty]: Start isEmpty. Operand 68 states and 183 transitions. [2019-01-18 14:30:25,407 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:30:25,408 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:30:25,408 INFO L74 IsIncluded]: Start isIncluded. First operand 46 states. Second operand 68 states. [2019-01-18 14:30:25,408 INFO L87 Difference]: Start difference. First operand 46 states. Second operand 68 states. [2019-01-18 14:30:25,409 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:30:25,409 INFO L93 Difference]: Finished difference Result 68 states and 183 transitions. [2019-01-18 14:30:25,409 INFO L276 IsEmpty]: Start isEmpty. Operand 68 states and 183 transitions. [2019-01-18 14:30:25,409 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:30:25,410 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:30:25,410 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:30:25,410 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:30:25,410 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 46 states. [2019-01-18 14:30:25,411 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 46 states to 46 states and 160 transitions. [2019-01-18 14:30:25,411 INFO L78 Accepts]: Start accepts. Automaton has 46 states and 160 transitions. Word has length 5 [2019-01-18 14:30:25,411 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:30:25,411 INFO L480 AbstractCegarLoop]: Abstraction has 46 states and 160 transitions. [2019-01-18 14:30:25,411 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-18 14:30:25,411 INFO L276 IsEmpty]: Start isEmpty. Operand 46 states and 160 transitions. [2019-01-18 14:30:25,411 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-18 14:30:25,411 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:30:25,412 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-18 14:30:25,412 INFO L423 AbstractCegarLoop]: === Iteration 30 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:30:25,412 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:30:25,412 INFO L82 PathProgramCache]: Analyzing trace with hash 28818276, now seen corresponding path program 1 times [2019-01-18 14:30:25,412 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:30:25,413 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:30:25,413 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:30:25,413 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:30:25,413 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:30:25,417 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:30:25,506 INFO L273 TraceCheckUtils]: 0: Hoare triple {9550#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;#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]; {9552#(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-18 14:30:25,507 INFO L273 TraceCheckUtils]: 1: Hoare triple {9552#(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]; {9552#(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-18 14:30:25,508 INFO L273 TraceCheckUtils]: 2: Hoare triple {9552#(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]; {9553#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-18 14:30:25,509 INFO L273 TraceCheckUtils]: 3: Hoare triple {9553#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= (select |#memory_int| ULTIMATE.start_main_p2) 0))} assume #memory_int[main_p1] >= 0; {9554#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:30:25,509 INFO L273 TraceCheckUtils]: 4: Hoare triple {9554#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {9551#false} is VALID [2019-01-18 14:30:25,509 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-18 14:30:25,510 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:30:25,510 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:30:25,510 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-18 14:30:25,510 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [24], [25] [2019-01-18 14:30:25,513 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:30:25,513 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:30:25,525 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:30:25,525 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 2. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:30:25,526 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:30:25,526 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:30:25,526 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:30:25,526 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-18 14:30:25,545 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:30:25,545 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:30:25,550 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:30:25,553 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:30:25,553 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:30:25,587 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:25,588 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 40 [2019-01-18 14:30:25,627 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:25,628 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:25,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, 4 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 42 [2019-01-18 14:30:25,672 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:25,673 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:25,674 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:25,675 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:25,676 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 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 21 treesize of output 25 [2019-01-18 14:30:25,677 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:25,688 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:25,698 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:25,716 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 3 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-18 14:30:25,723 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 5 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-18 14:30:25,733 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 6 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-18 14:30:25,744 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-18 14:30:25,761 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-18 14:30:25,763 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:25,781 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:25,795 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:25,807 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:25,817 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:25,844 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 2 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-18 14:30:25,844 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 5 variables, input treesize:52, output treesize:50 [2019-01-18 14:30:25,853 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:30:25,853 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_155|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, |v_#valid_33|]. (let ((.cse1 (store |v_#valid_33| ULTIMATE.start_main_p1 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p2 1))) (and (= (store (store (store (store (store |v_#memory_int_155| 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|) (= 0 (select .cse0 ULTIMATE.start_main_p3)) (= (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4) 0) (= 0 (select .cse1 ULTIMATE.start_main_p2))))) [2019-01-18 14:30:25,854 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:30:25,921 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:25,922 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-18 14:30:25,924 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:25,948 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-18 14:30:25,949 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:55, output treesize:33 [2019-01-18 14:30:25,959 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:30:25,960 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_156|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_156| ULTIMATE.start_main_p1))) (and (= 0 (select |v_#memory_int_156| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (store |v_#memory_int_156| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_156| ULTIMATE.start_main_p4)) (= .cse0 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_156| ULTIMATE.start_main_p3)))) [2019-01-18 14:30:25,960 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:30:26,006 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:26,007 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:26,008 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:26,009 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:26,010 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:26,011 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:26,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, 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-18 14:30:26,016 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:26,041 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-18 14:30:26,041 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:43, output treesize:25 [2019-01-18 14:30:26,047 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:30:26,048 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_157|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_157| ULTIMATE.start_main_p2))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_157| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= |#memory_int| (store |v_#memory_int_157| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 1 (select |v_#memory_int_157| ULTIMATE.start_main_p1)) (= (select |v_#memory_int_157| ULTIMATE.start_main_p4) 0) (= .cse0 0))) [2019-01-18 14:30:26,048 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:30:26,082 INFO L273 TraceCheckUtils]: 0: Hoare triple {9550#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;#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]; {9558#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-18 14:30:26,084 INFO L273 TraceCheckUtils]: 1: Hoare triple {9558#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {9562#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (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_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-18 14:30:26,086 INFO L273 TraceCheckUtils]: 2: Hoare triple {9562#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (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_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {9566#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-18 14:30:26,086 INFO L273 TraceCheckUtils]: 3: Hoare triple {9566#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p1] >= 0; {9566#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-18 14:30:26,087 INFO L273 TraceCheckUtils]: 4: Hoare triple {9566#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume !(#memory_int[main_p2] <= 0); {9551#false} is VALID [2019-01-18 14:30:26,088 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-18 14:30:26,088 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:30:26,112 INFO L273 TraceCheckUtils]: 4: Hoare triple {9554#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {9551#false} is VALID [2019-01-18 14:30:26,113 INFO L273 TraceCheckUtils]: 3: Hoare triple {9554#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {9554#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:30:26,114 INFO L273 TraceCheckUtils]: 2: Hoare triple {9579#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {9554#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:30:26,115 INFO L273 TraceCheckUtils]: 1: Hoare triple {9583#(<= (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]; {9579#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} is VALID [2019-01-18 14:30:26,116 INFO L273 TraceCheckUtils]: 0: Hoare triple {9550#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;#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]; {9583#(<= (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-18 14:30:26,117 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-18 14:30:26,136 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:30:26,136 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 8 [2019-01-18 14:30:26,136 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:30:26,137 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-18 14:30:26,137 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:30:26,137 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-18 14:30:26,151 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-18 14:30:26,151 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-18 14:30:26,151 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-18 14:30:26,151 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=38, Invalid=52, Unknown=0, NotChecked=0, Total=90 [2019-01-18 14:30:26,151 INFO L87 Difference]: Start difference. First operand 46 states and 160 transitions. Second operand 8 states. [2019-01-18 14:30:27,583 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:30:27,584 INFO L93 Difference]: Finished difference Result 73 states and 194 transitions. [2019-01-18 14:30:27,584 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-18 14:30:27,584 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-18 14:30:27,584 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:30:27,584 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:30:27,585 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 66 transitions. [2019-01-18 14:30:27,585 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:30:27,585 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 66 transitions. [2019-01-18 14:30:27,585 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 66 transitions. [2019-01-18 14:30:27,666 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-18 14:30:27,667 INFO L225 Difference]: With dead ends: 73 [2019-01-18 14:30:27,667 INFO L226 Difference]: Without dead ends: 72 [2019-01-18 14:30:27,668 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 3 SyntacticMatches, 1 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 24 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=53, Invalid=79, Unknown=0, NotChecked=0, Total=132 [2019-01-18 14:30:27,669 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 72 states. [2019-01-18 14:30:28,505 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 72 to 47. [2019-01-18 14:30:28,505 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:30:28,506 INFO L82 GeneralOperation]: Start isEquivalent. First operand 72 states. Second operand 47 states. [2019-01-18 14:30:28,506 INFO L74 IsIncluded]: Start isIncluded. First operand 72 states. Second operand 47 states. [2019-01-18 14:30:28,506 INFO L87 Difference]: Start difference. First operand 72 states. Second operand 47 states. [2019-01-18 14:30:28,507 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:30:28,507 INFO L93 Difference]: Finished difference Result 72 states and 192 transitions. [2019-01-18 14:30:28,507 INFO L276 IsEmpty]: Start isEmpty. Operand 72 states and 192 transitions. [2019-01-18 14:30:28,507 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:30:28,507 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:30:28,508 INFO L74 IsIncluded]: Start isIncluded. First operand 47 states. Second operand 72 states. [2019-01-18 14:30:28,508 INFO L87 Difference]: Start difference. First operand 47 states. Second operand 72 states. [2019-01-18 14:30:28,509 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:30:28,509 INFO L93 Difference]: Finished difference Result 72 states and 192 transitions. [2019-01-18 14:30:28,509 INFO L276 IsEmpty]: Start isEmpty. Operand 72 states and 192 transitions. [2019-01-18 14:30:28,509 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:30:28,510 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:30:28,510 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:30:28,510 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:30:28,510 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 47 states. [2019-01-18 14:30:28,511 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 47 states to 47 states and 166 transitions. [2019-01-18 14:30:28,511 INFO L78 Accepts]: Start accepts. Automaton has 47 states and 166 transitions. Word has length 5 [2019-01-18 14:30:28,511 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:30:28,511 INFO L480 AbstractCegarLoop]: Abstraction has 47 states and 166 transitions. [2019-01-18 14:30:28,511 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-18 14:30:28,512 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 166 transitions. [2019-01-18 14:30:28,512 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-18 14:30:28,512 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:30:28,512 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-18 14:30:28,512 INFO L423 AbstractCegarLoop]: === Iteration 31 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:30:28,512 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:30:28,513 INFO L82 PathProgramCache]: Analyzing trace with hash 28822120, now seen corresponding path program 1 times [2019-01-18 14:30:28,513 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:30:28,513 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:30:28,513 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:30:28,513 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:30:28,514 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:30:28,517 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:30:28,812 WARN L181 SmtUtils]: Spent 118.00 ms on a formula simplification. DAG size of input: 21 DAG size of output: 17 [2019-01-18 14:30:28,860 INFO L273 TraceCheckUtils]: 0: Hoare triple {9903#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;#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]; {9905#(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-18 14:30:28,861 INFO L273 TraceCheckUtils]: 1: Hoare triple {9905#(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]; {9906#(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_p2)))} is VALID [2019-01-18 14:30:28,862 INFO L273 TraceCheckUtils]: 2: Hoare triple {9906#(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_p2)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {9907#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-18 14:30:28,863 INFO L273 TraceCheckUtils]: 3: Hoare triple {9907#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} assume #memory_int[main_p1] >= 0; {9908#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:30:28,863 INFO L273 TraceCheckUtils]: 4: Hoare triple {9908#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {9904#false} is VALID [2019-01-18 14:30:28,864 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-18 14:30:28,864 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:30:28,864 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:30:28,864 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-18 14:30:28,865 INFO L207 CegarAbsIntRunner]: [0], [6], [14], [24], [25] [2019-01-18 14:30:28,866 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:30:28,866 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:30:28,876 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:30:28,876 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 2. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:30:28,877 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:30:28,877 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:30:28,877 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:30:28,877 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-18 14:30:28,886 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:30:28,887 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:30:28,890 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:30:28,894 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:30:28,895 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:30:28,926 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 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 18 treesize of output 21 [2019-01-18 14:30:28,932 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-18 14:30:28,938 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:28,940 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:28,940 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-18 14:30:28,950 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:28,951 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:28,952 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:28,953 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-18 14:30:28,971 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-18 14:30:28,973 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:28,992 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:29,008 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:29,021 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:29,032 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:29,058 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:29,059 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 40 [2019-01-18 14:30:29,098 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:29,099 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:29,100 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 42 [2019-01-18 14:30:29,152 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:29,153 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:29,154 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:29,155 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:29,156 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 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 21 treesize of output 25 [2019-01-18 14:30:29,158 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:29,168 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:29,178 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:29,203 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-18 14:30:29,203 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 4 variables, input treesize:52, output treesize:50 [2019-01-18 14:30:29,211 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:30:29,211 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_160|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, |v_#valid_34|]. (let ((.cse1 (store |v_#valid_34| ULTIMATE.start_main_p1 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p2 1))) (and (= (store (store (store (store (store |v_#memory_int_160| 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|) (= (select .cse0 ULTIMATE.start_main_p3) 0) (= 0 (select .cse1 ULTIMATE.start_main_p2)) (= 0 (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4))))) [2019-01-18 14:30:29,211 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:30:29,287 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:29,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, 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-18 14:30:29,291 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:29,313 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-18 14:30:29,313 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:55, output treesize:33 [2019-01-18 14:30:29,325 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:30:29,325 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_161|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_161| ULTIMATE.start_main_p1))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_161| ULTIMATE.start_main_p4) 0) (= 0 (select |v_#memory_int_161| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 .cse0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (store |v_#memory_int_161| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_161| ULTIMATE.start_main_p3) 0))) [2019-01-18 14:30:29,325 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:30:29,378 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:29,379 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:29,380 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:29,381 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:29,382 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:29,383 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:30:29,383 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-18 14:30:29,386 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:29,408 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-18 14:30:29,409 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:43, output treesize:29 [2019-01-18 14:30:29,416 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:30:29,416 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_162|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_162| ULTIMATE.start_main_p3))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 1 (select |v_#memory_int_162| ULTIMATE.start_main_p1)) (= 0 .cse0) (= 0 (select |v_#memory_int_162| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (store |v_#memory_int_162| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_162| ULTIMATE.start_main_p4) 0))) [2019-01-18 14:30:29,416 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:30:29,452 INFO L273 TraceCheckUtils]: 0: Hoare triple {9903#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;#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]; {9912#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:30:29,454 INFO L273 TraceCheckUtils]: 1: Hoare triple {9912#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {9916#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:30:29,456 INFO L273 TraceCheckUtils]: 2: Hoare triple {9916#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {9920#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))))} is VALID [2019-01-18 14:30:29,457 INFO L273 TraceCheckUtils]: 3: Hoare triple {9920#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))))} assume #memory_int[main_p1] >= 0; {9920#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))))} is VALID [2019-01-18 14:30:29,458 INFO L273 TraceCheckUtils]: 4: Hoare triple {9920#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))))} assume !(#memory_int[main_p2] <= 0); {9904#false} is VALID [2019-01-18 14:30:29,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-18 14:30:29,458 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:30:29,507 INFO L273 TraceCheckUtils]: 4: Hoare triple {9927#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {9904#false} is VALID [2019-01-18 14:30:29,508 INFO L273 TraceCheckUtils]: 3: Hoare triple {9927#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {9927#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:30:29,509 INFO L273 TraceCheckUtils]: 2: Hoare triple {9934#(<= (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]; {9927#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:30:29,510 INFO L273 TraceCheckUtils]: 1: Hoare triple {9938#(<= (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]; {9934#(<= (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-18 14:30:29,512 INFO L273 TraceCheckUtils]: 0: Hoare triple {9903#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;#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]; {9938#(<= (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-18 14:30:29,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-18 14:30:29,532 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:30:29,532 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 3, 3] total 10 [2019-01-18 14:30:29,532 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:30:29,532 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 5 [2019-01-18 14:30:29,532 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:30:29,533 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states. [2019-01-18 14:30:29,547 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-18 14:30:29,547 INFO L459 AbstractCegarLoop]: Interpolant automaton has 9 states [2019-01-18 14:30:29,548 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2019-01-18 14:30:29,548 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=48, Invalid=84, Unknown=0, NotChecked=0, Total=132 [2019-01-18 14:30:29,548 INFO L87 Difference]: Start difference. First operand 47 states and 166 transitions. Second operand 9 states. [2019-01-18 14:30:31,923 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:30:31,923 INFO L93 Difference]: Finished difference Result 66 states and 193 transitions. [2019-01-18 14:30:31,923 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-18 14:30:31,923 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 5 [2019-01-18 14:30:31,923 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:30:31,923 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2019-01-18 14:30:31,924 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 53 transitions. [2019-01-18 14:30:31,924 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2019-01-18 14:30:31,924 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 53 transitions. [2019-01-18 14:30:31,924 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 53 transitions. [2019-01-18 14:30:31,995 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-18 14:30:31,997 INFO L225 Difference]: With dead ends: 66 [2019-01-18 14:30:31,997 INFO L226 Difference]: Without dead ends: 65 [2019-01-18 14:30:31,998 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 12 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 34 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=68, Invalid=114, Unknown=0, NotChecked=0, Total=182 [2019-01-18 14:30:31,998 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 65 states. [2019-01-18 14:30:32,940 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 65 to 48. [2019-01-18 14:30:32,940 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:30:32,940 INFO L82 GeneralOperation]: Start isEquivalent. First operand 65 states. Second operand 48 states. [2019-01-18 14:30:32,941 INFO L74 IsIncluded]: Start isIncluded. First operand 65 states. Second operand 48 states. [2019-01-18 14:30:32,941 INFO L87 Difference]: Start difference. First operand 65 states. Second operand 48 states. [2019-01-18 14:30:32,942 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:30:32,943 INFO L93 Difference]: Finished difference Result 65 states and 191 transitions. [2019-01-18 14:30:32,943 INFO L276 IsEmpty]: Start isEmpty. Operand 65 states and 191 transitions. [2019-01-18 14:30:32,943 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:30:32,943 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:30:32,943 INFO L74 IsIncluded]: Start isIncluded. First operand 48 states. Second operand 65 states. [2019-01-18 14:30:32,944 INFO L87 Difference]: Start difference. First operand 48 states. Second operand 65 states. [2019-01-18 14:30:32,945 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:30:32,945 INFO L93 Difference]: Finished difference Result 65 states and 191 transitions. [2019-01-18 14:30:32,946 INFO L276 IsEmpty]: Start isEmpty. Operand 65 states and 191 transitions. [2019-01-18 14:30:32,946 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:30:32,946 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:30:32,946 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:30:32,946 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:30:32,946 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 48 states. [2019-01-18 14:30:32,947 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 48 states to 48 states and 172 transitions. [2019-01-18 14:30:32,948 INFO L78 Accepts]: Start accepts. Automaton has 48 states and 172 transitions. Word has length 5 [2019-01-18 14:30:32,948 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:30:32,948 INFO L480 AbstractCegarLoop]: Abstraction has 48 states and 172 transitions. [2019-01-18 14:30:32,948 INFO L481 AbstractCegarLoop]: Interpolant automaton has 9 states. [2019-01-18 14:30:32,948 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 172 transitions. [2019-01-18 14:30:32,948 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-18 14:30:32,948 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:30:32,948 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-18 14:30:32,949 INFO L423 AbstractCegarLoop]: === Iteration 32 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:30:32,949 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:30:32,949 INFO L82 PathProgramCache]: Analyzing trace with hash 28950958, now seen corresponding path program 1 times [2019-01-18 14:30:32,949 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:30:32,950 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:30:32,950 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:30:32,950 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:30:32,950 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:30:32,953 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:30:33,136 INFO L273 TraceCheckUtils]: 0: Hoare triple {10240#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;#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]; {10242#(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-18 14:30:33,137 INFO L273 TraceCheckUtils]: 1: Hoare triple {10242#(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]; {10242#(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-18 14:30:33,137 INFO L273 TraceCheckUtils]: 2: Hoare triple {10242#(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)))} assume #memory_int[main_p1] >= 0; {10242#(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-18 14:30:33,138 INFO L273 TraceCheckUtils]: 3: Hoare triple {10242#(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)))} assume #memory_int[main_p2] <= 0; {10243#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-18 14:30:33,138 INFO L273 TraceCheckUtils]: 4: Hoare triple {10243#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume !(#memory_int[main_p3] >= 0); {10241#false} is VALID [2019-01-18 14:30:33,139 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-18 14:30:33,139 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2019-01-18 14:30:33,139 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [] total 2 [2019-01-18 14:30:33,139 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-18 14:30:33,139 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 5 [2019-01-18 14:30:33,139 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:30:33,139 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-01-18 14:30:33,148 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-18 14:30:33,148 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-01-18 14:30:33,148 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-01-18 14:30:33,148 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=6, Invalid=6, Unknown=0, NotChecked=0, Total=12 [2019-01-18 14:30:33,149 INFO L87 Difference]: Start difference. First operand 48 states and 172 transitions. Second operand 4 states. [2019-01-18 14:30:34,876 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:30:34,876 INFO L93 Difference]: Finished difference Result 54 states and 182 transitions. [2019-01-18 14:30:34,877 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-18 14:30:34,877 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 5 [2019-01-18 14:30:34,877 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:30:34,877 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-18 14:30:34,877 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 24 transitions. [2019-01-18 14:30:34,878 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-18 14:30:34,878 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 24 transitions. [2019-01-18 14:30:34,878 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 24 transitions. [2019-01-18 14:30:34,900 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-18 14:30:34,901 INFO L225 Difference]: With dead ends: 54 [2019-01-18 14:30:34,901 INFO L226 Difference]: Without dead ends: 51 [2019-01-18 14:30:34,902 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 3 GetRequests, 0 SyntacticMatches, 1 SemanticMatches, 2 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=6, Invalid=6, Unknown=0, NotChecked=0, Total=12 [2019-01-18 14:30:34,902 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 51 states. [2019-01-18 14:30:35,806 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 51 to 47. [2019-01-18 14:30:35,806 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:30:35,806 INFO L82 GeneralOperation]: Start isEquivalent. First operand 51 states. Second operand 47 states. [2019-01-18 14:30:35,806 INFO L74 IsIncluded]: Start isIncluded. First operand 51 states. Second operand 47 states. [2019-01-18 14:30:35,806 INFO L87 Difference]: Start difference. First operand 51 states. Second operand 47 states. [2019-01-18 14:30:35,807 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:30:35,808 INFO L93 Difference]: Finished difference Result 51 states and 178 transitions. [2019-01-18 14:30:35,808 INFO L276 IsEmpty]: Start isEmpty. Operand 51 states and 178 transitions. [2019-01-18 14:30:35,808 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:30:35,808 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:30:35,814 INFO L74 IsIncluded]: Start isIncluded. First operand 47 states. Second operand 51 states. [2019-01-18 14:30:35,815 INFO L87 Difference]: Start difference. First operand 47 states. Second operand 51 states. [2019-01-18 14:30:35,816 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:30:35,816 INFO L93 Difference]: Finished difference Result 51 states and 178 transitions. [2019-01-18 14:30:35,816 INFO L276 IsEmpty]: Start isEmpty. Operand 51 states and 178 transitions. [2019-01-18 14:30:35,816 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:30:35,816 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:30:35,817 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:30:35,817 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:30:35,817 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 47 states. [2019-01-18 14:30:35,818 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 47 states to 47 states and 175 transitions. [2019-01-18 14:30:35,818 INFO L78 Accepts]: Start accepts. Automaton has 47 states and 175 transitions. Word has length 5 [2019-01-18 14:30:35,818 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:30:35,818 INFO L480 AbstractCegarLoop]: Abstraction has 47 states and 175 transitions. [2019-01-18 14:30:35,818 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-01-18 14:30:35,818 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 175 transitions. [2019-01-18 14:30:35,818 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-18 14:30:35,818 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:30:35,818 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-18 14:30:35,819 INFO L423 AbstractCegarLoop]: === Iteration 33 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:30:35,819 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:30:35,819 INFO L82 PathProgramCache]: Analyzing trace with hash 28941284, now seen corresponding path program 1 times [2019-01-18 14:30:35,819 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:30:35,820 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:30:35,820 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:30:35,820 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:30:35,820 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:30:35,824 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:30:35,891 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;#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 (<= (select |#memory_int| ULTIMATE.start_main_p2) 1) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:30:35,893 INFO L273 TraceCheckUtils]: 1: Hoare triple {10503#(and (<= (select |#memory_int| ULTIMATE.start_main_p2) 1) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {10504#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (<= (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-18 14:30:35,894 INFO L273 TraceCheckUtils]: 2: Hoare triple {10504#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (<= (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]; {10505#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:30:35,894 INFO L273 TraceCheckUtils]: 3: Hoare triple {10505#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {10505#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:30:35,895 INFO L273 TraceCheckUtils]: 4: Hoare triple {10505#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {10502#false} is VALID [2019-01-18 14:30:35,895 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-18 14:30:35,895 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:30:35,895 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:30:35,895 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-18 14:30:35,895 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [24], [25] [2019-01-18 14:30:35,896 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:30:35,896 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:30:35,903 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:30:35,904 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 2. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:30:35,904 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:30:35,904 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:30:35,904 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:30:35,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 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-18 14:30:35,914 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:30:35,914 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:30:35,918 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:30:35,921 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:30:35,921 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:30:35,935 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 25 [2019-01-18 14:30:35,954 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:35,956 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:35,957 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 22 treesize of output 38 [2019-01-18 14:30:35,996 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:35,997 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:35,999 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:36,000 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:36,001 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 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 21 treesize of output 21 [2019-01-18 14:30:36,003 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:36,012 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:36,022 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:36,037 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 2 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-18 14:30:36,044 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 4 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-18 14:30:36,054 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 5 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 33 [2019-01-18 14:30:36,066 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 5 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 47 [2019-01-18 14:30:36,083 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 5 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 46 [2019-01-18 14:30:36,085 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:36,102 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:36,115 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:36,125 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:36,135 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:36,158 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 2 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-18 14:30:36,158 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 5 variables, input treesize:44, output treesize:46 [2019-01-18 14:30:36,166 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:30:36,167 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_165|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, |v_#valid_35|]. (let ((.cse0 (store (store |v_#valid_35| ULTIMATE.start_main_p1 1) ULTIMATE.start_main_p2 1))) (and (= (store (store (store (store (store |v_#memory_int_165| 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|) (= (select .cse0 ULTIMATE.start_main_p3) 0) (= (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4) 0))) [2019-01-18 14:30:36,167 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5, ULTIMATE.start_main_p1]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:30:36,250 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:36,258 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 2 case distinctions, treesize of input 31 treesize of output 51 [2019-01-18 14:30:36,261 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 2 xjuncts. [2019-01-18 14:30:36,323 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 2 xjuncts. [2019-01-18 14:30:36,323 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:51, output treesize:62 [2019-01-18 14:30:36,331 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:30:36,331 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_166|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_166| ULTIMATE.start_main_p2))) (and (= 0 (select |v_#memory_int_166| ULTIMATE.start_main_p4)) (= (store |v_#memory_int_166| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_166| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= .cse0 0) (= (select |v_#memory_int_166| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-01-18 14:30:36,331 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p1, v_prenex_71]. (let ((.cse0 (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2))) (.cse1 (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (or (and (not (= ULTIMATE.start_main_p3 v_prenex_71)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) .cse0 (not (= ULTIMATE.start_main_p2 v_prenex_71)) .cse1 (= (select |#memory_int| v_prenex_71) 0)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) .cse0 (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) .cse1 (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))))) [2019-01-18 14:30:36,384 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:36,385 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:36,386 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:36,387 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:36,388 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-18 14:30:36,390 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:36,408 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-18 14:30:36,408 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:36, output treesize:18 [2019-01-18 14:30:36,413 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:30:36,413 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_167|, ULTIMATE.start_main_p3, v_prenex_71]. (let ((.cse0 (select |v_#memory_int_167| ULTIMATE.start_main_p3))) (and (= .cse0 0) (not (= ULTIMATE.start_main_p2 v_prenex_71)) (= 0 (+ (select |v_#memory_int_167| ULTIMATE.start_main_p2) 1)) (= (select |v_#memory_int_167| v_prenex_71) 0) (= (store |v_#memory_int_167| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p3 v_prenex_71)))) [2019-01-18 14:30:36,413 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [v_prenex_71, ULTIMATE.start_main_p3]. (and (= 0 (select |#memory_int| v_prenex_71)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-18 14:30:36,437 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;#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 (not (= ULTIMATE.start_main_p3 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_p1 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-18 14:30:36,438 INFO L273 TraceCheckUtils]: 1: Hoare triple {10509#(and (not (= ULTIMATE.start_main_p3 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_p1 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {10513#(and (exists ((v_prenex_71 Int)) (and (not (= ULTIMATE.start_main_p2 v_prenex_71)) (= (select |#memory_int| v_prenex_71) 0) (not (= ULTIMATE.start_main_p3 v_prenex_71)))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:30:36,440 INFO L273 TraceCheckUtils]: 2: Hoare triple {10513#(and (exists ((v_prenex_71 Int)) (and (not (= ULTIMATE.start_main_p2 v_prenex_71)) (= (select |#memory_int| v_prenex_71) 0) (not (= ULTIMATE.start_main_p3 v_prenex_71)))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {10517#(and (exists ((v_prenex_71 Int)) (= 0 (select |#memory_int| v_prenex_71))) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-18 14:30:36,441 INFO L273 TraceCheckUtils]: 3: Hoare triple {10517#(and (exists ((v_prenex_71 Int)) (= 0 (select |#memory_int| v_prenex_71))) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume #memory_int[main_p1] >= 0; {10517#(and (exists ((v_prenex_71 Int)) (= 0 (select |#memory_int| v_prenex_71))) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-18 14:30:36,441 INFO L273 TraceCheckUtils]: 4: Hoare triple {10517#(and (exists ((v_prenex_71 Int)) (= 0 (select |#memory_int| v_prenex_71))) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume !(#memory_int[main_p2] <= 0); {10502#false} is VALID [2019-01-18 14:30:36,442 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-18 14:30:36,442 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:30:36,467 INFO L273 TraceCheckUtils]: 4: Hoare triple {10505#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {10502#false} is VALID [2019-01-18 14:30:36,468 INFO L273 TraceCheckUtils]: 3: Hoare triple {10505#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {10505#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:30:36,468 INFO L273 TraceCheckUtils]: 2: Hoare triple {10530#(<= (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]; {10505#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:30:36,469 INFO L273 TraceCheckUtils]: 1: Hoare triple {10534#(<= (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]; {10530#(<= (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-18 14:30:36,471 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;#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]; {10534#(<= (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-18 14:30:36,472 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-18 14:30:36,491 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:30:36,491 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 8 [2019-01-18 14:30:36,491 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:30:36,491 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-18 14:30:36,491 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:30:36,491 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-18 14:30:36,504 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-18 14:30:36,505 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-18 14:30:36,505 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-18 14:30:36,505 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=38, Invalid=52, Unknown=0, NotChecked=0, Total=90 [2019-01-18 14:30:36,505 INFO L87 Difference]: Start difference. First operand 47 states and 175 transitions. Second operand 8 states. [2019-01-18 14:30:38,484 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:30:38,485 INFO L93 Difference]: Finished difference Result 83 states and 276 transitions. [2019-01-18 14:30:38,485 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-18 14:30:38,485 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-18 14:30:38,485 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:30:38,485 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:30:38,486 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 58 transitions. [2019-01-18 14:30:38,486 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:30:38,486 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 58 transitions. [2019-01-18 14:30:38,486 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 58 transitions. [2019-01-18 14:30:38,557 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-18 14:30:38,558 INFO L225 Difference]: With dead ends: 83 [2019-01-18 14:30:38,558 INFO L226 Difference]: Without dead ends: 82 [2019-01-18 14:30:38,559 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 12 GetRequests, 3 SyntacticMatches, 0 SemanticMatches, 9 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 24 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=46, Invalid=64, Unknown=0, NotChecked=0, Total=110 [2019-01-18 14:30:38,559 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 82 states. [2019-01-18 14:30:40,021 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 82 to 58. [2019-01-18 14:30:40,022 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:30:40,022 INFO L82 GeneralOperation]: Start isEquivalent. First operand 82 states. Second operand 58 states. [2019-01-18 14:30:40,022 INFO L74 IsIncluded]: Start isIncluded. First operand 82 states. Second operand 58 states. [2019-01-18 14:30:40,022 INFO L87 Difference]: Start difference. First operand 82 states. Second operand 58 states. [2019-01-18 14:30:40,023 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:30:40,023 INFO L93 Difference]: Finished difference Result 82 states and 274 transitions. [2019-01-18 14:30:40,024 INFO L276 IsEmpty]: Start isEmpty. Operand 82 states and 274 transitions. [2019-01-18 14:30:40,024 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:30:40,024 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:30:40,024 INFO L74 IsIncluded]: Start isIncluded. First operand 58 states. Second operand 82 states. [2019-01-18 14:30:40,024 INFO L87 Difference]: Start difference. First operand 58 states. Second operand 82 states. [2019-01-18 14:30:40,027 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:30:40,027 INFO L93 Difference]: Finished difference Result 82 states and 274 transitions. [2019-01-18 14:30:40,027 INFO L276 IsEmpty]: Start isEmpty. Operand 82 states and 274 transitions. [2019-01-18 14:30:40,027 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:30:40,028 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:30:40,028 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:30:40,028 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:30:40,028 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 58 states. [2019-01-18 14:30:40,029 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 58 states to 58 states and 241 transitions. [2019-01-18 14:30:40,029 INFO L78 Accepts]: Start accepts. Automaton has 58 states and 241 transitions. Word has length 5 [2019-01-18 14:30:40,030 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:30:40,030 INFO L480 AbstractCegarLoop]: Abstraction has 58 states and 241 transitions. [2019-01-18 14:30:40,030 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-18 14:30:40,030 INFO L276 IsEmpty]: Start isEmpty. Operand 58 states and 241 transitions. [2019-01-18 14:30:40,030 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-18 14:30:40,030 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:30:40,030 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1] [2019-01-18 14:30:40,031 INFO L423 AbstractCegarLoop]: === Iteration 34 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:30:40,031 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:30:40,031 INFO L82 PathProgramCache]: Analyzing trace with hash 904687194, now seen corresponding path program 1 times [2019-01-18 14:30:40,031 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:30:40,032 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:30:40,032 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:30:40,032 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:30:40,032 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:30:40,036 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:30:40,121 INFO L273 TraceCheckUtils]: 0: Hoare triple {10920#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;#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]; {10922#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select (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_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_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:30:40,123 INFO L273 TraceCheckUtils]: 1: Hoare triple {10922#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select (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_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_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {10922#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select (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_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_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:30:40,123 INFO L273 TraceCheckUtils]: 2: Hoare triple {10922#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select (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_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_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {10923#(and (= (select |#memory_int| ULTIMATE.start_main_p2) (select |#memory_int| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-18 14:30:40,124 INFO L273 TraceCheckUtils]: 3: Hoare triple {10923#(and (= (select |#memory_int| ULTIMATE.start_main_p2) (select |#memory_int| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} assume #memory_int[main_p1] >= 0; {10923#(and (= (select |#memory_int| ULTIMATE.start_main_p2) (select |#memory_int| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-18 14:30:40,124 INFO L273 TraceCheckUtils]: 4: Hoare triple {10923#(and (= (select |#memory_int| ULTIMATE.start_main_p2) (select |#memory_int| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} assume #memory_int[main_p2] <= 0; {10924#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:30:40,125 INFO L273 TraceCheckUtils]: 5: Hoare triple {10924#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {10921#false} is VALID [2019-01-18 14:30:40,125 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-18 14:30:40,126 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:30:40,126 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:30:40,126 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-18 14:30:40,126 INFO L207 CegarAbsIntRunner]: [0], [18], [24], [26], [27] [2019-01-18 14:30:40,127 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:30:40,127 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:30:40,147 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:30:40,148 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 2. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-18 14:30:40,148 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:30:40,148 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:30:40,148 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:30:40,148 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-18 14:30:40,157 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:30:40,158 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:30:40,161 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:30:40,165 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:30:40,166 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:30:40,179 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 25 [2019-01-18 14:30:40,204 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:40,206 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:40,207 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 22 treesize of output 38 [2019-01-18 14:30:40,255 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:40,257 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:40,260 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:40,262 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:40,263 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 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 21 treesize of output 21 [2019-01-18 14:30:40,264 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:40,275 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:40,287 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:40,305 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 2 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-18 14:30:40,312 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 4 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-18 14:30:40,330 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 5 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 33 [2019-01-18 14:30:40,340 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 5 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 47 [2019-01-18 14:30:40,363 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 5 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 46 [2019-01-18 14:30:40,366 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:40,381 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:40,394 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:40,404 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:40,414 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:40,436 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 2 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-18 14:30:40,436 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 5 variables, input treesize:44, output treesize:46 [2019-01-18 14:30:40,443 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:30:40,444 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_170|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5, |v_#valid_36|]. (let ((.cse0 (store (store |v_#valid_36| ULTIMATE.start_main_p1 1) ULTIMATE.start_main_p2 1))) (and (= |#memory_int| (store (store (store (store (store |v_#memory_int_170| 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)) (= 0 (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4)) (= 0 (select .cse0 ULTIMATE.start_main_p3)))) [2019-01-18 14:30:40,444 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p5, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:30:40,492 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:40,493 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-18 14:30:40,495 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:40,507 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-18 14:30:40,507 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:38, output treesize:20 [2019-01-18 14:30:40,511 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:30:40,511 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_171|, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_171| ULTIMATE.start_main_p4))) (and (= (select |v_#memory_int_171| ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (store |v_#memory_int_171| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_171| ULTIMATE.start_main_p3)) (= 0 .cse0))) [2019-01-18 14:30:40,512 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-18 14:30:40,543 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:40,544 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:40,545 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:40,546 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:40,547 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:40,548 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 40 [2019-01-18 14:30:40,550 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:40,565 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-18 14:30:40,565 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:32, output treesize:20 [2019-01-18 14:30:42,948 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:30:42,949 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_172|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_172| ULTIMATE.start_main_p4))) (and (= 0 (+ .cse0 1)) (= 0 (select |v_#memory_int_172| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_172| ULTIMATE.start_main_p2)) (= (store |v_#memory_int_172| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|))) [2019-01-18 14:30:42,949 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-18 14:30:43,116 INFO L273 TraceCheckUtils]: 0: Hoare triple {10920#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;#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]; {10928#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:30:43,117 INFO L273 TraceCheckUtils]: 1: Hoare triple {10928#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (= (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]; {10932#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:30:43,118 INFO L273 TraceCheckUtils]: 2: Hoare triple {10932#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {10936#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:30:43,119 INFO L273 TraceCheckUtils]: 3: Hoare triple {10936#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p1] >= 0; {10936#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:30:43,119 INFO L273 TraceCheckUtils]: 4: Hoare triple {10936#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p2] <= 0; {10936#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:30:43,120 INFO L273 TraceCheckUtils]: 5: Hoare triple {10936#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume !(#memory_int[main_p3] >= 0); {10921#false} is VALID [2019-01-18 14:30:43,120 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-18 14:30:43,120 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:30:43,154 INFO L273 TraceCheckUtils]: 5: Hoare triple {10924#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {10921#false} is VALID [2019-01-18 14:30:43,155 INFO L273 TraceCheckUtils]: 4: Hoare triple {10924#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {10924#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:30:43,155 INFO L273 TraceCheckUtils]: 3: Hoare triple {10924#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {10924#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:30:43,156 INFO L273 TraceCheckUtils]: 2: Hoare triple {10955#(<= 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]; {10924#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:30:43,158 INFO L273 TraceCheckUtils]: 1: Hoare triple {10959#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 2))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {10955#(<= 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-18 14:30:43,159 INFO L273 TraceCheckUtils]: 0: Hoare triple {10920#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;#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]; {10959#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 2))) ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:30:43,160 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-18 14:30:43,179 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:30:43,179 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 8 [2019-01-18 14:30:43,179 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:30:43,179 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-18 14:30:43,180 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:30:43,180 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-18 14:30:43,194 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-18 14:30:43,194 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-18 14:30:43,195 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-18 14:30:43,195 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=32, Invalid=58, Unknown=0, NotChecked=0, Total=90 [2019-01-18 14:30:43,195 INFO L87 Difference]: Start difference. First operand 58 states and 241 transitions. Second operand 8 states. [2019-01-18 14:30:45,979 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:30:45,980 INFO L93 Difference]: Finished difference Result 86 states and 325 transitions. [2019-01-18 14:30:45,980 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-18 14:30:45,980 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-18 14:30:45,980 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:30:45,980 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:30:45,980 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 54 transitions. [2019-01-18 14:30:45,980 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:30:45,981 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 54 transitions. [2019-01-18 14:30:45,981 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 54 transitions. [2019-01-18 14:30:46,047 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-18 14:30:46,049 INFO L225 Difference]: With dead ends: 86 [2019-01-18 14:30:46,049 INFO L226 Difference]: Without dead ends: 85 [2019-01-18 14:30:46,050 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 17 GetRequests, 6 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 11 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=56, Invalid=100, Unknown=0, NotChecked=0, Total=156 [2019-01-18 14:30:46,050 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 85 states. [2019-01-18 14:30:48,071 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 85 to 66. [2019-01-18 14:30:48,072 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:30:48,072 INFO L82 GeneralOperation]: Start isEquivalent. First operand 85 states. Second operand 66 states. [2019-01-18 14:30:48,072 INFO L74 IsIncluded]: Start isIncluded. First operand 85 states. Second operand 66 states. [2019-01-18 14:30:48,072 INFO L87 Difference]: Start difference. First operand 85 states. Second operand 66 states. [2019-01-18 14:30:48,074 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:30:48,074 INFO L93 Difference]: Finished difference Result 85 states and 321 transitions. [2019-01-18 14:30:48,074 INFO L276 IsEmpty]: Start isEmpty. Operand 85 states and 321 transitions. [2019-01-18 14:30:48,075 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:30:48,075 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:30:48,075 INFO L74 IsIncluded]: Start isIncluded. First operand 66 states. Second operand 85 states. [2019-01-18 14:30:48,075 INFO L87 Difference]: Start difference. First operand 66 states. Second operand 85 states. [2019-01-18 14:30:48,077 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:30:48,077 INFO L93 Difference]: Finished difference Result 85 states and 321 transitions. [2019-01-18 14:30:48,077 INFO L276 IsEmpty]: Start isEmpty. Operand 85 states and 321 transitions. [2019-01-18 14:30:48,077 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:30:48,077 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:30:48,077 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:30:48,077 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:30:48,078 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 66 states. [2019-01-18 14:30:48,079 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 66 states to 66 states and 289 transitions. [2019-01-18 14:30:48,079 INFO L78 Accepts]: Start accepts. Automaton has 66 states and 289 transitions. Word has length 6 [2019-01-18 14:30:48,079 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:30:48,080 INFO L480 AbstractCegarLoop]: Abstraction has 66 states and 289 transitions. [2019-01-18 14:30:48,080 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-18 14:30:48,080 INFO L276 IsEmpty]: Start isEmpty. Operand 66 states and 289 transitions. [2019-01-18 14:30:48,080 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-18 14:30:48,080 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:30:48,080 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-18 14:30:48,081 INFO L423 AbstractCegarLoop]: === Iteration 35 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:30:48,081 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:30:48,081 INFO L82 PathProgramCache]: Analyzing trace with hash 904729414, now seen corresponding path program 1 times [2019-01-18 14:30:48,081 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:30:48,082 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:30:48,082 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:30:48,082 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:30:48,082 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:30:48,085 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:30:48,280 INFO L273 TraceCheckUtils]: 0: Hoare triple {11383#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;#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]; {11385#(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-18 14:30:48,282 INFO L273 TraceCheckUtils]: 1: Hoare triple {11385#(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]; {11386#(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-18 14:30:48,282 INFO L273 TraceCheckUtils]: 2: Hoare triple {11386#(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]; {11387#(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-18 14:30:48,283 INFO L273 TraceCheckUtils]: 3: Hoare triple {11387#(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]; {11387#(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-18 14:30:48,283 INFO L273 TraceCheckUtils]: 4: Hoare triple {11387#(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; {11388#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:30:48,284 INFO L273 TraceCheckUtils]: 5: Hoare triple {11388#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {11384#false} is VALID [2019-01-18 14:30:48,284 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-18 14:30:48,285 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:30:48,285 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:30:48,285 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-18 14:30:48,285 INFO L207 CegarAbsIntRunner]: [0], [6], [18], [20], [24], [25] [2019-01-18 14:30:48,286 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:30:48,286 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:30:48,299 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:30:48,300 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 60 root evaluator evaluations with a maximum evaluation depth of 2. Performed 60 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-18 14:30:48,300 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:30:48,300 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:30:48,300 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:30:48,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 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-18 14:30:48,308 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:30:48,309 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:30:48,313 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:30:48,316 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:30:48,317 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:30:48,374 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:48,375 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 48 treesize of output 54 [2019-01-18 14:30:48,426 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:48,428 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:48,428 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 41 treesize of output 53 [2019-01-18 14:30:48,484 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:48,485 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:48,486 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:48,487 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:48,488 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 32 treesize of output 61 [2019-01-18 14:30:48,556 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:48,557 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:48,558 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:48,559 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:48,560 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:48,561 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:48,562 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 5 select indices, 5 select index equivalence classes, 11 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 41 [2019-01-18 14:30:48,564 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:48,582 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:48,596 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:48,614 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:48,642 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 4 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-18 14:30:48,650 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 7 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-18 14:30:48,661 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 9 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-18 14:30:48,674 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 10 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-18 14:30:48,690 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-18 14:30:48,699 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:48,723 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:48,738 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:48,750 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:48,761 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:48,794 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 2 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-18 14:30:48,795 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 3 variables, input treesize:69, output treesize:66 [2019-01-18 14:30:48,802 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:30:48,802 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_175|, ULTIMATE.start_main_p3, |v_#valid_37|]. (let ((.cse1 (store |v_#valid_37| ULTIMATE.start_main_p1 1))) (let ((.cse2 (store .cse1 ULTIMATE.start_main_p2 1))) (let ((.cse0 (store .cse2 ULTIMATE.start_main_p3 1))) (and (= 0 (select (store .cse0 ULTIMATE.start_main_p4 1) ULTIMATE.start_main_p5)) (= (select .cse1 ULTIMATE.start_main_p2) 0) (= (store (store (store (store (store |v_#memory_int_175| 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|) (= (select .cse2 ULTIMATE.start_main_p3) 0) (= (select .cse0 ULTIMATE.start_main_p4) 0))))) [2019-01-18 14:30:48,802 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:30:48,979 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:48,980 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-18 14:30:48,983 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:49,027 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-18 14:30:49,027 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:76, output treesize:50 [2019-01-18 14:30:51,050 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:30:51,050 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_176|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_176| ULTIMATE.start_main_p4))) (and (= 0 (select |v_#memory_int_176| ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= |#memory_int| (store |v_#memory_int_176| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= 0 .cse0) (= (select |v_#memory_int_176| ULTIMATE.start_main_p5) 0) (= 0 (select |v_#memory_int_176| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_176| ULTIMATE.start_main_p3)))) [2019-01-18 14:30:51,051 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-18 14:30:51,124 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:51,126 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:51,127 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:51,128 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:51,129 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:51,130 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:51,131 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:51,132 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-18 14:30:51,136 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:51,171 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-18 14:30:51,171 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:62, output treesize:40 [2019-01-18 14:30:51,604 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:30:51,604 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_177|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_177| ULTIMATE.start_main_p5))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_177| ULTIMATE.start_main_p3)) (= 0 (select |v_#memory_int_177| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_177| ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 (+ (select |v_#memory_int_177| ULTIMATE.start_main_p4) 1)) (= |#memory_int| (store |v_#memory_int_177| ULTIMATE.start_main_p5 (+ .cse0 1))) (= 0 .cse0))) [2019-01-18 14:30:51,604 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-18 14:30:51,668 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:51,669 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:51,670 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:51,671 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:51,672 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:51,673 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:51,674 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:51,675 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:51,676 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:51,677 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:51,678 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:51,679 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:30:51,680 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-18 14:30:51,684 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:51,723 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-18 14:30:51,723 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:50, output treesize:36 [2019-01-18 14:30:51,780 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:30:51,780 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_178|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_178| ULTIMATE.start_main_p1))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 1 (select |v_#memory_int_178| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |v_#memory_int_178| ULTIMATE.start_main_p3) 0) (= (+ (select |v_#memory_int_178| ULTIMATE.start_main_p4) 1) 0) (= (store |v_#memory_int_178| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= .cse0 0) (= (select |v_#memory_int_178| ULTIMATE.start_main_p2) 0))) [2019-01-18 14:30:51,780 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (+ (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)) [2019-01-18 14:30:51,826 INFO L273 TraceCheckUtils]: 0: Hoare triple {11383#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;#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]; {11392#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:30:51,828 INFO L273 TraceCheckUtils]: 1: Hoare triple {11392#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {11396#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:30:51,830 INFO L273 TraceCheckUtils]: 2: Hoare triple {11396#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {11400#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:30:51,832 INFO L273 TraceCheckUtils]: 3: Hoare triple {11400#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {11404#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} is VALID [2019-01-18 14:30:51,833 INFO L273 TraceCheckUtils]: 4: Hoare triple {11404#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} assume #memory_int[main_p1] >= 0; {11404#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} is VALID [2019-01-18 14:30:51,834 INFO L273 TraceCheckUtils]: 5: Hoare triple {11404#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} assume !(#memory_int[main_p2] <= 0); {11384#false} is VALID [2019-01-18 14:30:51,835 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-18 14:30:51,835 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:30:51,900 INFO L273 TraceCheckUtils]: 5: Hoare triple {11411#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {11384#false} is VALID [2019-01-18 14:30:51,900 INFO L273 TraceCheckUtils]: 4: Hoare triple {11411#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {11411#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:30:51,901 INFO L273 TraceCheckUtils]: 3: Hoare triple {11418#(<= (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]; {11411#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:30:51,903 INFO L273 TraceCheckUtils]: 2: Hoare triple {11422#(<= (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]; {11418#(<= (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-18 14:30:51,905 INFO L273 TraceCheckUtils]: 1: Hoare triple {11426#(<= (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]; {11422#(<= (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-18 14:30:51,907 INFO L273 TraceCheckUtils]: 0: Hoare triple {11383#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;#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]; {11426#(<= (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-18 14:30:51,907 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-18 14:30:51,926 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:30:51,926 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-18 14:30:51,926 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:30:51,927 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-18 14:30:51,927 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:30:51,927 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-18 14:30:51,946 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-18 14:30:51,946 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-18 14:30:51,946 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-18 14:30:51,946 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=67, Invalid=115, Unknown=0, NotChecked=0, Total=182 [2019-01-18 14:30:51,947 INFO L87 Difference]: Start difference. First operand 66 states and 289 transitions. Second operand 10 states. [2019-01-18 14:30:55,722 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:30:55,722 INFO L93 Difference]: Finished difference Result 100 states and 357 transitions. [2019-01-18 14:30:55,722 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-18 14:30:55,722 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-18 14:30:55,722 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:30:55,722 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:30:55,723 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 60 transitions. [2019-01-18 14:30:55,723 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:30:55,723 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 60 transitions. [2019-01-18 14:30:55,723 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 60 transitions. [2019-01-18 14:30:55,845 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-18 14:30:55,848 INFO L225 Difference]: With dead ends: 100 [2019-01-18 14:30:55,848 INFO L226 Difference]: Without dead ends: 99 [2019-01-18 14:30:55,848 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 2 SyntacticMatches, 1 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 63 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=100, Invalid=172, Unknown=0, NotChecked=0, Total=272 [2019-01-18 14:30:55,849 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 99 states. [2019-01-18 14:30:58,547 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 99 to 68. [2019-01-18 14:30:58,548 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:30:58,548 INFO L82 GeneralOperation]: Start isEquivalent. First operand 99 states. Second operand 68 states. [2019-01-18 14:30:58,548 INFO L74 IsIncluded]: Start isIncluded. First operand 99 states. Second operand 68 states. [2019-01-18 14:30:58,548 INFO L87 Difference]: Start difference. First operand 99 states. Second operand 68 states. [2019-01-18 14:30:58,551 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:30:58,551 INFO L93 Difference]: Finished difference Result 99 states and 354 transitions. [2019-01-18 14:30:58,551 INFO L276 IsEmpty]: Start isEmpty. Operand 99 states and 354 transitions. [2019-01-18 14:30:58,551 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:30:58,552 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:30:58,552 INFO L74 IsIncluded]: Start isIncluded. First operand 68 states. Second operand 99 states. [2019-01-18 14:30:58,552 INFO L87 Difference]: Start difference. First operand 68 states. Second operand 99 states. [2019-01-18 14:30:58,554 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:30:58,554 INFO L93 Difference]: Finished difference Result 99 states and 354 transitions. [2019-01-18 14:30:58,554 INFO L276 IsEmpty]: Start isEmpty. Operand 99 states and 354 transitions. [2019-01-18 14:30:58,554 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:30:58,554 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:30:58,555 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:30:58,555 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:30:58,555 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 68 states. [2019-01-18 14:30:58,556 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 68 states to 68 states and 301 transitions. [2019-01-18 14:30:58,557 INFO L78 Accepts]: Start accepts. Automaton has 68 states and 301 transitions. Word has length 6 [2019-01-18 14:30:58,557 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:30:58,557 INFO L480 AbstractCegarLoop]: Abstraction has 68 states and 301 transitions. [2019-01-18 14:30:58,557 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-18 14:30:58,557 INFO L276 IsEmpty]: Start isEmpty. Operand 68 states and 301 transitions. [2019-01-18 14:30:58,557 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-18 14:30:58,557 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:30:58,558 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-18 14:30:58,558 INFO L423 AbstractCegarLoop]: === Iteration 36 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:30:58,558 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:30:58,558 INFO L82 PathProgramCache]: Analyzing trace with hash 904737102, now seen corresponding path program 1 times [2019-01-18 14:30:58,558 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:30:58,558 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:30:58,559 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:30:58,559 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:30:58,559 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:30:58,562 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:30:58,845 WARN L181 SmtUtils]: Spent 126.00 ms on a formula simplification that was a NOOP. DAG size: 19 [2019-01-18 14:30:58,966 INFO L273 TraceCheckUtils]: 0: Hoare triple {11900#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;#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]; {11902#(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_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:30:58,967 INFO L273 TraceCheckUtils]: 1: Hoare triple {11902#(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_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {11903#(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-18 14:30:58,968 INFO L273 TraceCheckUtils]: 2: Hoare triple {11903#(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]; {11904#(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-18 14:30:58,969 INFO L273 TraceCheckUtils]: 3: Hoare triple {11904#(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]; {11905#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:30:58,970 INFO L273 TraceCheckUtils]: 4: Hoare triple {11905#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {11905#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:30:58,970 INFO L273 TraceCheckUtils]: 5: Hoare triple {11905#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {11901#false} is VALID [2019-01-18 14:30:58,971 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-18 14:30:58,971 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:30:58,971 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:30:58,971 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-18 14:30:58,971 INFO L207 CegarAbsIntRunner]: [0], [14], [18], [20], [24], [25] [2019-01-18 14:30:58,973 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:30:58,973 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:30:58,989 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:30:58,990 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 60 root evaluator evaluations with a maximum evaluation depth of 2. Performed 60 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-18 14:30:58,990 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:30:58,990 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:30:58,991 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:30:58,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 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-18 14:30:59,004 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:30:59,005 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:30:59,009 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:30:59,012 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:30:59,012 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:30:59,091 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 43 treesize of output 39 [2019-01-18 14:30:59,115 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:59,119 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:59,119 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 36 treesize of output 49 [2019-01-18 14:30:59,189 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:59,191 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:59,194 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:59,196 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:59,197 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 32 treesize of output 57 [2019-01-18 14:30:59,257 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:59,259 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:59,260 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:59,262 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:59,263 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:59,266 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:59,267 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 5 select indices, 5 select index equivalence classes, 10 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 37 [2019-01-18 14:30:59,269 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:59,288 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:59,305 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:59,324 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:59,350 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 3 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-18 14:30:59,359 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 6 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-18 14:30:59,370 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 8 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 33 [2019-01-18 14:30:59,384 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 9 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 47 [2019-01-18 14:30:59,411 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 27 treesize of output 62 [2019-01-18 14:30:59,413 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:59,436 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:59,450 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:59,461 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:59,471 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:30:59,499 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 2 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-18 14:30:59,499 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 3 variables, input treesize:61, output treesize:62 [2019-01-18 14:30:59,505 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:30:59,505 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_182|, ULTIMATE.start_main_p1, |v_#valid_38|]. (let ((.cse0 (store (store |v_#valid_38| ULTIMATE.start_main_p1 1) ULTIMATE.start_main_p2 1))) (let ((.cse1 (store .cse0 ULTIMATE.start_main_p3 1))) (and (= (select .cse0 ULTIMATE.start_main_p3) 0) (= 0 (select (store .cse1 ULTIMATE.start_main_p4 1) ULTIMATE.start_main_p5)) (= |#memory_int| (store (store (store (store (store |v_#memory_int_182| 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)) (= 0 (select .cse1 ULTIMATE.start_main_p4))))) [2019-01-18 14:30:59,506 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1]. (and (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:30:59,592 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:59,593 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-18 14:30:59,596 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:59,615 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-18 14:30:59,615 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:55, output treesize:33 [2019-01-18 14:30:59,648 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:30:59,648 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_183|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_183| ULTIMATE.start_main_p4))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |v_#memory_int_183| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= |#memory_int| (store |v_#memory_int_183| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_183| ULTIMATE.start_main_p2)) (= 0 .cse0) (= 0 (select |v_#memory_int_183| ULTIMATE.start_main_p3)))) [2019-01-18 14:30:59,648 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-18 14:30:59,703 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:59,704 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:59,706 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:59,707 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:59,708 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:59,709 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:30:59,710 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-18 14:30:59,713 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:30:59,734 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-18 14:30:59,734 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:45, output treesize:27 [2019-01-18 14:31:02,162 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:31:02,163 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_184|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_184| ULTIMATE.start_main_p5))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_184| ULTIMATE.start_main_p2)) (= .cse0 0) (= 0 (select |v_#memory_int_184| ULTIMATE.start_main_p3)) (= (+ (select |v_#memory_int_184| ULTIMATE.start_main_p4) 1) 0) (= |#memory_int| (store |v_#memory_int_184| ULTIMATE.start_main_p5 (+ .cse0 1))))) [2019-01-18 14:31:02,163 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (+ (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)) [2019-01-18 14:31:02,345 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:02,346 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:02,348 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:02,349 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:02,350 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:02,351 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:02,352 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:02,353 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:02,354 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:02,354 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:31:02,355 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-18 14:31:02,358 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:31:02,386 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-18 14:31:02,386 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:37, output treesize:27 [2019-01-18 14:31:02,467 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:31:02,467 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_185|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_185| ULTIMATE.start_main_p3))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (+ (select |v_#memory_int_185| ULTIMATE.start_main_p4) 1) 0) (= (select |v_#memory_int_185| ULTIMATE.start_main_p2) 0) (= .cse0 0) (= (select |v_#memory_int_185| ULTIMATE.start_main_p5) 1) (= (store |v_#memory_int_185| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|))) [2019-01-18 14:31:02,467 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= (+ (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))) [2019-01-18 14:31:02,506 INFO L273 TraceCheckUtils]: 0: Hoare triple {11900#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;#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]; {11909#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:31:02,507 INFO L273 TraceCheckUtils]: 1: Hoare triple {11909#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (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]; {11913#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (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))} is VALID [2019-01-18 14:31:02,509 INFO L273 TraceCheckUtils]: 2: Hoare triple {11913#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (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))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {11917#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (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))} is VALID [2019-01-18 14:31:02,511 INFO L273 TraceCheckUtils]: 3: Hoare triple {11917#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (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))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {11921#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:31:02,512 INFO L273 TraceCheckUtils]: 4: Hoare triple {11921#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume #memory_int[main_p1] >= 0; {11921#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:31:02,513 INFO L273 TraceCheckUtils]: 5: Hoare triple {11921#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume !(#memory_int[main_p2] <= 0); {11901#false} is VALID [2019-01-18 14:31:02,513 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-18 14:31:02,513 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:31:02,578 INFO L273 TraceCheckUtils]: 5: Hoare triple {11928#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {11901#false} is VALID [2019-01-18 14:31:02,579 INFO L273 TraceCheckUtils]: 4: Hoare triple {11928#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {11928#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:31:02,580 INFO L273 TraceCheckUtils]: 3: Hoare triple {11935#(<= (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]; {11928#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:31:02,581 INFO L273 TraceCheckUtils]: 2: Hoare triple {11939#(<= (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]; {11935#(<= (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-18 14:31:02,583 INFO L273 TraceCheckUtils]: 1: Hoare triple {11943#(<= (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]; {11939#(<= (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-18 14:31:02,585 INFO L273 TraceCheckUtils]: 0: Hoare triple {11900#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;#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]; {11943#(<= (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-18 14:31:02,586 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-18 14:31:02,605 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:31:02,605 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-18 14:31:02,606 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:31:02,606 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-18 14:31:02,606 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:31:02,606 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-18 14:31:02,622 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-18 14:31:02,622 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-18 14:31:02,622 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-18 14:31:02,623 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=67, Invalid=115, Unknown=0, NotChecked=0, Total=182 [2019-01-18 14:31:02,623 INFO L87 Difference]: Start difference. First operand 68 states and 301 transitions. Second operand 10 states. [2019-01-18 14:31:06,884 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:31:06,884 INFO L93 Difference]: Finished difference Result 104 states and 381 transitions. [2019-01-18 14:31:06,884 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-18 14:31:06,884 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-18 14:31:06,884 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:31:06,884 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:31:06,885 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 60 transitions. [2019-01-18 14:31:06,885 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:31:06,885 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 60 transitions. [2019-01-18 14:31:06,885 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 60 transitions. [2019-01-18 14:31:06,962 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-18 14:31:06,965 INFO L225 Difference]: With dead ends: 104 [2019-01-18 14:31:06,965 INFO L226 Difference]: Without dead ends: 103 [2019-01-18 14:31:06,965 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 17 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 63 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=100, Invalid=172, Unknown=0, NotChecked=0, Total=272 [2019-01-18 14:31:06,965 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 103 states. [2019-01-18 14:31:10,487 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 103 to 74. [2019-01-18 14:31:10,487 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:31:10,487 INFO L82 GeneralOperation]: Start isEquivalent. First operand 103 states. Second operand 74 states. [2019-01-18 14:31:10,487 INFO L74 IsIncluded]: Start isIncluded. First operand 103 states. Second operand 74 states. [2019-01-18 14:31:10,488 INFO L87 Difference]: Start difference. First operand 103 states. Second operand 74 states. [2019-01-18 14:31:10,491 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:31:10,491 INFO L93 Difference]: Finished difference Result 103 states and 378 transitions. [2019-01-18 14:31:10,491 INFO L276 IsEmpty]: Start isEmpty. Operand 103 states and 378 transitions. [2019-01-18 14:31:10,492 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:31:10,492 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:31:10,492 INFO L74 IsIncluded]: Start isIncluded. First operand 74 states. Second operand 103 states. [2019-01-18 14:31:10,492 INFO L87 Difference]: Start difference. First operand 74 states. Second operand 103 states. [2019-01-18 14:31:10,495 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:31:10,495 INFO L93 Difference]: Finished difference Result 103 states and 378 transitions. [2019-01-18 14:31:10,495 INFO L276 IsEmpty]: Start isEmpty. Operand 103 states and 378 transitions. [2019-01-18 14:31:10,495 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:31:10,495 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:31:10,496 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:31:10,496 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:31:10,496 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 74 states. [2019-01-18 14:31:10,498 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 74 states to 74 states and 337 transitions. [2019-01-18 14:31:10,498 INFO L78 Accepts]: Start accepts. Automaton has 74 states and 337 transitions. Word has length 6 [2019-01-18 14:31:10,498 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:31:10,498 INFO L480 AbstractCegarLoop]: Abstraction has 74 states and 337 transitions. [2019-01-18 14:31:10,498 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-18 14:31:10,498 INFO L276 IsEmpty]: Start isEmpty. Operand 74 states and 337 transitions. [2019-01-18 14:31:10,499 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-18 14:31:10,499 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:31:10,499 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-18 14:31:10,499 INFO L423 AbstractCegarLoop]: === Iteration 37 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:31:10,499 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:31:10,499 INFO L82 PathProgramCache]: Analyzing trace with hash 904320028, now seen corresponding path program 1 times [2019-01-18 14:31:10,499 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:31:10,500 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:31:10,500 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:31:10,500 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:31:10,500 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:31:10,505 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:31:10,663 INFO L273 TraceCheckUtils]: 0: Hoare triple {12445#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;#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]; {12447#(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_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:31:10,664 INFO L273 TraceCheckUtils]: 1: Hoare triple {12447#(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_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {12448#(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-18 14:31:10,665 INFO L273 TraceCheckUtils]: 2: Hoare triple {12448#(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]; {12448#(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-18 14:31:10,665 INFO L273 TraceCheckUtils]: 3: Hoare triple {12448#(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]; {12449#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-18 14:31:10,666 INFO L273 TraceCheckUtils]: 4: Hoare triple {12449#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} assume #memory_int[main_p1] >= 0; {12450#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:31:10,666 INFO L273 TraceCheckUtils]: 5: Hoare triple {12450#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {12446#false} is VALID [2019-01-18 14:31:10,666 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-18 14:31:10,667 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:31:10,667 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:31:10,667 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-18 14:31:10,667 INFO L207 CegarAbsIntRunner]: [0], [6], [14], [18], [24], [25] [2019-01-18 14:31:10,669 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:31:10,669 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:31:10,678 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:31:10,678 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 60 root evaluator evaluations with a maximum evaluation depth of 2. Performed 60 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-18 14:31:10,678 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:31:10,678 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:31:10,678 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:31:10,678 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-18 14:31:10,687 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:31:10,687 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:31:10,691 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:31:10,695 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:31:10,695 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:31:10,732 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:10,733 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 40 [2019-01-18 14:31:10,775 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:10,776 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:10,777 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 42 [2019-01-18 14:31:10,825 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:10,826 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:10,827 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:10,828 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:10,829 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 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 21 treesize of output 25 [2019-01-18 14:31:10,831 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-18 14:31:10,843 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:31:10,852 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:31:10,871 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 3 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-18 14:31:10,879 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 5 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-18 14:31:10,890 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 6 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-18 14:31:10,904 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-18 14:31:10,923 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-18 14:31:10,927 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-18 14:31:10,966 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:31:10,980 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:31:10,993 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:31:11,004 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:31:11,027 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 2 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-18 14:31:11,028 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 3 variables, input treesize:52, output treesize:50 [2019-01-18 14:31:11,034 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:31:11,035 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_189|, ULTIMATE.start_main_p5, |v_#valid_39|]. (let ((.cse1 (store |v_#valid_39| ULTIMATE.start_main_p1 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p2 1))) (and (= (store (store (store (store (store |v_#memory_int_189| 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|) (= 0 (select .cse0 ULTIMATE.start_main_p3)) (= 0 (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4)) (= (select .cse1 ULTIMATE.start_main_p2) 0)))) [2019-01-18 14:31:11,035 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p5]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:31:11,124 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:11,125 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-18 14:31:11,129 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:31:11,149 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-18 14:31:11,149 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:55, output treesize:33 [2019-01-18 14:31:13,449 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:31:13,450 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_190|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_190| ULTIMATE.start_main_p4))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_190| ULTIMATE.start_main_p2) 0) (= 0 .cse0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |v_#memory_int_190| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_190| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= |#memory_int| (store |v_#memory_int_190| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))))) [2019-01-18 14:31:13,450 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-18 14:31:13,627 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:13,628 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:13,629 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:13,630 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:13,631 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:13,632 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:13,633 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-18 14:31:13,638 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:31:13,658 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-18 14:31:13,658 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:45, output treesize:27 [2019-01-18 14:31:16,012 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:31:16,013 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_191|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_191| ULTIMATE.start_main_p1))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= .cse0 0) (= (select |v_#memory_int_191| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_191| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (+ (select |v_#memory_int_191| ULTIMATE.start_main_p4) 1) 0) (= (store |v_#memory_int_191| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|))) [2019-01-18 14:31:16,013 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (+ (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)) [2019-01-18 14:31:16,170 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:16,171 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:16,172 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:16,173 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:16,174 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:16,176 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:16,177 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:16,178 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:16,179 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:16,179 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:31:16,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, 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-18 14:31:16,184 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:31:16,211 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-18 14:31:16,211 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:37, output treesize:27 [2019-01-18 14:31:16,233 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:31:16,233 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_192|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_192| ULTIMATE.start_main_p3))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (+ (select |v_#memory_int_192| ULTIMATE.start_main_p4) 1) 0) (= (select |v_#memory_int_192| ULTIMATE.start_main_p1) 1) (= |#memory_int| (store |v_#memory_int_192| ULTIMATE.start_main_p3 (+ .cse0 1))) (= (select |v_#memory_int_192| ULTIMATE.start_main_p2) 0) (= 0 .cse0))) [2019-01-18 14:31:16,233 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (+ (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)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1))) [2019-01-18 14:31:16,270 INFO L273 TraceCheckUtils]: 0: Hoare triple {12445#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;#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]; {12454#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:31:16,272 INFO L273 TraceCheckUtils]: 1: Hoare triple {12454#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {12458#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:31:16,273 INFO L273 TraceCheckUtils]: 2: Hoare triple {12458#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {12462#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (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))} is VALID [2019-01-18 14:31:16,274 INFO L273 TraceCheckUtils]: 3: Hoare triple {12462#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (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))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {12466#(and (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))))} is VALID [2019-01-18 14:31:16,275 INFO L273 TraceCheckUtils]: 4: Hoare triple {12466#(and (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))))} assume #memory_int[main_p1] >= 0; {12466#(and (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))))} is VALID [2019-01-18 14:31:16,293 INFO L273 TraceCheckUtils]: 5: Hoare triple {12466#(and (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))))} assume !(#memory_int[main_p2] <= 0); {12446#false} is VALID [2019-01-18 14:31:16,293 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-18 14:31:16,294 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:31:16,371 INFO L273 TraceCheckUtils]: 5: Hoare triple {12473#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {12446#false} is VALID [2019-01-18 14:31:16,372 INFO L273 TraceCheckUtils]: 4: Hoare triple {12473#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {12473#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:31:16,373 INFO L273 TraceCheckUtils]: 3: Hoare triple {12480#(<= (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]; {12473#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:31:16,374 INFO L273 TraceCheckUtils]: 2: Hoare triple {12484#(<= (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]; {12480#(<= (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-18 14:31:16,377 INFO L273 TraceCheckUtils]: 1: Hoare triple {12488#(<= (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]; {12484#(<= (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-18 14:31:16,379 INFO L273 TraceCheckUtils]: 0: Hoare triple {12445#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;#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]; {12488#(<= (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-18 14:31:16,379 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-18 14:31:16,398 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:31:16,398 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-18 14:31:16,398 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:31:16,399 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-18 14:31:16,399 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:31:16,399 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-18 14:31:16,417 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-18 14:31:16,417 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-18 14:31:16,417 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-18 14:31:16,417 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=65, Invalid=117, Unknown=0, NotChecked=0, Total=182 [2019-01-18 14:31:16,418 INFO L87 Difference]: Start difference. First operand 74 states and 337 transitions. Second operand 10 states. [2019-01-18 14:31:21,268 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:31:21,268 INFO L93 Difference]: Finished difference Result 107 states and 399 transitions. [2019-01-18 14:31:21,268 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-18 14:31:21,269 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-18 14:31:21,269 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:31:21,269 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:31:21,269 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 60 transitions. [2019-01-18 14:31:21,269 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:31:21,270 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 60 transitions. [2019-01-18 14:31:21,270 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 60 transitions. [2019-01-18 14:31:21,349 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-18 14:31:21,351 INFO L225 Difference]: With dead ends: 107 [2019-01-18 14:31:21,352 INFO L226 Difference]: Without dead ends: 106 [2019-01-18 14:31:21,352 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-18 14:31:21,353 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 106 states. [2019-01-18 14:31:25,021 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 106 to 74. [2019-01-18 14:31:25,021 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:31:25,021 INFO L82 GeneralOperation]: Start isEquivalent. First operand 106 states. Second operand 74 states. [2019-01-18 14:31:25,021 INFO L74 IsIncluded]: Start isIncluded. First operand 106 states. Second operand 74 states. [2019-01-18 14:31:25,022 INFO L87 Difference]: Start difference. First operand 106 states. Second operand 74 states. [2019-01-18 14:31:25,025 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:31:25,025 INFO L93 Difference]: Finished difference Result 106 states and 396 transitions. [2019-01-18 14:31:25,025 INFO L276 IsEmpty]: Start isEmpty. Operand 106 states and 396 transitions. [2019-01-18 14:31:25,025 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:31:25,026 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:31:25,026 INFO L74 IsIncluded]: Start isIncluded. First operand 74 states. Second operand 106 states. [2019-01-18 14:31:25,026 INFO L87 Difference]: Start difference. First operand 74 states. Second operand 106 states. [2019-01-18 14:31:25,028 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:31:25,028 INFO L93 Difference]: Finished difference Result 106 states and 396 transitions. [2019-01-18 14:31:25,028 INFO L276 IsEmpty]: Start isEmpty. Operand 106 states and 396 transitions. [2019-01-18 14:31:25,028 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:31:25,028 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:31:25,028 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:31:25,028 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:31:25,029 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 74 states. [2019-01-18 14:31:25,030 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 74 states to 74 states and 337 transitions. [2019-01-18 14:31:25,030 INFO L78 Accepts]: Start accepts. Automaton has 74 states and 337 transitions. Word has length 6 [2019-01-18 14:31:25,030 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:31:25,030 INFO L480 AbstractCegarLoop]: Abstraction has 74 states and 337 transitions. [2019-01-18 14:31:25,030 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-18 14:31:25,030 INFO L276 IsEmpty]: Start isEmpty. Operand 74 states and 337 transitions. [2019-01-18 14:31:25,031 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-18 14:31:25,031 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:31:25,031 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-18 14:31:25,031 INFO L423 AbstractCegarLoop]: === Iteration 38 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:31:25,031 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:31:25,031 INFO L82 PathProgramCache]: Analyzing trace with hash 906534236, now seen corresponding path program 1 times [2019-01-18 14:31:25,031 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:31:25,032 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:31:25,032 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:31:25,032 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:31:25,032 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:31:25,035 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:31:25,142 INFO L273 TraceCheckUtils]: 0: Hoare triple {13002#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;#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]; {13004#(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_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:31:25,144 INFO L273 TraceCheckUtils]: 1: Hoare triple {13004#(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_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {13005#(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-18 14:31:25,144 INFO L273 TraceCheckUtils]: 2: Hoare triple {13005#(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]; {13006#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-18 14:31:25,145 INFO L273 TraceCheckUtils]: 3: Hoare triple {13006#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p1] >= 0; {13006#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-18 14:31:25,146 INFO L273 TraceCheckUtils]: 4: Hoare triple {13006#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p2] <= 0; {13006#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-18 14:31:25,146 INFO L273 TraceCheckUtils]: 5: Hoare triple {13006#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume !(#memory_int[main_p3] >= 0); {13003#false} is VALID [2019-01-18 14:31:25,147 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-18 14:31:25,147 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:31:25,147 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:31:25,147 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-18 14:31:25,147 INFO L207 CegarAbsIntRunner]: [0], [18], [20], [24], [26], [27] [2019-01-18 14:31:25,149 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:31:25,149 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:31:25,158 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:31:25,158 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 60 root evaluator evaluations with a maximum evaluation depth of 2. Performed 60 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:31:25,158 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:31:25,158 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:31:25,158 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:31:25,158 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-18 14:31:25,167 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:31:25,167 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:31:25,171 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:31:25,189 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:31:25,189 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:31:25,210 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-18 14:31:25,217 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-18 14:31:25,225 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:25,226 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:25,227 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 33 [2019-01-18 14:31:25,238 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:25,239 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:25,240 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:25,241 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 5 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 47 [2019-01-18 14:31:25,256 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:25,258 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:25,260 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:25,261 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:25,262 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 27 treesize of output 62 [2019-01-18 14:31:25,266 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-18 14:31:25,294 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:31:25,309 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:31:25,320 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:31:25,332 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:31:25,354 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 43 treesize of output 39 [2019-01-18 14:31:25,381 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:25,383 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:25,384 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 36 treesize of output 49 [2019-01-18 14:31:25,434 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:25,435 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:25,438 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:25,439 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:25,439 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 32 treesize of output 57 [2019-01-18 14:31:25,504 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:25,505 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:25,506 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:25,507 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:25,508 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:25,510 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:25,511 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 5 select indices, 5 select index equivalence classes, 10 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 37 [2019-01-18 14:31:25,514 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-18 14:31:25,530 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:31:25,544 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:31:25,561 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:31:25,596 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-18 14:31:25,596 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 4 variables, input treesize:61, output treesize:62 [2019-01-18 14:31:25,605 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:31:25,605 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_196|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2, |v_#valid_40|]. (let ((.cse1 (store (store |v_#valid_40| ULTIMATE.start_main_p1 1) ULTIMATE.start_main_p2 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p3 1))) (and (= 0 (select .cse0 ULTIMATE.start_main_p4)) (= 0 (select .cse1 ULTIMATE.start_main_p3)) (= (store (store (store (store (store |v_#memory_int_196| 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|) (= 0 (select (store .cse0 ULTIMATE.start_main_p4 1) ULTIMATE.start_main_p5))))) [2019-01-18 14:31:25,605 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2, ULTIMATE.start_main_p1]. (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:31:25,693 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:25,694 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-18 14:31:25,697 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:31:25,715 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-18 14:31:25,715 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:55, output treesize:33 [2019-01-18 14:31:25,754 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:31:25,754 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_197|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_197| ULTIMATE.start_main_p5))) (and (= (select |v_#memory_int_197| ULTIMATE.start_main_p1) 0) (= (store |v_#memory_int_197| ULTIMATE.start_main_p5 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (select |v_#memory_int_197| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 .cse0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |v_#memory_int_197| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-01-18 14:31:25,754 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p5]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:31:25,801 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:25,803 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:25,804 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:25,805 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:25,806 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:25,807 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:25,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, 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 57 [2019-01-18 14:31:25,811 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:31:25,831 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-18 14:31:25,831 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:43, output treesize:25 [2019-01-18 14:31:28,195 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:31:28,195 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_198|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_198| ULTIMATE.start_main_p4))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= |#memory_int| (store |v_#memory_int_198| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= .cse0 0) (= (select |v_#memory_int_198| ULTIMATE.start_main_p1) 0) (= 0 (select |v_#memory_int_198| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_198| ULTIMATE.start_main_p5) 1))) [2019-01-18 14:31:28,196 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-18 14:31:28,296 INFO L273 TraceCheckUtils]: 0: Hoare triple {13002#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;#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]; {13010#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (exists ((ULTIMATE.start_main_p1 Int)) (and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-18 14:31:28,297 INFO L273 TraceCheckUtils]: 1: Hoare triple {13010#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (exists ((ULTIMATE.start_main_p1 Int)) (and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {13014#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:31:28,299 INFO L273 TraceCheckUtils]: 2: Hoare triple {13014#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (= (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]; {13018#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))) (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:31:28,300 INFO L273 TraceCheckUtils]: 3: Hoare triple {13018#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))) (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p1] >= 0; {13018#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))) (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:31:28,301 INFO L273 TraceCheckUtils]: 4: Hoare triple {13018#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))) (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p2] <= 0; {13018#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))) (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:31:28,302 INFO L273 TraceCheckUtils]: 5: Hoare triple {13018#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))) (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume !(#memory_int[main_p3] >= 0); {13003#false} is VALID [2019-01-18 14:31:28,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-18 14:31:28,303 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:31:28,346 INFO L273 TraceCheckUtils]: 5: Hoare triple {13028#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {13003#false} is VALID [2019-01-18 14:31:28,346 INFO L273 TraceCheckUtils]: 4: Hoare triple {13028#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {13028#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:31:28,347 INFO L273 TraceCheckUtils]: 3: Hoare triple {13028#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {13028#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:31:28,348 INFO L273 TraceCheckUtils]: 2: Hoare triple {13038#(<= 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]; {13028#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:31:28,349 INFO L273 TraceCheckUtils]: 1: Hoare triple {13042#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) 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))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {13038#(<= 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-18 14:31:28,351 INFO L273 TraceCheckUtils]: 0: Hoare triple {13002#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;#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]; {13042#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) 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))) ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:31:28,352 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-18 14:31:28,372 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:31:28,372 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-18 14:31:28,372 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:31:28,372 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-18 14:31:28,372 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:31:28,372 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-18 14:31:28,389 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-18 14:31:28,390 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-18 14:31:28,390 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-18 14:31:28,390 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-18 14:31:28,390 INFO L87 Difference]: Start difference. First operand 74 states and 337 transitions. Second operand 8 states. [2019-01-18 14:31:32,787 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:31:32,787 INFO L93 Difference]: Finished difference Result 100 states and 371 transitions. [2019-01-18 14:31:32,787 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-18 14:31:32,788 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-18 14:31:32,788 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:31:32,788 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:31:32,788 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 54 transitions. [2019-01-18 14:31:32,788 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:31:32,789 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 54 transitions. [2019-01-18 14:31:32,789 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 54 transitions. [2019-01-18 14:31:32,861 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-18 14:31:32,863 INFO L225 Difference]: With dead ends: 100 [2019-01-18 14:31:32,863 INFO L226 Difference]: Without dead ends: 98 [2019-01-18 14:31:32,864 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 15 GetRequests, 4 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-18 14:31:32,864 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 98 states. [2019-01-18 14:31:36,536 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 98 to 75. [2019-01-18 14:31:36,536 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:31:36,536 INFO L82 GeneralOperation]: Start isEquivalent. First operand 98 states. Second operand 75 states. [2019-01-18 14:31:36,536 INFO L74 IsIncluded]: Start isIncluded. First operand 98 states. Second operand 75 states. [2019-01-18 14:31:36,536 INFO L87 Difference]: Start difference. First operand 98 states. Second operand 75 states. [2019-01-18 14:31:36,539 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:31:36,539 INFO L93 Difference]: Finished difference Result 98 states and 368 transitions. [2019-01-18 14:31:36,539 INFO L276 IsEmpty]: Start isEmpty. Operand 98 states and 368 transitions. [2019-01-18 14:31:36,539 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:31:36,540 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:31:36,540 INFO L74 IsIncluded]: Start isIncluded. First operand 75 states. Second operand 98 states. [2019-01-18 14:31:36,540 INFO L87 Difference]: Start difference. First operand 75 states. Second operand 98 states. [2019-01-18 14:31:36,541 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:31:36,541 INFO L93 Difference]: Finished difference Result 98 states and 368 transitions. [2019-01-18 14:31:36,541 INFO L276 IsEmpty]: Start isEmpty. Operand 98 states and 368 transitions. [2019-01-18 14:31:36,542 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:31:36,542 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:31:36,542 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:31:36,542 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:31:36,542 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 75 states. [2019-01-18 14:31:36,544 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 75 states to 75 states and 343 transitions. [2019-01-18 14:31:36,544 INFO L78 Accepts]: Start accepts. Automaton has 75 states and 343 transitions. Word has length 6 [2019-01-18 14:31:36,544 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:31:36,545 INFO L480 AbstractCegarLoop]: Abstraction has 75 states and 343 transitions. [2019-01-18 14:31:36,545 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-18 14:31:36,545 INFO L276 IsEmpty]: Start isEmpty. Operand 75 states and 343 transitions. [2019-01-18 14:31:36,545 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-18 14:31:36,545 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:31:36,545 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-18 14:31:36,545 INFO L423 AbstractCegarLoop]: === Iteration 39 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:31:36,546 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:31:36,546 INFO L82 PathProgramCache]: Analyzing trace with hash 906163226, now seen corresponding path program 1 times [2019-01-18 14:31:36,546 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:31:36,546 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:31:36,546 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:31:36,547 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:31:36,547 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:31:36,550 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:31:36,629 INFO L273 TraceCheckUtils]: 0: Hoare triple {13529#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;#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]; {13531#(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-18 14:31:36,631 INFO L273 TraceCheckUtils]: 1: Hoare triple {13531#(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]; {13532#(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-18 14:31:36,631 INFO L273 TraceCheckUtils]: 2: Hoare triple {13532#(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]; {13533#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:31:36,632 INFO L273 TraceCheckUtils]: 3: Hoare triple {13533#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {13534#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-01-18 14:31:36,632 INFO L273 TraceCheckUtils]: 4: Hoare triple {13534#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume #memory_int[main_p1] >= 0; {13534#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-01-18 14:31:36,633 INFO L273 TraceCheckUtils]: 5: Hoare triple {13534#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume !(#memory_int[main_p2] <= 0); {13530#false} is VALID [2019-01-18 14:31:36,633 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-18 14:31:36,633 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:31:36,633 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:31:36,633 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-18 14:31:36,634 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [20], [24], [25] [2019-01-18 14:31:36,637 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:31:36,637 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:31:36,645 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:31:36,646 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 60 root evaluator evaluations with a maximum evaluation depth of 2. Performed 60 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-18 14:31:36,646 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:31:36,646 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:31:36,646 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:31:36,646 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-18 14:31:36,656 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:31:36,656 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:31:36,660 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:31:36,664 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:31:36,665 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:31:36,702 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:36,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, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 40 [2019-01-18 14:31:36,746 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:36,747 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:36,748 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 42 [2019-01-18 14:31:36,796 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:36,798 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:36,800 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:36,801 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:36,802 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 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 21 treesize of output 25 [2019-01-18 14:31:36,806 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-18 14:31:36,817 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:31:36,831 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:31:36,852 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 3 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-18 14:31:36,860 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 5 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-18 14:31:36,870 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 6 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-18 14:31:36,884 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-18 14:31:36,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, 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-18 14:31:36,905 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-18 14:31:36,924 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:31:36,939 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:31:36,952 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:31:36,963 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:31:36,992 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-18 14:31:36,992 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 4 variables, input treesize:52, output treesize:50 [2019-01-18 14:31:36,999 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:31:37,000 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_201|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, |v_#valid_41|]. (let ((.cse1 (store |v_#valid_41| ULTIMATE.start_main_p1 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p2 1))) (and (= 0 (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4)) (= 0 (select .cse0 ULTIMATE.start_main_p3)) (= 0 (select .cse1 ULTIMATE.start_main_p2)) (= |#memory_int| (store (store (store (store (store |v_#memory_int_201| 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-18 14:31:37,000 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:31:37,075 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:37,104 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 7 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 8 case distinctions, treesize of input 36 treesize of output 66 [2019-01-18 14:31:37,111 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 16 xjuncts. [2019-01-18 14:31:37,295 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 11 dim-0 vars, and 5 xjuncts. [2019-01-18 14:31:37,296 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:60, output treesize:199 [2019-01-18 14:31:39,423 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:31:39,424 WARN L385 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 (= (select |v_#memory_int_202| ULTIMATE.start_main_p4) 0) (= 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_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_202| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= .cse0 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-01-18 14:31:39,424 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [v_prenex_75, v_prenex_74, ULTIMATE.start_main_p5, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, v_prenex_76, v_prenex_77, v_prenex_72, v_prenex_73, v_prenex_79, v_prenex_78]. (let ((.cse3 (select |#memory_int| ULTIMATE.start_main_p1)) (.cse4 (select |#memory_int| ULTIMATE.start_main_p2))) (let ((.cse1 (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1))) (.cse2 (= 0 .cse4)) (.cse0 (= .cse3 0))) (or (and (not (= v_prenex_75 v_prenex_74)) (not (= v_prenex_75 ULTIMATE.start_main_p2)) .cse0 .cse1 (not (= ULTIMATE.start_main_p2 v_prenex_74)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) .cse2 (not (= v_prenex_75 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_75) 0) (not (= ULTIMATE.start_main_p1 v_prenex_74)) (= (select |#memory_int| v_prenex_74) 0)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= .cse3 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) .cse2 (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) (and (not (= ULTIMATE.start_main_p1 v_prenex_76)) (not (= v_prenex_77 ULTIMATE.start_main_p2)) .cse0 .cse1 (= 1 (select |#memory_int| v_prenex_76)) .cse2 (not (= v_prenex_77 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_77) 0)) (and .cse0 .cse1 (not (= ULTIMATE.start_main_p2 v_prenex_72)) (= (select |#memory_int| v_prenex_73) 1) .cse2 (not (= v_prenex_73 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_72) 0) (not (= ULTIMATE.start_main_p1 v_prenex_72))) (and (not (= v_prenex_79 v_prenex_78)) (= 1 .cse4) .cse0 (not (= v_prenex_79 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_79) 0) (= (select |#memory_int| v_prenex_78) 0) (not (= ULTIMATE.start_main_p1 v_prenex_78)))))) [2019-01-18 14:31:39,628 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:39,629 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:39,630 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:39,631 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:39,632 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 51 treesize of output 57 [2019-01-18 14:31:39,635 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:31:39,712 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:39,713 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:39,714 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:39,715 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:39,716 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:31:39,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, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 43 treesize of output 65 [2019-01-18 14:31:39,730 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2019-01-18 14:31:39,800 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:39,801 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:39,802 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:39,804 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:39,805 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:39,805 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:31:39,806 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 43 treesize of output 63 [2019-01-18 14:31:39,809 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-18 14:31:39,872 INFO L267 ElimStorePlain]: Start of recursive call 1: 9 dim-0 vars, 3 dim-1 vars, End of recursive call: 9 dim-0 vars, and 3 xjuncts. [2019-01-18 14:31:39,872 INFO L202 ElimStorePlain]: Needed 4 recursive calls to eliminate 12 variables, input treesize:142, output treesize:92 [2019-01-18 14:31:42,036 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:31:42,036 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_203|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, v_prenex_82, v_prenex_83, v_prenex_73, v_prenex_72, v_prenex_80, v_prenex_81, v_prenex_79, v_prenex_78]. (or (let ((.cse0 (select |v_#memory_int_203| ULTIMATE.start_main_p1))) (and (= (select |v_#memory_int_203| ULTIMATE.start_main_p4) 0) (= |#memory_int| (store |v_#memory_int_203| ULTIMATE.start_main_p1 (+ .cse0 1))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= .cse0 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_203| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_203| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (let ((.cse1 (select v_prenex_82 v_prenex_83))) (and (= 1 (select v_prenex_82 v_prenex_73)) (= .cse1 0) (not (= v_prenex_83 v_prenex_72)) (= |#memory_int| (store v_prenex_82 v_prenex_83 (+ .cse1 1))) (= 0 (select v_prenex_82 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 v_prenex_72)) (not (= ULTIMATE.start_main_p2 v_prenex_83)) (= 0 (select v_prenex_82 v_prenex_72)) (not (= v_prenex_73 v_prenex_83)))) (let ((.cse2 (select v_prenex_80 v_prenex_81))) (and (not (= v_prenex_79 v_prenex_78)) (= .cse2 0) (not (= v_prenex_79 v_prenex_81)) (= |#memory_int| (store v_prenex_80 v_prenex_81 (+ .cse2 1))) (= 0 (select v_prenex_80 v_prenex_78)) (= 0 (select v_prenex_80 v_prenex_79)) (not (= v_prenex_81 v_prenex_78)) (= 1 (select v_prenex_80 ULTIMATE.start_main_p2))))) [2019-01-18 14:31:42,036 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1, v_prenex_83, v_prenex_73, v_prenex_72, v_prenex_79, v_prenex_78, v_prenex_81]. (let ((.cse1 (select |#memory_int| ULTIMATE.start_main_p2))) (let ((.cse0 (= 0 .cse1))) (or (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) .cse0 (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) (and (= 1 (select |#memory_int| v_prenex_83)) (= (select |#memory_int| v_prenex_73) 1) .cse0 (not (= ULTIMATE.start_main_p2 v_prenex_72)) (= 0 (select |#memory_int| v_prenex_72)) (not (= v_prenex_73 v_prenex_83))) (and (not (= v_prenex_79 v_prenex_78)) (= 0 (select |#memory_int| v_prenex_79)) (= (select |#memory_int| v_prenex_81) 1) (= 1 .cse1) (= (select |#memory_int| v_prenex_78) 0) (not (= v_prenex_81 ULTIMATE.start_main_p2)))))) [2019-01-18 14:31:42,182 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:42,183 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:42,184 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:42,185 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:42,186 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:42,188 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:42,188 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 43 treesize of output 65 [2019-01-18 14:31:42,192 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:31:42,261 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:42,262 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:42,263 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:42,264 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:42,265 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:42,266 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:42,267 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:42,268 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 39 treesize of output 61 [2019-01-18 14:31:42,271 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2019-01-18 14:31:42,333 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:42,334 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:42,335 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:42,336 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:42,337 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:42,338 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:31:42,339 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 39 treesize of output 53 [2019-01-18 14:31:42,341 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-18 14:31:42,392 INFO L267 ElimStorePlain]: Start of recursive call 1: 9 dim-0 vars, 3 dim-1 vars, End of recursive call: 9 dim-0 vars, and 3 xjuncts. [2019-01-18 14:31:42,393 INFO L202 ElimStorePlain]: Needed 4 recursive calls to eliminate 12 variables, input treesize:122, output treesize:84 [2019-01-18 14:31:44,455 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:31:44,456 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_204|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1, v_prenex_84, v_prenex_72, v_prenex_83, v_prenex_73, v_prenex_85, v_prenex_79, v_prenex_78, v_prenex_81]. (or (let ((.cse0 (select |v_#memory_int_204| ULTIMATE.start_main_p2))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_204| ULTIMATE.start_main_p1) 2) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= .cse0 0) (= (store |v_#memory_int_204| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_204| ULTIMATE.start_main_p4)) (= (select |v_#memory_int_204| ULTIMATE.start_main_p3) 0))) (let ((.cse1 (select v_prenex_84 ULTIMATE.start_main_p2))) (and (= (store v_prenex_84 ULTIMATE.start_main_p2 (+ .cse1 (- 1))) |#memory_int|) (= (select v_prenex_84 v_prenex_72) 0) (= .cse1 0) (= 1 (select v_prenex_84 v_prenex_83)) (not (= ULTIMATE.start_main_p2 v_prenex_72)) (not (= v_prenex_73 v_prenex_83)) (= (select v_prenex_84 v_prenex_73) 1))) (let ((.cse2 (select v_prenex_85 ULTIMATE.start_main_p2))) (and (not (= v_prenex_79 v_prenex_78)) (= .cse2 1) (= (select v_prenex_85 v_prenex_78) 0) (not (= v_prenex_81 ULTIMATE.start_main_p2)) (= (select v_prenex_85 v_prenex_79) 0) (= 1 (select v_prenex_85 v_prenex_81)) (= (store v_prenex_85 ULTIMATE.start_main_p2 (+ .cse2 (- 1))) |#memory_int|)))) [2019-01-18 14:31:44,456 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [v_prenex_78, v_prenex_79, v_prenex_81, v_prenex_83, v_prenex_73, v_prenex_72, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |#memory_int| ULTIMATE.start_main_p2))) (let ((.cse1 (= (- 1) .cse0))) (or (and (not (= v_prenex_78 ULTIMATE.start_main_p2)) (not (= v_prenex_79 v_prenex_78)) (= 0 (select |#memory_int| v_prenex_79)) (not (= v_prenex_79 ULTIMATE.start_main_p2)) (= (select |#memory_int| v_prenex_81) 1) (= (select |#memory_int| v_prenex_78) 0) (= 0 .cse0)) (and .cse1 (= 1 (select |#memory_int| v_prenex_83)) (= (select |#memory_int| v_prenex_73) 1) (= 0 (select |#memory_int| v_prenex_72)) (not (= v_prenex_73 v_prenex_83))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) .cse1 (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))) [2019-01-18 14:31:44,796 INFO L273 TraceCheckUtils]: 0: Hoare triple {13529#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;#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]; {13538#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-18 14:31:44,809 INFO L273 TraceCheckUtils]: 1: Hoare triple {13538#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {13542#(or (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_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))))) (and (= 1 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_78 Int) (v_prenex_79 Int)) (and (not (= v_prenex_79 v_prenex_78)) (= (select |#memory_int| v_prenex_79) 0) (= (select |#memory_int| v_prenex_78) 0) (not (= v_prenex_79 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 v_prenex_78))))) (and (exists ((v_prenex_73 Int)) (and (= (select |#memory_int| v_prenex_73) 1) (not (= v_prenex_73 ULTIMATE.start_main_p1)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((v_prenex_72 Int)) (and (= (select |#memory_int| v_prenex_72) 0) (not (= ULTIMATE.start_main_p2 v_prenex_72)) (not (= ULTIMATE.start_main_p1 v_prenex_72))))))} is VALID [2019-01-18 14:31:44,816 INFO L273 TraceCheckUtils]: 2: Hoare triple {13542#(or (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_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))))) (and (= 1 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((v_prenex_78 Int) (v_prenex_79 Int)) (and (not (= v_prenex_79 v_prenex_78)) (= (select |#memory_int| v_prenex_79) 0) (= (select |#memory_int| v_prenex_78) 0) (not (= v_prenex_79 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 v_prenex_78))))) (and (exists ((v_prenex_73 Int)) (and (= (select |#memory_int| v_prenex_73) 1) (not (= v_prenex_73 ULTIMATE.start_main_p1)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((v_prenex_72 Int)) (and (= (select |#memory_int| v_prenex_72) 0) (not (= ULTIMATE.start_main_p2 v_prenex_72)) (not (= ULTIMATE.start_main_p1 v_prenex_72))))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {13546#(or (and (= 1 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((v_prenex_81 Int)) (and (= (select |#memory_int| v_prenex_81) 1) (not (= v_prenex_81 ULTIMATE.start_main_p2)))) (exists ((v_prenex_78 Int) (v_prenex_79 Int)) (and (= 0 (select |#memory_int| v_prenex_79)) (not (= v_prenex_79 v_prenex_78)) (= (select |#memory_int| v_prenex_78) 0)))) (and (exists ((v_prenex_73 Int) (v_prenex_83 Int)) (and (= 1 (select |#memory_int| v_prenex_83)) (= (select |#memory_int| v_prenex_73) 1) (not (= v_prenex_73 v_prenex_83)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((v_prenex_72 Int)) (and (= 0 (select |#memory_int| v_prenex_72)) (not (= ULTIMATE.start_main_p2 v_prenex_72))))) (and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)))))} is VALID [2019-01-18 14:31:44,822 INFO L273 TraceCheckUtils]: 3: Hoare triple {13546#(or (and (= 1 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((v_prenex_81 Int)) (and (= (select |#memory_int| v_prenex_81) 1) (not (= v_prenex_81 ULTIMATE.start_main_p2)))) (exists ((v_prenex_78 Int) (v_prenex_79 Int)) (and (= 0 (select |#memory_int| v_prenex_79)) (not (= v_prenex_79 v_prenex_78)) (= (select |#memory_int| v_prenex_78) 0)))) (and (exists ((v_prenex_73 Int) (v_prenex_83 Int)) (and (= 1 (select |#memory_int| v_prenex_83)) (= (select |#memory_int| v_prenex_73) 1) (not (= v_prenex_73 v_prenex_83)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((v_prenex_72 Int)) (and (= 0 (select |#memory_int| v_prenex_72)) (not (= ULTIMATE.start_main_p2 v_prenex_72))))) (and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {13550#(or (and (exists ((v_prenex_81 Int)) (= (select |#memory_int| v_prenex_81) 1)) (exists ((v_prenex_78 Int) (v_prenex_79 Int)) (and (= 0 (select |#memory_int| v_prenex_79)) (not (= v_prenex_79 v_prenex_78)) (not (= v_prenex_78 ULTIMATE.start_main_p2)) (not (= v_prenex_79 ULTIMATE.start_main_p2)) (= (select |#memory_int| v_prenex_78) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2))) (and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 2)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)))) (and (exists ((v_prenex_73 Int) (v_prenex_83 Int)) (and (= 1 (select |#memory_int| v_prenex_83)) (= (select |#memory_int| v_prenex_73) 1) (not (= v_prenex_73 v_prenex_83)))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((v_prenex_72 Int)) (= 0 (select |#memory_int| v_prenex_72)))))} is VALID [2019-01-18 14:31:44,822 INFO L273 TraceCheckUtils]: 4: Hoare triple {13550#(or (and (exists ((v_prenex_81 Int)) (= (select |#memory_int| v_prenex_81) 1)) (exists ((v_prenex_78 Int) (v_prenex_79 Int)) (and (= 0 (select |#memory_int| v_prenex_79)) (not (= v_prenex_79 v_prenex_78)) (not (= v_prenex_78 ULTIMATE.start_main_p2)) (not (= v_prenex_79 ULTIMATE.start_main_p2)) (= (select |#memory_int| v_prenex_78) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2))) (and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 2)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)))) (and (exists ((v_prenex_73 Int) (v_prenex_83 Int)) (and (= 1 (select |#memory_int| v_prenex_83)) (= (select |#memory_int| v_prenex_73) 1) (not (= v_prenex_73 v_prenex_83)))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((v_prenex_72 Int)) (= 0 (select |#memory_int| v_prenex_72)))))} assume #memory_int[main_p1] >= 0; {13550#(or (and (exists ((v_prenex_81 Int)) (= (select |#memory_int| v_prenex_81) 1)) (exists ((v_prenex_78 Int) (v_prenex_79 Int)) (and (= 0 (select |#memory_int| v_prenex_79)) (not (= v_prenex_79 v_prenex_78)) (not (= v_prenex_78 ULTIMATE.start_main_p2)) (not (= v_prenex_79 ULTIMATE.start_main_p2)) (= (select |#memory_int| v_prenex_78) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2))) (and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 2)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)))) (and (exists ((v_prenex_73 Int) (v_prenex_83 Int)) (and (= 1 (select |#memory_int| v_prenex_83)) (= (select |#memory_int| v_prenex_73) 1) (not (= v_prenex_73 v_prenex_83)))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((v_prenex_72 Int)) (= 0 (select |#memory_int| v_prenex_72)))))} is VALID [2019-01-18 14:31:44,824 INFO L273 TraceCheckUtils]: 5: Hoare triple {13550#(or (and (exists ((v_prenex_81 Int)) (= (select |#memory_int| v_prenex_81) 1)) (exists ((v_prenex_78 Int) (v_prenex_79 Int)) (and (= 0 (select |#memory_int| v_prenex_79)) (not (= v_prenex_79 v_prenex_78)) (not (= v_prenex_78 ULTIMATE.start_main_p2)) (not (= v_prenex_79 ULTIMATE.start_main_p2)) (= (select |#memory_int| v_prenex_78) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2))) (and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 2)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)))) (and (exists ((v_prenex_73 Int) (v_prenex_83 Int)) (and (= 1 (select |#memory_int| v_prenex_83)) (= (select |#memory_int| v_prenex_73) 1) (not (= v_prenex_73 v_prenex_83)))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((v_prenex_72 Int)) (= 0 (select |#memory_int| v_prenex_72)))))} assume !(#memory_int[main_p2] <= 0); {13530#false} is VALID [2019-01-18 14:31:44,824 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-18 14:31:44,824 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:31:44,942 INFO L273 TraceCheckUtils]: 5: Hoare triple {13557#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {13530#false} is VALID [2019-01-18 14:31:44,943 INFO L273 TraceCheckUtils]: 4: Hoare triple {13557#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {13557#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:31:44,943 INFO L273 TraceCheckUtils]: 3: Hoare triple {13564#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {13557#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:31:44,944 INFO L273 TraceCheckUtils]: 2: Hoare triple {13568#(<= (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]; {13564#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} is VALID [2019-01-18 14:31:44,946 INFO L273 TraceCheckUtils]: 1: Hoare triple {13572#(<= (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]; {13568#(<= (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-18 14:31:44,948 INFO L273 TraceCheckUtils]: 0: Hoare triple {13529#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;#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]; {13572#(<= (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-18 14:31:44,948 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-18 14:31:44,967 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:31:44,967 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-18 14:31:44,967 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:31:44,968 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-18 14:31:44,968 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:31:44,968 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-18 14:31:44,997 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-18 14:31:44,997 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-18 14:31:44,997 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-18 14:31:44,997 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=60, Invalid=122, Unknown=0, NotChecked=0, Total=182 [2019-01-18 14:31:44,997 INFO L87 Difference]: Start difference. First operand 75 states and 343 transitions. Second operand 10 states. [2019-01-18 14:31:51,636 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:31:51,636 INFO L93 Difference]: Finished difference Result 124 states and 454 transitions. [2019-01-18 14:31:51,636 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-18 14:31:51,636 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-18 14:31:51,637 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:31:51,637 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:31:51,637 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 77 transitions. [2019-01-18 14:31:51,637 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:31:51,637 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 77 transitions. [2019-01-18 14:31:51,637 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 77 transitions. [2019-01-18 14:31:51,769 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-18 14:31:51,771 INFO L225 Difference]: With dead ends: 124 [2019-01-18 14:31:51,771 INFO L226 Difference]: Without dead ends: 123 [2019-01-18 14:31:51,772 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 16 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 33 ImplicationChecksByTransitivity, 1.0s TimeCoverageRelationStatistics Valid=99, Invalid=207, Unknown=0, NotChecked=0, Total=306 [2019-01-18 14:31:51,772 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 123 states. [2019-01-18 14:31:55,789 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 123 to 78. [2019-01-18 14:31:55,789 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:31:55,789 INFO L82 GeneralOperation]: Start isEquivalent. First operand 123 states. Second operand 78 states. [2019-01-18 14:31:55,789 INFO L74 IsIncluded]: Start isIncluded. First operand 123 states. Second operand 78 states. [2019-01-18 14:31:55,789 INFO L87 Difference]: Start difference. First operand 123 states. Second operand 78 states. [2019-01-18 14:31:55,793 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:31:55,793 INFO L93 Difference]: Finished difference Result 123 states and 452 transitions. [2019-01-18 14:31:55,793 INFO L276 IsEmpty]: Start isEmpty. Operand 123 states and 452 transitions. [2019-01-18 14:31:55,793 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:31:55,793 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:31:55,793 INFO L74 IsIncluded]: Start isIncluded. First operand 78 states. Second operand 123 states. [2019-01-18 14:31:55,793 INFO L87 Difference]: Start difference. First operand 78 states. Second operand 123 states. [2019-01-18 14:31:55,795 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:31:55,795 INFO L93 Difference]: Finished difference Result 123 states and 452 transitions. [2019-01-18 14:31:55,795 INFO L276 IsEmpty]: Start isEmpty. Operand 123 states and 452 transitions. [2019-01-18 14:31:55,796 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:31:55,796 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:31:55,796 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:31:55,796 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:31:55,796 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 78 states. [2019-01-18 14:31:55,798 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 78 states to 78 states and 361 transitions. [2019-01-18 14:31:55,798 INFO L78 Accepts]: Start accepts. Automaton has 78 states and 361 transitions. Word has length 6 [2019-01-18 14:31:55,798 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:31:55,798 INFO L480 AbstractCegarLoop]: Abstraction has 78 states and 361 transitions. [2019-01-18 14:31:55,799 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-18 14:31:55,799 INFO L276 IsEmpty]: Start isEmpty. Operand 78 states and 361 transitions. [2019-01-18 14:31:55,799 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-18 14:31:55,799 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:31:55,799 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-18 14:31:55,799 INFO L423 AbstractCegarLoop]: === Iteration 40 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:31:55,800 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:31:55,800 INFO L82 PathProgramCache]: Analyzing trace with hash 906167070, now seen corresponding path program 1 times [2019-01-18 14:31:55,800 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:31:55,800 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:31:55,800 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:31:55,800 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:31:55,800 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:31:55,805 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:31:55,895 INFO L273 TraceCheckUtils]: 0: Hoare triple {14155#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;#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]; {14157#(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-18 14:31:55,896 INFO L273 TraceCheckUtils]: 1: Hoare triple {14157#(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]; {14158#(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-18 14:31:55,897 INFO L273 TraceCheckUtils]: 2: Hoare triple {14158#(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]; {14158#(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-18 14:31:55,898 INFO L273 TraceCheckUtils]: 3: Hoare triple {14158#(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]; {14159#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:31:55,899 INFO L273 TraceCheckUtils]: 4: Hoare triple {14159#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {14159#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:31:55,899 INFO L273 TraceCheckUtils]: 5: Hoare triple {14159#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {14156#false} is VALID [2019-01-18 14:31:55,900 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-18 14:31:55,900 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:31:55,901 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:31:55,901 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-18 14:31:55,901 INFO L207 CegarAbsIntRunner]: [0], [6], [14], [20], [24], [25] [2019-01-18 14:31:55,904 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:31:55,904 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:31:55,926 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:31:55,926 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 60 root evaluator evaluations with a maximum evaluation depth of 2. Performed 60 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-18 14:31:55,926 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:31:55,926 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:31:55,926 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:31:55,926 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-18 14:31:55,942 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:31:55,942 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:31:55,946 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:31:55,951 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:31:55,951 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:31:55,997 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 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 18 treesize of output 21 [2019-01-18 14:31:56,003 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-18 14:31:56,010 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:56,012 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:56,012 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-18 14:31:56,023 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:56,024 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:56,026 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:56,026 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-18 14:31:56,041 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:56,042 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:56,044 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:56,045 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:56,046 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-18 14:31:56,049 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-18 14:31:56,079 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:31:56,096 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:31:56,108 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:31:56,121 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:31:56,150 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:56,151 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 48 treesize of output 54 [2019-01-18 14:31:56,201 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:56,202 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:56,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, 4 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 41 treesize of output 53 [2019-01-18 14:31:56,258 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:56,260 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:56,261 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:56,262 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:56,263 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 32 treesize of output 61 [2019-01-18 14:31:56,330 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:56,332 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:56,333 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:56,334 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:56,335 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:56,336 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:56,337 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 5 select indices, 5 select index equivalence classes, 11 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 41 [2019-01-18 14:31:56,339 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-18 14:31:56,357 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:31:56,374 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:31:56,391 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:31:56,428 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 2 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-18 14:31:56,428 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 3 variables, input treesize:69, output treesize:66 [2019-01-18 14:31:56,435 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:31:56,436 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_208|, ULTIMATE.start_main_p4, |v_#valid_42|]. (let ((.cse1 (store |v_#valid_42| ULTIMATE.start_main_p1 1))) (let ((.cse2 (store .cse1 ULTIMATE.start_main_p2 1))) (let ((.cse0 (store .cse2 ULTIMATE.start_main_p3 1))) (and (= 0 (select (store .cse0 ULTIMATE.start_main_p4 1) ULTIMATE.start_main_p5)) (= (select .cse1 ULTIMATE.start_main_p2) 0) (= 0 (select .cse0 ULTIMATE.start_main_p4)) (= |#memory_int| (store (store (store (store (store |v_#memory_int_208| 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)) (= 0 (select .cse2 ULTIMATE.start_main_p3)))))) [2019-01-18 14:31:56,436 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:31:56,528 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:56,529 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-18 14:31:56,533 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:31:56,569 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-18 14:31:56,569 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:76, output treesize:50 [2019-01-18 14:31:56,585 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:31:56,585 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_209|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_209| ULTIMATE.start_main_p5))) (and (= 0 (select |v_#memory_int_209| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_209| ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= |#memory_int| (store |v_#memory_int_209| ULTIMATE.start_main_p5 (+ .cse0 1))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= .cse0 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_209| ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_209| ULTIMATE.start_main_p3)))) [2019-01-18 14:31:56,586 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:31:56,657 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:56,658 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:56,659 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:56,660 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:56,662 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:56,663 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:56,663 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:31:56,664 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-18 14:31:56,668 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:31:56,706 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-18 14:31:56,706 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:60, output treesize:42 [2019-01-18 14:31:56,755 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:31:56,756 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_210|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_210| ULTIMATE.start_main_p1))) (and (= (store |v_#memory_int_210| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_210| ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= .cse0 0) (= 1 (select |v_#memory_int_210| ULTIMATE.start_main_p5)) (= (select |v_#memory_int_210| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_210| ULTIMATE.start_main_p2) 0))) [2019-01-18 14:31:56,756 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 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) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:31:56,819 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:56,820 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:56,821 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:56,822 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:56,823 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:56,825 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:56,826 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:56,827 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:31:56,827 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:31:56,828 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-18 14:31:56,835 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:31:56,872 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-18 14:31:56,872 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:52, output treesize:42 [2019-01-18 14:31:56,894 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:31:56,894 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_211|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_211| ULTIMATE.start_main_p3))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 1 (select |v_#memory_int_211| ULTIMATE.start_main_p1)) (= |#memory_int| (store |v_#memory_int_211| ULTIMATE.start_main_p3 (+ .cse0 1))) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_211| ULTIMATE.start_main_p5) 1) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_211| ULTIMATE.start_main_p4) 0) (= .cse0 0) (= (select |v_#memory_int_211| ULTIMATE.start_main_p2) 0))) [2019-01-18 14:31:56,894 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 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)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:31:56,960 INFO L273 TraceCheckUtils]: 0: Hoare triple {14155#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;#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]; {14163#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:31:56,962 INFO L273 TraceCheckUtils]: 1: Hoare triple {14163#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {14167#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:31:56,964 INFO L273 TraceCheckUtils]: 2: Hoare triple {14167#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {14171#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:31:56,967 INFO L273 TraceCheckUtils]: 3: Hoare triple {14171#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {14175#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-18 14:31:56,968 INFO L273 TraceCheckUtils]: 4: Hoare triple {14175#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p1] >= 0; {14175#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-18 14:31:56,969 INFO L273 TraceCheckUtils]: 5: Hoare triple {14175#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume !(#memory_int[main_p2] <= 0); {14156#false} is VALID [2019-01-18 14:31:56,969 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-18 14:31:56,970 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:31:57,035 INFO L273 TraceCheckUtils]: 5: Hoare triple {14182#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {14156#false} is VALID [2019-01-18 14:31:57,036 INFO L273 TraceCheckUtils]: 4: Hoare triple {14182#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {14182#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:31:57,037 INFO L273 TraceCheckUtils]: 3: Hoare triple {14189#(<= (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]; {14182#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:31:57,038 INFO L273 TraceCheckUtils]: 2: Hoare triple {14193#(<= (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]; {14189#(<= (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-18 14:31:57,041 INFO L273 TraceCheckUtils]: 1: Hoare triple {14197#(<= (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]; {14193#(<= (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-18 14:31:57,043 INFO L273 TraceCheckUtils]: 0: Hoare triple {14155#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;#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]; {14197#(<= (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-18 14:31:57,043 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-18 14:31:57,066 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:31:57,066 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 4, 4] total 11 [2019-01-18 14:31:57,066 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:31:57,067 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 6 [2019-01-18 14:31:57,067 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:31:57,067 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states. [2019-01-18 14:31:57,217 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-18 14:31:57,217 INFO L459 AbstractCegarLoop]: Interpolant automaton has 9 states [2019-01-18 14:31:57,217 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2019-01-18 14:31:57,217 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=57, Invalid=99, Unknown=0, NotChecked=0, Total=156 [2019-01-18 14:31:57,218 INFO L87 Difference]: Start difference. First operand 78 states and 361 transitions. Second operand 9 states. [2019-01-18 14:32:03,196 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:32:03,197 INFO L93 Difference]: Finished difference Result 114 states and 434 transitions. [2019-01-18 14:32:03,197 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-18 14:32:03,197 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 6 [2019-01-18 14:32:03,197 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:32:03,197 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2019-01-18 14:32:03,198 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 64 transitions. [2019-01-18 14:32:03,198 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2019-01-18 14:32:03,198 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 64 transitions. [2019-01-18 14:32:03,198 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 64 transitions. [2019-01-18 14:32:03,300 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-18 14:32:03,303 INFO L225 Difference]: With dead ends: 114 [2019-01-18 14:32:03,303 INFO L226 Difference]: Without dead ends: 113 [2019-01-18 14:32:03,303 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 17 GetRequests, 2 SyntacticMatches, 1 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 51 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=87, Invalid=153, Unknown=0, NotChecked=0, Total=240 [2019-01-18 14:32:03,304 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 113 states. [2019-01-18 14:32:07,839 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 113 to 84. [2019-01-18 14:32:07,839 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:32:07,839 INFO L82 GeneralOperation]: Start isEquivalent. First operand 113 states. Second operand 84 states. [2019-01-18 14:32:07,839 INFO L74 IsIncluded]: Start isIncluded. First operand 113 states. Second operand 84 states. [2019-01-18 14:32:07,839 INFO L87 Difference]: Start difference. First operand 113 states. Second operand 84 states. [2019-01-18 14:32:07,842 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:32:07,843 INFO L93 Difference]: Finished difference Result 113 states and 432 transitions. [2019-01-18 14:32:07,843 INFO L276 IsEmpty]: Start isEmpty. Operand 113 states and 432 transitions. [2019-01-18 14:32:07,843 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:32:07,843 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:32:07,843 INFO L74 IsIncluded]: Start isIncluded. First operand 84 states. Second operand 113 states. [2019-01-18 14:32:07,843 INFO L87 Difference]: Start difference. First operand 84 states. Second operand 113 states. [2019-01-18 14:32:07,846 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:32:07,846 INFO L93 Difference]: Finished difference Result 113 states and 432 transitions. [2019-01-18 14:32:07,846 INFO L276 IsEmpty]: Start isEmpty. Operand 113 states and 432 transitions. [2019-01-18 14:32:07,846 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:32:07,846 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:32:07,846 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:32:07,846 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:32:07,846 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 84 states. [2019-01-18 14:32:07,848 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 84 states to 84 states and 397 transitions. [2019-01-18 14:32:07,848 INFO L78 Accepts]: Start accepts. Automaton has 84 states and 397 transitions. Word has length 6 [2019-01-18 14:32:07,848 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:32:07,848 INFO L480 AbstractCegarLoop]: Abstraction has 84 states and 397 transitions. [2019-01-18 14:32:07,848 INFO L481 AbstractCegarLoop]: Interpolant automaton has 9 states. [2019-01-18 14:32:07,848 INFO L276 IsEmpty]: Start isEmpty. Operand 84 states and 397 transitions. [2019-01-18 14:32:07,849 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-18 14:32:07,849 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:32:07,849 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-18 14:32:07,849 INFO L423 AbstractCegarLoop]: === Iteration 41 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:32:07,849 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:32:07,849 INFO L82 PathProgramCache]: Analyzing trace with hash 906278546, now seen corresponding path program 2 times [2019-01-18 14:32:07,849 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:32:07,850 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:32:07,850 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:32:07,850 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:32:07,850 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:32:07,853 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:32:08,054 INFO L273 TraceCheckUtils]: 0: Hoare triple {14758#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;#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]; {14760#(and (or (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p5) 0)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (or (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2)) (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)))} is VALID [2019-01-18 14:32:08,056 INFO L273 TraceCheckUtils]: 1: Hoare triple {14760#(and (or (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p5) 0)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (or (= 0 (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p2)) (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {14761#(and (<= (select |#memory_int| ULTIMATE.start_main_p2) 1) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} is VALID [2019-01-18 14:32:08,057 INFO L273 TraceCheckUtils]: 2: Hoare triple {14761#(and (<= (select |#memory_int| ULTIMATE.start_main_p2) 1) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {14762#(and (<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} is VALID [2019-01-18 14:32:08,057 INFO L273 TraceCheckUtils]: 3: Hoare triple {14762#(and (<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {14763#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:32:08,058 INFO L273 TraceCheckUtils]: 4: Hoare triple {14763#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {14763#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:32:08,059 INFO L273 TraceCheckUtils]: 5: Hoare triple {14763#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {14759#false} is VALID [2019-01-18 14:32:08,059 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-18 14:32:08,059 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:32:08,059 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:32:08,060 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-18 14:32:08,060 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-18 14:32:08,060 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:32:08,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 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-18 14:32:08,069 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-18 14:32:08,069 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-18 14:32:08,075 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-18 14:32:08,075 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-18 14:32:08,079 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:32:08,080 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:32:08,125 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 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 18 treesize of output 21 [2019-01-18 14:32:08,132 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-18 14:32:08,139 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,140 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,141 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-18 14:32:08,152 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,154 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,155 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,156 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-18 14:32:08,171 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,172 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,174 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,175 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,176 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-18 14:32:08,180 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-18 14:32:08,210 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:32:08,228 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:32:08,242 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:32:08,254 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:32:08,283 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,284 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 48 treesize of output 54 [2019-01-18 14:32:08,334 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,335 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,336 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 41 treesize of output 53 [2019-01-18 14:32:08,395 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,396 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,397 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,398 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,399 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 32 treesize of output 61 [2019-01-18 14:32:08,468 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,469 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,470 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,471 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,472 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,481 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,482 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 5 select indices, 5 select index equivalence classes, 11 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 41 [2019-01-18 14:32:08,485 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-18 14:32:08,502 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:32:08,519 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:32:08,536 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:32:08,574 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-18 14:32:08,575 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 4 variables, input treesize:69, output treesize:66 [2019-01-18 14:32:08,583 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:32:08,584 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_215|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, |v_#valid_43|]. (let ((.cse1 (store |v_#valid_43| ULTIMATE.start_main_p1 1))) (let ((.cse2 (store .cse1 ULTIMATE.start_main_p2 1))) (let ((.cse0 (store .cse2 ULTIMATE.start_main_p3 1))) (and (= (select (store .cse0 ULTIMATE.start_main_p4 1) ULTIMATE.start_main_p5) 0) (= 0 (select .cse0 ULTIMATE.start_main_p4)) (= (select .cse1 ULTIMATE.start_main_p2) 0) (= 0 (select .cse2 ULTIMATE.start_main_p3)) (= (store (store (store (store (store |v_#memory_int_215| 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-18 14:32:08,584 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (and (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:32:08,660 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,661 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-18 14:32:08,665 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:32:08,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-18 14:32:08,703 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:76, output treesize:50 [2019-01-18 14:32:08,716 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:32:08,716 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_216|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_216| ULTIMATE.start_main_p5))) (and (= (select |v_#memory_int_216| ULTIMATE.start_main_p1) 0) (= 0 (select |v_#memory_int_216| 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) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_216| ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))) [2019-01-18 14:32:08,716 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:32:08,784 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,785 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,786 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,787 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,788 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,790 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,791 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,791 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-18 14:32:08,796 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:32:08,835 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-18 14:32:08,836 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:60, output treesize:38 [2019-01-18 14:32:08,845 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:32:08,846 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_217|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_217| ULTIMATE.start_main_p2))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (store |v_#memory_int_217| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_217| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_217| ULTIMATE.start_main_p5) 1) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 .cse0) (= (select |v_#memory_int_217| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |v_#memory_int_217| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-01-18 14:32:08,846 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p5]. (and (not (= 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)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:32:08,898 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,900 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,901 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,902 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,903 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,904 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,905 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,906 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,907 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,908 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,909 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:08,910 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:32:08,910 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-18 14:32:08,915 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:32:08,955 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-18 14:32:08,955 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:50, output treesize:36 [2019-01-18 14:32:09,037 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:32:09,037 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_218|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_218| ULTIMATE.start_main_p1))) (and (= 0 (select |v_#memory_int_218| ULTIMATE.start_main_p4)) (not (= 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_p3) 0) (= .cse0 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (+ (select |v_#memory_int_218| ULTIMATE.start_main_p2) 1) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (store |v_#memory_int_218| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|))) [2019-01-18 14:32:09,038 WARN L386 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) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-18 14:32:09,084 INFO L273 TraceCheckUtils]: 0: Hoare triple {14758#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;#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]; {14767#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-18 14:32:09,086 INFO L273 TraceCheckUtils]: 1: Hoare triple {14767#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {14771#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-18 14:32:09,087 INFO L273 TraceCheckUtils]: 2: Hoare triple {14771#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {14775#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-18 14:32:09,088 INFO L273 TraceCheckUtils]: 3: Hoare triple {14775#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {14779#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-18 14:32:09,089 INFO L273 TraceCheckUtils]: 4: Hoare triple {14779#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume #memory_int[main_p1] >= 0; {14779#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-18 14:32:09,090 INFO L273 TraceCheckUtils]: 5: Hoare triple {14779#(and (exists ((ULTIMATE.start_main_p5 Int) (ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume !(#memory_int[main_p2] <= 0); {14759#false} is VALID [2019-01-18 14:32:09,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-18 14:32:09,090 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:32:09,140 INFO L273 TraceCheckUtils]: 5: Hoare triple {14763#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {14759#false} is VALID [2019-01-18 14:32:09,141 INFO L273 TraceCheckUtils]: 4: Hoare triple {14763#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {14763#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:32:09,142 INFO L273 TraceCheckUtils]: 3: Hoare triple {14792#(<= (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]; {14763#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:32:09,143 INFO L273 TraceCheckUtils]: 2: Hoare triple {14796#(<= (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_p2) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {14792#(<= (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-18 14:32:09,144 INFO L273 TraceCheckUtils]: 1: Hoare triple {14800#(<= (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_p1 (+ (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) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {14796#(<= (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_p2) 0)} is VALID [2019-01-18 14:32:09,146 INFO L273 TraceCheckUtils]: 0: Hoare triple {14758#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;#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]; {14800#(<= (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_p1 (+ (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) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:32:09,147 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-18 14:32:09,166 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:32:09,166 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-18 14:32:09,166 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:32:09,166 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-18 14:32:09,167 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:32:09,167 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-18 14:32:09,186 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-18 14:32:09,186 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-18 14:32:09,186 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-18 14:32:09,187 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=64, Invalid=92, Unknown=0, NotChecked=0, Total=156 [2019-01-18 14:32:09,187 INFO L87 Difference]: Start difference. First operand 84 states and 397 transitions. Second operand 10 states. [2019-01-18 14:32:18,033 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:32:18,033 INFO L93 Difference]: Finished difference Result 164 states and 664 transitions. [2019-01-18 14:32:18,033 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2019-01-18 14:32:18,033 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-18 14:32:18,033 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:32:18,034 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:32:18,034 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 86 transitions. [2019-01-18 14:32:18,034 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-18 14:32:18,034 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 86 transitions. [2019-01-18 14:32:18,035 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 86 transitions. [2019-01-18 14:32:18,160 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 86 edges. 86 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:32:18,164 INFO L225 Difference]: With dead ends: 164 [2019-01-18 14:32:18,164 INFO L226 Difference]: Without dead ends: 163 [2019-01-18 14:32:18,164 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 15 GetRequests, 3 SyntacticMatches, 0 SemanticMatches, 12 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 57 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=73, Invalid=109, Unknown=0, NotChecked=0, Total=182 [2019-01-18 14:32:18,164 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 163 states. [2019-01-18 14:32:26,142 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 163 to 117. [2019-01-18 14:32:26,142 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:32:26,143 INFO L82 GeneralOperation]: Start isEquivalent. First operand 163 states. Second operand 117 states. [2019-01-18 14:32:26,143 INFO L74 IsIncluded]: Start isIncluded. First operand 163 states. Second operand 117 states. [2019-01-18 14:32:26,143 INFO L87 Difference]: Start difference. First operand 163 states. Second operand 117 states. [2019-01-18 14:32:26,148 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:32:26,149 INFO L93 Difference]: Finished difference Result 163 states and 662 transitions. [2019-01-18 14:32:26,149 INFO L276 IsEmpty]: Start isEmpty. Operand 163 states and 662 transitions. [2019-01-18 14:32:26,149 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:32:26,149 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:32:26,149 INFO L74 IsIncluded]: Start isIncluded. First operand 117 states. Second operand 163 states. [2019-01-18 14:32:26,150 INFO L87 Difference]: Start difference. First operand 117 states. Second operand 163 states. [2019-01-18 14:32:26,165 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:32:26,165 INFO L93 Difference]: Finished difference Result 163 states and 662 transitions. [2019-01-18 14:32:26,165 INFO L276 IsEmpty]: Start isEmpty. Operand 163 states and 662 transitions. [2019-01-18 14:32:26,166 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:32:26,166 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:32:26,166 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:32:26,166 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:32:26,166 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 117 states. [2019-01-18 14:32:26,169 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 117 states to 117 states and 595 transitions. [2019-01-18 14:32:26,170 INFO L78 Accepts]: Start accepts. Automaton has 117 states and 595 transitions. Word has length 6 [2019-01-18 14:32:26,170 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:32:26,170 INFO L480 AbstractCegarLoop]: Abstraction has 117 states and 595 transitions. [2019-01-18 14:32:26,170 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-18 14:32:26,170 INFO L276 IsEmpty]: Start isEmpty. Operand 117 states and 595 transitions. [2019-01-18 14:32:26,170 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-18 14:32:26,170 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:32:26,171 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-18 14:32:26,171 INFO L423 AbstractCegarLoop]: === Iteration 42 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:32:26,171 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:32:26,171 INFO L82 PathProgramCache]: Analyzing trace with hash 906295908, now seen corresponding path program 1 times [2019-01-18 14:32:26,172 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:32:26,172 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:32:26,172 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-18 14:32:26,172 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:32:26,172 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:32:26,175 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:32:26,242 INFO L273 TraceCheckUtils]: 0: Hoare triple {15609#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;#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]; {15611#(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_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:32:26,243 INFO L273 TraceCheckUtils]: 1: Hoare triple {15611#(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_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 1)) ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {15612#(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-18 14:32:26,244 INFO L273 TraceCheckUtils]: 2: Hoare triple {15612#(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]; {15612#(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-18 14:32:26,245 INFO L273 TraceCheckUtils]: 3: Hoare triple {15612#(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)))} assume #memory_int[main_p1] >= 0; {15612#(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-18 14:32:26,246 INFO L273 TraceCheckUtils]: 4: Hoare triple {15612#(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)))} assume #memory_int[main_p2] <= 0; {15613#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-18 14:32:26,246 INFO L273 TraceCheckUtils]: 5: Hoare triple {15613#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume !(#memory_int[main_p3] >= 0); {15610#false} is VALID [2019-01-18 14:32:26,247 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-18 14:32:26,247 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:32:26,247 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:32:26,247 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-18 14:32:26,248 INFO L207 CegarAbsIntRunner]: [0], [10], [20], [24], [26], [27] [2019-01-18 14:32:26,248 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:32:26,249 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:32:26,257 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:32:26,257 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 60 root evaluator evaluations with a maximum evaluation depth of 2. Performed 60 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:32:26,257 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:32:26,257 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:32:26,258 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:32:26,258 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-18 14:32:26,267 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:32:26,267 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:32:26,271 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:32:26,274 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:32:26,275 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:32:26,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 43 treesize of output 39 [2019-01-18 14:32:26,316 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:26,319 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:26,319 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 36 treesize of output 49 [2019-01-18 14:32:26,370 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:26,371 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:26,373 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:26,374 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:26,375 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 32 treesize of output 57 [2019-01-18 14:32:26,439 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:26,441 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:26,442 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:26,443 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:26,444 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:26,446 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:26,447 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 5 select indices, 5 select index equivalence classes, 10 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 37 [2019-01-18 14:32:26,449 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-18 14:32:26,465 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:32:26,479 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:32:26,496 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:32:26,519 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 3 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-18 14:32:26,529 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 6 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-18 14:32:26,541 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 8 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 33 [2019-01-18 14:32:26,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, 9 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 47 [2019-01-18 14:32:26,574 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 27 treesize of output 62 [2019-01-18 14:32:26,577 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-18 14:32:26,602 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:32:26,616 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:32:26,628 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:32:26,639 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:32:26,674 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-18 14:32:26,675 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 4 variables, input treesize:61, output treesize:62 [2019-01-18 14:32:26,683 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:32:26,684 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_222|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, |v_#valid_44|]. (let ((.cse1 (store (store |v_#valid_44| ULTIMATE.start_main_p1 1) ULTIMATE.start_main_p2 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p3 1))) (and (= (select .cse0 ULTIMATE.start_main_p4) 0) (= 0 (select .cse1 ULTIMATE.start_main_p3)) (= (select (store .cse0 ULTIMATE.start_main_p4 1) ULTIMATE.start_main_p5) 0) (= (store (store (store (store (store |v_#memory_int_222| 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-18 14:32:26,684 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (and (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:32:26,770 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:26,771 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 10 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 36 treesize of output 68 [2019-01-18 14:32:26,775 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:32:26,808 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-18 14:32:26,808 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:72, output treesize:46 [2019-01-18 14:32:29,113 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:32:29,113 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_223|, ULTIMATE.start_main_p5, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_223| ULTIMATE.start_main_p5))) (and (= 0 (select |v_#memory_int_223| ULTIMATE.start_main_p3)) (= (store |v_#memory_int_223| ULTIMATE.start_main_p5 (+ .cse0 1)) |#memory_int|) (= .cse0 0) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_223| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_223| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_223| ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))) [2019-01-18 14:32:29,113 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p1, ULTIMATE.start_main_p5]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:32:29,213 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:29,214 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:29,215 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:29,216 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:29,219 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:29,220 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:29,221 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:29,231 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 12 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 2 case distinctions, treesize of input 36 treesize of output 86 [2019-01-18 14:32:29,236 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 2 xjuncts. [2019-01-18 14:32:29,344 INFO L267 ElimStorePlain]: Start of recursive call 1: 4 dim-0 vars, 1 dim-1 vars, End of recursive call: 7 dim-0 vars, and 2 xjuncts. [2019-01-18 14:32:29,345 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 5 variables, input treesize:56, output treesize:72 [2019-01-18 14:32:31,793 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:32:31,793 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_224|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1, ULTIMATE.start_main_p5]. (let ((.cse0 (select |v_#memory_int_224| ULTIMATE.start_main_p2))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_224| ULTIMATE.start_main_p1) 0) (= .cse0 0) (= 0 (select |v_#memory_int_224| ULTIMATE.start_main_p4)) (= (store |v_#memory_int_224| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_224| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_224| ULTIMATE.start_main_p5) 1))) [2019-01-18 14:32:31,793 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [v_prenex_86, ULTIMATE.start_main_p1, v_prenex_88, v_prenex_87, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5]. (let ((.cse0 (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (or (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) .cse0 (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) (and (not (= ULTIMATE.start_main_p3 v_prenex_86)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (- 1) (select |#memory_int| v_prenex_88)) (= 1 (select |#memory_int| v_prenex_87)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) .cse0 (= (select |#memory_int| v_prenex_86) 0) (not (= ULTIMATE.start_main_p1 v_prenex_86))))) [2019-01-18 14:32:31,929 INFO L273 TraceCheckUtils]: 0: Hoare triple {15609#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;#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]; {15617#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:32:31,931 INFO L273 TraceCheckUtils]: 1: Hoare triple {15617#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {15621#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (not (= ULTIMATE.start_main_p3 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_p1 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-18 14:32:31,933 INFO L273 TraceCheckUtils]: 2: Hoare triple {15621#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (not (= ULTIMATE.start_main_p3 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_p1 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {15625#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-18 14:32:31,934 INFO L273 TraceCheckUtils]: 3: Hoare triple {15625#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p1] >= 0; {15625#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-18 14:32:31,935 INFO L273 TraceCheckUtils]: 4: Hoare triple {15625#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p2] <= 0; {15625#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-18 14:32:31,935 INFO L273 TraceCheckUtils]: 5: Hoare triple {15625#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume !(#memory_int[main_p3] >= 0); {15610#false} is VALID [2019-01-18 14:32:31,936 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-18 14:32:31,936 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:32:31,999 INFO L273 TraceCheckUtils]: 5: Hoare triple {15635#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {15610#false} is VALID [2019-01-18 14:32:32,000 INFO L273 TraceCheckUtils]: 4: Hoare triple {15635#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {15635#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:32:32,000 INFO L273 TraceCheckUtils]: 3: Hoare triple {15635#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {15635#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:32:32,001 INFO L273 TraceCheckUtils]: 2: Hoare triple {15645#(<= 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]; {15635#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:32:32,003 INFO L273 TraceCheckUtils]: 1: Hoare triple {15649#(<= 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_p3))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {15645#(<= 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-18 14:32:32,005 INFO L273 TraceCheckUtils]: 0: Hoare triple {15609#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;#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]; {15649#(<= 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_p3))} is VALID [2019-01-18 14:32:32,005 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-18 14:32:32,024 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:32:32,024 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-18 14:32:32,024 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:32:32,024 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-18 14:32:32,025 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:32:32,025 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-18 14:32:32,044 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-18 14:32:32,044 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-18 14:32:32,044 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-18 14:32:32,045 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-18 14:32:32,045 INFO L87 Difference]: Start difference. First operand 117 states and 595 transitions. Second operand 8 states. [2019-01-18 14:32:42,115 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:32:42,116 INFO L93 Difference]: Finished difference Result 160 states and 722 transitions. [2019-01-18 14:32:42,116 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-18 14:32:42,116 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-18 14:32:42,116 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:32:42,116 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:32:42,117 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 54 transitions. [2019-01-18 14:32:42,117 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:32:42,117 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 54 transitions. [2019-01-18 14:32:42,117 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 54 transitions. [2019-01-18 14:32:42,199 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-18 14:32:42,203 INFO L225 Difference]: With dead ends: 160 [2019-01-18 14:32:42,203 INFO L226 Difference]: Without dead ends: 159 [2019-01-18 14:32:42,203 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 16 GetRequests, 4 SyntacticMatches, 1 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-01-18 14:32:42,203 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 159 states. [2019-01-18 14:32:52,730 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 159 to 134. [2019-01-18 14:32:52,730 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:32:52,731 INFO L82 GeneralOperation]: Start isEquivalent. First operand 159 states. Second operand 134 states. [2019-01-18 14:32:52,731 INFO L74 IsIncluded]: Start isIncluded. First operand 159 states. Second operand 134 states. [2019-01-18 14:32:52,731 INFO L87 Difference]: Start difference. First operand 159 states. Second operand 134 states. [2019-01-18 14:32:52,734 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:32:52,734 INFO L93 Difference]: Finished difference Result 159 states and 720 transitions. [2019-01-18 14:32:52,734 INFO L276 IsEmpty]: Start isEmpty. Operand 159 states and 720 transitions. [2019-01-18 14:32:52,735 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:32:52,735 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:32:52,735 INFO L74 IsIncluded]: Start isIncluded. First operand 134 states. Second operand 159 states. [2019-01-18 14:32:52,735 INFO L87 Difference]: Start difference. First operand 134 states. Second operand 159 states. [2019-01-18 14:32:52,738 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:32:52,739 INFO L93 Difference]: Finished difference Result 159 states and 720 transitions. [2019-01-18 14:32:52,739 INFO L276 IsEmpty]: Start isEmpty. Operand 159 states and 720 transitions. [2019-01-18 14:32:52,739 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:32:52,739 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:32:52,739 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:32:52,739 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:32:52,739 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 134 states. [2019-01-18 14:32:52,742 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 134 states to 134 states and 697 transitions. [2019-01-18 14:32:52,742 INFO L78 Accepts]: Start accepts. Automaton has 134 states and 697 transitions. Word has length 6 [2019-01-18 14:32:52,742 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:32:52,742 INFO L480 AbstractCegarLoop]: Abstraction has 134 states and 697 transitions. [2019-01-18 14:32:52,742 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-18 14:32:52,742 INFO L276 IsEmpty]: Start isEmpty. Operand 134 states and 697 transitions. [2019-01-18 14:32:52,743 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-18 14:32:52,743 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:32:52,743 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-18 14:32:52,743 INFO L423 AbstractCegarLoop]: === Iteration 43 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:32:52,743 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:32:52,743 INFO L82 PathProgramCache]: Analyzing trace with hash 893604942, now seen corresponding path program 1 times [2019-01-18 14:32:52,743 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:32:52,744 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:32:52,744 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:32:52,744 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:32:52,744 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:32:52,748 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:32:52,836 INFO L273 TraceCheckUtils]: 0: Hoare triple {16494#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;#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]; {16496#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (or (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:32:52,837 INFO L273 TraceCheckUtils]: 1: Hoare triple {16496#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (or (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {16496#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (or (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:32:52,838 INFO L273 TraceCheckUtils]: 2: Hoare triple {16496#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (or (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {16497#(or (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:32:52,839 INFO L273 TraceCheckUtils]: 3: Hoare triple {16497#(or (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p1] >= 0; {16498#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:32:52,840 INFO L273 TraceCheckUtils]: 4: Hoare triple {16498#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {16498#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:32:52,840 INFO L273 TraceCheckUtils]: 5: Hoare triple {16498#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {16495#false} is VALID [2019-01-18 14:32:52,841 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-18 14:32:52,841 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:32:52,841 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:32:52,841 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-18 14:32:52,841 INFO L207 CegarAbsIntRunner]: [0], [6], [18], [24], [26], [27] [2019-01-18 14:32:52,842 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:32:52,842 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:32:52,852 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:32:52,852 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 60 root evaluator evaluations with a maximum evaluation depth of 2. Performed 60 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:32:52,853 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:32:52,853 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:32:52,853 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:32:52,853 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-18 14:32:52,863 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:32:52,863 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:32:52,867 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:32:52,870 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:32:52,871 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:32:52,886 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-18 14:32:52,894 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-18 14:32:52,903 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:52,905 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:52,906 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 33 [2019-01-18 14:32:52,918 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:52,919 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:52,920 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:52,921 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 5 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 47 [2019-01-18 14:32:52,942 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 5 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 46 [2019-01-18 14:32:52,948 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-18 14:32:52,969 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:32:52,983 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:32:52,995 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:32:53,007 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:32:53,027 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 25 [2019-01-18 14:32:53,048 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:53,050 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:53,051 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 22 treesize of output 38 [2019-01-18 14:32:53,094 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:53,095 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:53,097 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:53,098 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:53,099 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 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 21 treesize of output 21 [2019-01-18 14:32:53,102 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-18 14:32:53,112 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:32:53,122 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:32:53,147 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-18 14:32:53,148 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 4 variables, input treesize:44, output treesize:46 [2019-01-18 14:32:53,154 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:32:53,155 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_227|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p5, |v_#valid_45|]. (let ((.cse0 (store (store |v_#valid_45| ULTIMATE.start_main_p1 1) ULTIMATE.start_main_p2 1))) (and (= 0 (select .cse0 ULTIMATE.start_main_p3)) (= 0 (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4)) (= |#memory_int| (store (store (store (store (store |v_#memory_int_227| 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-18 14:32:53,155 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p5, ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:32:53,222 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:53,224 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-18 14:32:53,229 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:32:53,243 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-18 14:32:53,244 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:38, output treesize:20 [2019-01-18 14:32:55,448 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:32:55,448 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_228|, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_228| ULTIMATE.start_main_p1))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 .cse0) (= (select |v_#memory_int_228| ULTIMATE.start_main_p3) 0) (= 0 (select |v_#memory_int_228| ULTIMATE.start_main_p4)) (= |#memory_int| (store |v_#memory_int_228| ULTIMATE.start_main_p1 (+ .cse0 1))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-01-18 14:32:55,448 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:32:55,542 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:55,543 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:55,544 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:55,545 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:55,546 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:32:55,547 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-18 14:32:55,551 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:32:55,567 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-18 14:32:55,567 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:30, output treesize:16 [2019-01-18 14:32:55,596 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:32:55,596 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_229|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_229| ULTIMATE.start_main_p4))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 .cse0) (= (select |v_#memory_int_229| ULTIMATE.start_main_p1) 1) (= (store |v_#memory_int_229| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= 0 (select |v_#memory_int_229| ULTIMATE.start_main_p3)))) [2019-01-18 14:32:55,596 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-18 14:32:55,638 INFO L273 TraceCheckUtils]: 0: Hoare triple {16494#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;#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]; {16502#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-18 14:32:55,640 INFO L273 TraceCheckUtils]: 1: Hoare triple {16502#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {16506#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:32:55,641 INFO L273 TraceCheckUtils]: 2: Hoare triple {16506#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (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]; {16510#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:32:55,642 INFO L273 TraceCheckUtils]: 3: Hoare triple {16510#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p1] >= 0; {16510#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:32:55,643 INFO L273 TraceCheckUtils]: 4: Hoare triple {16510#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p2] <= 0; {16510#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:32:55,643 INFO L273 TraceCheckUtils]: 5: Hoare triple {16510#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume !(#memory_int[main_p3] >= 0); {16495#false} is VALID [2019-01-18 14:32:55,644 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-18 14:32:55,644 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:32:55,686 INFO L273 TraceCheckUtils]: 5: Hoare triple {16498#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {16495#false} is VALID [2019-01-18 14:32:55,687 INFO L273 TraceCheckUtils]: 4: Hoare triple {16498#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {16498#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:32:55,687 INFO L273 TraceCheckUtils]: 3: Hoare triple {16498#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {16498#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:32:55,689 INFO L273 TraceCheckUtils]: 2: Hoare triple {16529#(<= 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]; {16498#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:32:55,690 INFO L273 TraceCheckUtils]: 1: Hoare triple {16533#(<= 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_p3))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {16529#(<= 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-18 14:32:55,692 INFO L273 TraceCheckUtils]: 0: Hoare triple {16494#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;#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]; {16533#(<= 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_p3))} is VALID [2019-01-18 14:32:55,692 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-18 14:32:55,711 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:32:55,712 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 8 [2019-01-18 14:32:55,712 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:32:55,712 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-18 14:32:55,712 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:32:55,712 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-18 14:32:55,728 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-18 14:32:55,728 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-18 14:32:55,729 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-18 14:32:55,729 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=32, Invalid=58, Unknown=0, NotChecked=0, Total=90 [2019-01-18 14:32:55,729 INFO L87 Difference]: Start difference. First operand 134 states and 697 transitions. Second operand 8 states. [2019-01-18 14:33:09,308 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:33:09,308 INFO L93 Difference]: Finished difference Result 175 states and 783 transitions. [2019-01-18 14:33:09,308 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-18 14:33:09,308 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-18 14:33:09,309 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:33:09,309 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:33:09,309 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 63 transitions. [2019-01-18 14:33:09,309 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:33:09,309 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 63 transitions. [2019-01-18 14:33:09,310 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 63 transitions. [2019-01-18 14:33:09,382 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-18 14:33:09,386 INFO L225 Difference]: With dead ends: 175 [2019-01-18 14:33:09,386 INFO L226 Difference]: Without dead ends: 174 [2019-01-18 14:33:09,386 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 16 GetRequests, 5 SyntacticMatches, 1 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 19 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=50, Invalid=82, Unknown=0, NotChecked=0, Total=132 [2019-01-18 14:33:09,387 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 174 states. [2019-01-18 14:33:22,637 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 174 to 132. [2019-01-18 14:33:22,637 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:33:22,637 INFO L82 GeneralOperation]: Start isEquivalent. First operand 174 states. Second operand 132 states. [2019-01-18 14:33:22,637 INFO L74 IsIncluded]: Start isIncluded. First operand 174 states. Second operand 132 states. [2019-01-18 14:33:22,637 INFO L87 Difference]: Start difference. First operand 174 states. Second operand 132 states. [2019-01-18 14:33:22,642 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:33:22,643 INFO L93 Difference]: Finished difference Result 174 states and 780 transitions. [2019-01-18 14:33:22,643 INFO L276 IsEmpty]: Start isEmpty. Operand 174 states and 780 transitions. [2019-01-18 14:33:22,643 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:33:22,643 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:33:22,644 INFO L74 IsIncluded]: Start isIncluded. First operand 132 states. Second operand 174 states. [2019-01-18 14:33:22,644 INFO L87 Difference]: Start difference. First operand 132 states. Second operand 174 states. [2019-01-18 14:33:22,648 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:33:22,648 INFO L93 Difference]: Finished difference Result 174 states and 780 transitions. [2019-01-18 14:33:22,648 INFO L276 IsEmpty]: Start isEmpty. Operand 174 states and 780 transitions. [2019-01-18 14:33:22,648 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:33:22,648 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:33:22,649 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:33:22,649 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:33:22,649 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 132 states. [2019-01-18 14:33:22,651 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 132 states to 132 states and 685 transitions. [2019-01-18 14:33:22,651 INFO L78 Accepts]: Start accepts. Automaton has 132 states and 685 transitions. Word has length 6 [2019-01-18 14:33:22,652 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:33:22,652 INFO L480 AbstractCegarLoop]: Abstraction has 132 states and 685 transitions. [2019-01-18 14:33:22,652 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-18 14:33:22,652 INFO L276 IsEmpty]: Start isEmpty. Operand 132 states and 685 transitions. [2019-01-18 14:33:22,652 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-18 14:33:22,652 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:33:22,652 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-18 14:33:22,652 INFO L423 AbstractCegarLoop]: === Iteration 44 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:33:22,653 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:33:22,653 INFO L82 PathProgramCache]: Analyzing trace with hash 893366614, now seen corresponding path program 1 times [2019-01-18 14:33:22,653 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:33:22,653 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:33:22,653 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:33:22,653 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:33:22,653 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:33:22,658 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:33:22,919 INFO L273 TraceCheckUtils]: 0: Hoare triple {17428#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;#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]; {17430#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (or (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:33:22,921 INFO L273 TraceCheckUtils]: 1: Hoare triple {17430#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (or (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {17430#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (or (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:33:22,922 INFO L273 TraceCheckUtils]: 2: Hoare triple {17430#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (or (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {17430#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (or (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:33:22,923 INFO L273 TraceCheckUtils]: 3: Hoare triple {17430#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (or (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} assume #memory_int[main_p1] >= 0; {17431#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= 0 (select |#memory_int| ULTIMATE.start_main_p3)))} is VALID [2019-01-18 14:33:22,923 INFO L273 TraceCheckUtils]: 4: Hoare triple {17431#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= 0 (select |#memory_int| ULTIMATE.start_main_p3)))} assume #memory_int[main_p2] <= 0; {17432#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:33:22,924 INFO L273 TraceCheckUtils]: 5: Hoare triple {17432#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {17429#false} is VALID [2019-01-18 14:33:22,924 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2019-01-18 14:33:22,925 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2019-01-18 14:33:22,925 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [3] imperfect sequences [] total 3 [2019-01-18 14:33:22,925 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-18 14:33:22,925 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 6 [2019-01-18 14:33:22,925 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:33:22,925 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states. [2019-01-18 14:33:22,933 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-18 14:33:22,933 INFO L459 AbstractCegarLoop]: Interpolant automaton has 5 states [2019-01-18 14:33:22,934 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2019-01-18 14:33:22,934 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=8, Invalid=12, Unknown=0, NotChecked=0, Total=20 [2019-01-18 14:33:22,934 INFO L87 Difference]: Start difference. First operand 132 states and 685 transitions. Second operand 5 states. [2019-01-18 14:33:39,577 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:33:39,578 INFO L93 Difference]: Finished difference Result 185 states and 858 transitions. [2019-01-18 14:33:39,578 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-18 14:33:39,578 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 6 [2019-01-18 14:33:39,578 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:33:39,578 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2019-01-18 14:33:39,579 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 39 transitions. [2019-01-18 14:33:39,579 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2019-01-18 14:33:39,580 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 39 transitions. [2019-01-18 14:33:39,580 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 39 transitions. [2019-01-18 14:33:39,624 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 39 edges. 39 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:33:39,628 INFO L225 Difference]: With dead ends: 185 [2019-01-18 14:33:39,628 INFO L226 Difference]: Without dead ends: 184 [2019-01-18 14:33:39,628 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 6 GetRequests, 0 SyntacticMatches, 2 SemanticMatches, 4 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=13, Invalid=17, Unknown=0, NotChecked=0, Total=30 [2019-01-18 14:33:39,629 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 184 states. [2019-01-18 14:33:52,567 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 184 to 132. [2019-01-18 14:33:52,567 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:33:52,567 INFO L82 GeneralOperation]: Start isEquivalent. First operand 184 states. Second operand 132 states. [2019-01-18 14:33:52,567 INFO L74 IsIncluded]: Start isIncluded. First operand 184 states. Second operand 132 states. [2019-01-18 14:33:52,567 INFO L87 Difference]: Start difference. First operand 184 states. Second operand 132 states. [2019-01-18 14:33:52,575 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:33:52,575 INFO L93 Difference]: Finished difference Result 184 states and 856 transitions. [2019-01-18 14:33:52,575 INFO L276 IsEmpty]: Start isEmpty. Operand 184 states and 856 transitions. [2019-01-18 14:33:52,576 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:33:52,576 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:33:52,576 INFO L74 IsIncluded]: Start isIncluded. First operand 132 states. Second operand 184 states. [2019-01-18 14:33:52,576 INFO L87 Difference]: Start difference. First operand 132 states. Second operand 184 states. [2019-01-18 14:33:52,585 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:33:52,585 INFO L93 Difference]: Finished difference Result 184 states and 856 transitions. [2019-01-18 14:33:52,585 INFO L276 IsEmpty]: Start isEmpty. Operand 184 states and 856 transitions. [2019-01-18 14:33:52,585 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:33:52,586 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:33:52,586 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:33:52,586 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:33:52,586 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 132 states. [2019-01-18 14:33:52,592 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 132 states to 132 states and 685 transitions. [2019-01-18 14:33:52,593 INFO L78 Accepts]: Start accepts. Automaton has 132 states and 685 transitions. Word has length 6 [2019-01-18 14:33:52,593 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:33:52,593 INFO L480 AbstractCegarLoop]: Abstraction has 132 states and 685 transitions. [2019-01-18 14:33:52,593 INFO L481 AbstractCegarLoop]: Interpolant automaton has 5 states. [2019-01-18 14:33:52,593 INFO L276 IsEmpty]: Start isEmpty. Operand 132 states and 685 transitions. [2019-01-18 14:33:52,593 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-18 14:33:52,593 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:33:52,594 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-18 14:33:52,594 INFO L423 AbstractCegarLoop]: === Iteration 45 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:33:52,594 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:33:52,594 INFO L82 PathProgramCache]: Analyzing trace with hash 897299026, now seen corresponding path program 1 times [2019-01-18 14:33:52,594 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:33:52,595 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:33:52,595 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:33:52,595 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:33:52,595 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:33:52,598 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:33:52,734 INFO L273 TraceCheckUtils]: 0: Hoare triple {18368#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;#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]; {18370#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (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-18 14:33:52,735 INFO L273 TraceCheckUtils]: 1: Hoare triple {18370#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (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]; {18370#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (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-18 14:33:52,738 INFO L273 TraceCheckUtils]: 2: Hoare triple {18370#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (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_p4 := #memory_int[main_p4] - 1]; {18371#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:33:52,738 INFO L273 TraceCheckUtils]: 3: Hoare triple {18371#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p1] >= 0; {18371#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:33:52,738 INFO L273 TraceCheckUtils]: 4: Hoare triple {18371#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p2] <= 0; {18372#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-18 14:33:52,739 INFO L273 TraceCheckUtils]: 5: Hoare triple {18372#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume !(#memory_int[main_p3] >= 0); {18369#false} is VALID [2019-01-18 14:33:52,739 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-18 14:33:52,739 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:33:52,739 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:33:52,739 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-18 14:33:52,740 INFO L207 CegarAbsIntRunner]: [0], [10], [18], [24], [26], [27] [2019-01-18 14:33:52,741 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:33:52,741 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:33:52,749 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:33:52,749 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 60 root evaluator evaluations with a maximum evaluation depth of 2. Performed 60 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:33:52,750 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:33:52,750 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:33:52,750 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:33:52,750 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-18 14:33:52,760 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:33:52,760 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:33:52,764 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:33:52,768 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:33:52,769 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:33:52,787 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 25 [2019-01-18 14:33:52,811 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:33:52,813 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:33:52,814 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 22 treesize of output 38 [2019-01-18 14:33:52,868 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:33:52,869 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:33:52,872 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:33:52,873 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:33:52,873 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 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 21 treesize of output 21 [2019-01-18 14:33:52,877 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-18 14:33:52,886 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:33:52,897 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:33:52,914 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 2 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-18 14:33:52,924 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 4 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-18 14:33:52,938 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 5 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 33 [2019-01-18 14:33:52,953 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 5 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 47 [2019-01-18 14:33:52,974 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 5 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 46 [2019-01-18 14:33:52,980 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-18 14:33:52,999 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:33:53,013 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:33:53,026 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:33:53,039 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:33:53,061 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-18 14:33:53,062 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 4 variables, input treesize:44, output treesize:46 [2019-01-18 14:33:53,069 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:33:53,069 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_232|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p5, |v_#valid_46|]. (let ((.cse0 (store (store |v_#valid_46| ULTIMATE.start_main_p1 1) ULTIMATE.start_main_p2 1))) (and (= 0 (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4)) (= (store (store (store (store (store |v_#memory_int_232| 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|) (= 0 (select .cse0 ULTIMATE.start_main_p3)))) [2019-01-18 14:33:53,070 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p5, ULTIMATE.start_main_p1]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:33:53,144 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:33:53,145 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-18 14:33:53,149 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:33:53,164 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-18 14:33:53,164 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:38, output treesize:20 [2019-01-18 14:33:55,341 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:33:55,341 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_233|, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_233| ULTIMATE.start_main_p2))) (and (= 0 (select |v_#memory_int_233| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= .cse0 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= |#memory_int| (store |v_#memory_int_233| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= 0 (select |v_#memory_int_233| ULTIMATE.start_main_p4)))) [2019-01-18 14:33:55,341 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:33:55,460 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:33:55,461 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:33:55,462 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:33:55,463 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:33:55,464 INFO L683 Elim1Store]: detected equality via solver [2019-01-18 14:33:55,465 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 28 treesize of output 41 [2019-01-18 14:33:55,470 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:33:55,488 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-18 14:33:55,488 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:32, output treesize:22 [2019-01-18 14:33:57,920 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:33:57,920 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_234|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_234| ULTIMATE.start_main_p4))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (+ (select |v_#memory_int_234| ULTIMATE.start_main_p2) 1) 0) (= .cse0 0) (= 0 (select |v_#memory_int_234| ULTIMATE.start_main_p3)) (= (store |v_#memory_int_234| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|))) [2019-01-18 14:33:57,921 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-18 14:33:58,115 INFO L273 TraceCheckUtils]: 0: Hoare triple {18368#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;#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]; {18376#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:33:58,116 INFO L273 TraceCheckUtils]: 1: Hoare triple {18376#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {18380#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (exists ((ULTIMATE.start_main_p2 Int)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-18 14:33:58,118 INFO L273 TraceCheckUtils]: 2: Hoare triple {18380#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (exists ((ULTIMATE.start_main_p2 Int)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1))) (= (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]; {18384#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int)) (and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:33:58,118 INFO L273 TraceCheckUtils]: 3: Hoare triple {18384#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int)) (and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p1] >= 0; {18384#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int)) (and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:33:58,119 INFO L273 TraceCheckUtils]: 4: Hoare triple {18384#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int)) (and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p2] <= 0; {18384#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int)) (and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-18 14:33:58,120 INFO L273 TraceCheckUtils]: 5: Hoare triple {18384#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int)) (and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume !(#memory_int[main_p3] >= 0); {18369#false} is VALID [2019-01-18 14:33:58,120 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-18 14:33:58,121 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:33:58,178 INFO L273 TraceCheckUtils]: 5: Hoare triple {18394#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {18369#false} is VALID [2019-01-18 14:33:58,179 INFO L273 TraceCheckUtils]: 4: Hoare triple {18394#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {18394#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:33:58,179 INFO L273 TraceCheckUtils]: 3: Hoare triple {18394#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {18394#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:33:58,181 INFO L273 TraceCheckUtils]: 2: Hoare triple {18404#(<= 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]; {18394#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:33:58,182 INFO L273 TraceCheckUtils]: 1: Hoare triple {18408#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {18404#(<= 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-18 14:33:58,184 INFO L273 TraceCheckUtils]: 0: Hoare triple {18368#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;#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]; {18408#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-18 14:33:58,184 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-18 14:33:58,203 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:33:58,203 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-18 14:33:58,203 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:33:58,204 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-18 14:33:58,204 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:33:58,204 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-18 14:33:58,219 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-18 14:33:58,219 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-18 14:33:58,220 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-18 14:33:58,220 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=41, Invalid=69, Unknown=0, NotChecked=0, Total=110 [2019-01-18 14:33:58,220 INFO L87 Difference]: Start difference. First operand 132 states and 685 transitions. Second operand 8 states. [2019-01-18 14:34:11,691 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:34:11,692 INFO L93 Difference]: Finished difference Result 142 states and 698 transitions. [2019-01-18 14:34:11,692 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-18 14:34:11,692 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-18 14:34:11,692 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:34:11,692 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:34:11,692 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 44 transitions. [2019-01-18 14:34:11,693 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-18 14:34:11,693 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 44 transitions. [2019-01-18 14:34:11,693 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 44 transitions. [2019-01-18 14:34:11,797 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 44 edges. 44 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-18 14:34:11,800 INFO L225 Difference]: With dead ends: 142 [2019-01-18 14:34:11,800 INFO L226 Difference]: Without dead ends: 141 [2019-01-18 14:34:11,800 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 16 GetRequests, 4 SyntacticMatches, 1 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 30 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=59, Invalid=97, Unknown=0, NotChecked=0, Total=156 [2019-01-18 14:34:11,800 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 141 states. [2019-01-18 14:34:24,755 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 141 to 130. [2019-01-18 14:34:24,755 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:34:24,756 INFO L82 GeneralOperation]: Start isEquivalent. First operand 141 states. Second operand 130 states. [2019-01-18 14:34:24,756 INFO L74 IsIncluded]: Start isIncluded. First operand 141 states. Second operand 130 states. [2019-01-18 14:34:24,756 INFO L87 Difference]: Start difference. First operand 141 states. Second operand 130 states. [2019-01-18 14:34:24,761 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:34:24,761 INFO L93 Difference]: Finished difference Result 141 states and 696 transitions. [2019-01-18 14:34:24,761 INFO L276 IsEmpty]: Start isEmpty. Operand 141 states and 696 transitions. [2019-01-18 14:34:24,761 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:34:24,761 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:34:24,762 INFO L74 IsIncluded]: Start isIncluded. First operand 130 states. Second operand 141 states. [2019-01-18 14:34:24,762 INFO L87 Difference]: Start difference. First operand 130 states. Second operand 141 states. [2019-01-18 14:34:24,769 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:34:24,770 INFO L93 Difference]: Finished difference Result 141 states and 696 transitions. [2019-01-18 14:34:24,770 INFO L276 IsEmpty]: Start isEmpty. Operand 141 states and 696 transitions. [2019-01-18 14:34:24,770 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:34:24,770 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:34:24,770 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:34:24,770 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:34:24,770 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 130 states. [2019-01-18 14:34:24,773 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 130 states to 130 states and 682 transitions. [2019-01-18 14:34:24,773 INFO L78 Accepts]: Start accepts. Automaton has 130 states and 682 transitions. Word has length 6 [2019-01-18 14:34:24,773 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:34:24,773 INFO L480 AbstractCegarLoop]: Abstraction has 130 states and 682 transitions. [2019-01-18 14:34:24,773 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-18 14:34:24,774 INFO L276 IsEmpty]: Start isEmpty. Operand 130 states and 682 transitions. [2019-01-18 14:34:24,774 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-18 14:34:24,774 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:34:24,774 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1] [2019-01-18 14:34:24,774 INFO L423 AbstractCegarLoop]: === Iteration 46 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:34:24,774 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:34:24,775 INFO L82 PathProgramCache]: Analyzing trace with hash 897354700, now seen corresponding path program 1 times [2019-01-18 14:34:24,775 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:34:24,775 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:34:24,775 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:34:24,775 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:34:24,775 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:34:24,779 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:34:25,027 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;#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_p2 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-18 14:34:25,028 INFO L273 TraceCheckUtils]: 1: Hoare triple {19194#(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]; {19195#(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) 1) 0))} is VALID [2019-01-18 14:34:25,029 INFO L273 TraceCheckUtils]: 2: Hoare triple {19195#(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) 1) 0))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {19195#(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) 1) 0))} is VALID [2019-01-18 14:34:25,030 INFO L273 TraceCheckUtils]: 3: Hoare triple {19195#(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) 1) 0))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {19196#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:34:25,030 INFO L273 TraceCheckUtils]: 4: Hoare triple {19196#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {19196#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:34:25,030 INFO L273 TraceCheckUtils]: 5: Hoare triple {19196#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {19193#false} is VALID [2019-01-18 14:34:25,031 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-18 14:34:25,031 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:34:25,031 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:34:25,031 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-18 14:34:25,031 INFO L207 CegarAbsIntRunner]: [0], [10], [20], [24], [25] [2019-01-18 14:34:25,033 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-18 14:34:25,033 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-18 14:34:25,038 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-18 14:34:25,038 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 2. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-18 14:34:25,038 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:34:25,039 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-18 14:34:25,039 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:34:25,039 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-18 14:34:25,049 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:34:25,049 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-18 14:34:25,053 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:34:25,059 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:34:25,059 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:34:25,082 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-18 14:34:25,091 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-18 14:34:25,101 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:34:25,102 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:34:25,103 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 33 [2019-01-18 14:34:25,117 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:34:25,118 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:34:25,120 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:34:25,120 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 5 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 25 treesize of output 47 [2019-01-18 14:34:25,138 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:34:25,141 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:34:25,142 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:34:25,143 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:34:25,144 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 27 treesize of output 62 [2019-01-18 14:34:25,158 INFO L267 ElimStorePlain]: Start of recursive call 6: End of recursive call: and 1 xjuncts. [2019-01-18 14:34:25,187 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:34:25,205 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:34:25,219 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:34:25,232 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:34:25,255 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 43 treesize of output 39 [2019-01-18 14:34:25,285 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:34:25,287 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:34:25,288 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 36 treesize of output 49 [2019-01-18 14:34:25,343 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:34:25,345 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:34:25,347 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:34:25,348 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:34:25,349 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 32 treesize of output 57 [2019-01-18 14:34:25,418 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:34:25,419 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:34:25,420 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:34:25,421 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:34:25,423 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:34:25,425 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:34:25,425 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 5 select indices, 5 select index equivalence classes, 10 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 37 [2019-01-18 14:34:25,430 INFO L267 ElimStorePlain]: Start of recursive call 10: End of recursive call: and 1 xjuncts. [2019-01-18 14:34:25,451 INFO L267 ElimStorePlain]: Start of recursive call 9: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:34:25,465 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:34:25,483 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:34:25,527 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 2 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-18 14:34:25,527 INFO L202 ElimStorePlain]: Needed 10 recursive calls to eliminate 5 variables, input treesize:61, output treesize:62 [2019-01-18 14:34:25,537 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:34:25,538 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_237|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, |v_#valid_47|]. (let ((.cse0 (store (store |v_#valid_47| ULTIMATE.start_main_p1 1) ULTIMATE.start_main_p2 1))) (let ((.cse1 (store .cse0 ULTIMATE.start_main_p3 1))) (and (= 0 (select .cse0 ULTIMATE.start_main_p3)) (= (store (store (store (store (store |v_#memory_int_237| 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|) (= 0 (select (store .cse1 ULTIMATE.start_main_p4 1) ULTIMATE.start_main_p5)) (= 0 (select .cse1 ULTIMATE.start_main_p4))))) [2019-01-18 14:34:25,538 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p1]. (and (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:34:25,638 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:34:25,647 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 10 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 2 case distinctions, treesize of input 36 treesize of output 72 [2019-01-18 14:34:25,662 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 2 xjuncts. [2019-01-18 14:34:25,775 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 5 dim-0 vars, and 2 xjuncts. [2019-01-18 14:34:25,776 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:72, output treesize:92 [2019-01-18 14:34:25,832 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:34:25,833 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_238|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_238| ULTIMATE.start_main_p2))) (and (= 0 .cse0) (= 0 (select |v_#memory_int_238| ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (store |v_#memory_int_238| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_238| ULTIMATE.start_main_p5) 0) (= 0 (select |v_#memory_int_238| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_238| ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))) [2019-01-18 14:34:25,833 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1, v_prenex_90, v_prenex_89]. (let ((.cse0 (= 0 (select |#memory_int| ULTIMATE.start_main_p5))) (.cse1 (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)))) (or (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) .cse0 (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) .cse1 (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))) (and (not (= v_prenex_90 v_prenex_89)) (not (= v_prenex_90 ULTIMATE.start_main_p5)) .cse0 (not (= v_prenex_90 ULTIMATE.start_main_p2)) .cse1 (not (= ULTIMATE.start_main_p2 v_prenex_89)) (not (= ULTIMATE.start_main_p5 v_prenex_89)) (= (select |#memory_int| v_prenex_90) 0) (= (select |#memory_int| v_prenex_89) 0)))) [2019-01-18 14:34:25,923 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:34:25,924 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:34:25,925 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:34:25,926 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:34:25,927 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-18 14:34:25,930 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:34:25,955 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-18 14:34:25,955 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:53, output treesize:27 [2019-01-18 14:34:25,962 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:34:25,962 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_239|, v_prenex_90, v_prenex_89]. (let ((.cse0 (select |v_#memory_int_239| ULTIMATE.start_main_p5))) (and (= 0 (+ (select |v_#memory_int_239| ULTIMATE.start_main_p2) 1)) (= (store |v_#memory_int_239| ULTIMATE.start_main_p5 (+ .cse0 1)) |#memory_int|) (= .cse0 0) (not (= v_prenex_90 v_prenex_89)) (= (select |v_#memory_int_239| v_prenex_90) 0) (not (= ULTIMATE.start_main_p2 v_prenex_89)) (not (= ULTIMATE.start_main_p5 v_prenex_89)) (= 0 (select |v_#memory_int_239| v_prenex_89)) (not (= v_prenex_90 ULTIMATE.start_main_p5)) (not (= v_prenex_90 ULTIMATE.start_main_p2)))) [2019-01-18 14:34:25,962 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [v_prenex_89, v_prenex_90]. (and (= (select |#memory_int| v_prenex_89) 0) (not (= v_prenex_90 v_prenex_89)) (= 0 (select |#memory_int| v_prenex_90)) (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-18 14:34:26,006 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:34:26,007 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:34:26,008 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:34:26,010 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:34:26,011 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:34:26,012 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:34:26,013 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:34:26,014 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:34:26,015 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:34:26,016 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:34:26,017 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:34:26,017 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 12 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 79 [2019-01-18 14:34:26,022 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-18 14:34:26,050 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-18 14:34:26,051 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:37, output treesize:27 [2019-01-18 14:34:26,059 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:34:26,059 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_240|, ULTIMATE.start_main_p5, v_prenex_89, v_prenex_90]. (let ((.cse0 (select |v_#memory_int_240| ULTIMATE.start_main_p5))) (and (= 0 (+ (select |v_#memory_int_240| ULTIMATE.start_main_p2) 1)) (= (select |v_#memory_int_240| v_prenex_89) 0) (not (= v_prenex_90 v_prenex_89)) (= 0 (select |v_#memory_int_240| v_prenex_90)) (= .cse0 1) (= (store |v_#memory_int_240| ULTIMATE.start_main_p5 (+ .cse0 1)) |#memory_int|))) [2019-01-18 14:34:26,059 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [v_prenex_89, ULTIMATE.start_main_p5, v_prenex_90]. (and (= (select |#memory_int| v_prenex_89) 0) (= 2 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= v_prenex_90 v_prenex_89)) (= 0 (select |#memory_int| v_prenex_90)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-18 14:34:26,099 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;#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]; {19200#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} is VALID [2019-01-18 14:34:26,100 INFO L273 TraceCheckUtils]: 1: Hoare triple {19200#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p5 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {19204#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((v_prenex_90 Int) (v_prenex_89 Int)) (and (= (select |#memory_int| v_prenex_89) 0) (not (= v_prenex_90 v_prenex_89)) (not (= ULTIMATE.start_main_p2 v_prenex_89)) (not (= ULTIMATE.start_main_p5 v_prenex_89)) (= (select |#memory_int| v_prenex_90) 0) (not (= v_prenex_90 ULTIMATE.start_main_p5)) (not (= v_prenex_90 ULTIMATE.start_main_p2)))))} is VALID [2019-01-18 14:34:26,102 INFO L273 TraceCheckUtils]: 2: Hoare triple {19204#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((v_prenex_90 Int) (v_prenex_89 Int)) (and (= (select |#memory_int| v_prenex_89) 0) (not (= v_prenex_90 v_prenex_89)) (not (= ULTIMATE.start_main_p2 v_prenex_89)) (not (= ULTIMATE.start_main_p5 v_prenex_89)) (= (select |#memory_int| v_prenex_90) 0) (not (= v_prenex_90 ULTIMATE.start_main_p5)) (not (= v_prenex_90 ULTIMATE.start_main_p2)))))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {19208#(and (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((v_prenex_90 Int) (v_prenex_89 Int)) (and (= (select |#memory_int| v_prenex_89) 0) (not (= v_prenex_90 v_prenex_89)) (= 0 (select |#memory_int| v_prenex_90)))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-18 14:34:26,103 INFO L273 TraceCheckUtils]: 3: Hoare triple {19208#(and (= 1 (select |#memory_int| ULTIMATE.start_main_p5)) (exists ((v_prenex_90 Int) (v_prenex_89 Int)) (and (= (select |#memory_int| v_prenex_89) 0) (not (= v_prenex_90 v_prenex_89)) (= 0 (select |#memory_int| v_prenex_90)))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {19212#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 2 (select |#memory_int| ULTIMATE.start_main_p5))) (exists ((v_prenex_90 Int) (v_prenex_89 Int)) (and (= (select |#memory_int| v_prenex_89) 0) (not (= v_prenex_90 v_prenex_89)) (= 0 (select |#memory_int| v_prenex_90)))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-18 14:34:26,104 INFO L273 TraceCheckUtils]: 4: Hoare triple {19212#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 2 (select |#memory_int| ULTIMATE.start_main_p5))) (exists ((v_prenex_90 Int) (v_prenex_89 Int)) (and (= (select |#memory_int| v_prenex_89) 0) (not (= v_prenex_90 v_prenex_89)) (= 0 (select |#memory_int| v_prenex_90)))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume #memory_int[main_p1] >= 0; {19212#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 2 (select |#memory_int| ULTIMATE.start_main_p5))) (exists ((v_prenex_90 Int) (v_prenex_89 Int)) (and (= (select |#memory_int| v_prenex_89) 0) (not (= v_prenex_90 v_prenex_89)) (= 0 (select |#memory_int| v_prenex_90)))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-18 14:34:26,105 INFO L273 TraceCheckUtils]: 5: Hoare triple {19212#(and (exists ((ULTIMATE.start_main_p5 Int)) (= 2 (select |#memory_int| ULTIMATE.start_main_p5))) (exists ((v_prenex_90 Int) (v_prenex_89 Int)) (and (= (select |#memory_int| v_prenex_89) 0) (not (= v_prenex_90 v_prenex_89)) (= 0 (select |#memory_int| v_prenex_90)))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume !(#memory_int[main_p2] <= 0); {19193#false} is VALID [2019-01-18 14:34:26,106 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-18 14:34:26,106 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-18 14:34:26,162 INFO L273 TraceCheckUtils]: 5: Hoare triple {19196#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {19193#false} is VALID [2019-01-18 14:34:26,163 INFO L273 TraceCheckUtils]: 4: Hoare triple {19196#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {19196#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:34:26,164 INFO L273 TraceCheckUtils]: 3: Hoare triple {19225#(<= (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]; {19196#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:34:26,165 INFO L273 TraceCheckUtils]: 2: Hoare triple {19229#(<= (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 2)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p5 := #memory_int[main_p5] + 1]; {19225#(<= (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-18 14:34:26,166 INFO L273 TraceCheckUtils]: 1: Hoare triple {19233#(<= (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) 2)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {19229#(<= (select (store |#memory_int| ULTIMATE.start_main_p5 (+ (select |#memory_int| ULTIMATE.start_main_p5) 2)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:34:26,167 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;#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]; {19233#(<= (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) 2)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-18 14:34:26,168 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-18 14:34:26,186 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-18 14:34:26,187 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 4, 4] total 10 [2019-01-18 14:34:26,187 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-18 14:34:26,187 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 6 [2019-01-18 14:34:26,187 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-18 14:34:26,187 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states. [2019-01-18 14:34:26,203 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-18 14:34:26,204 INFO L459 AbstractCegarLoop]: Interpolant automaton has 9 states [2019-01-18 14:34:26,204 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2019-01-18 14:34:26,204 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=52, Invalid=80, Unknown=0, NotChecked=0, Total=132 [2019-01-18 14:34:26,204 INFO L87 Difference]: Start difference. First operand 130 states and 682 transitions. Second operand 9 states. [2019-01-18 14:34:46,110 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:34:46,110 INFO L93 Difference]: Finished difference Result 219 states and 1011 transitions. [2019-01-18 14:34:46,110 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-18 14:34:46,110 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 6 [2019-01-18 14:34:46,110 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-18 14:34:46,110 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2019-01-18 14:34:46,111 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 79 transitions. [2019-01-18 14:34:46,111 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2019-01-18 14:34:46,112 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 79 transitions. [2019-01-18 14:34:46,112 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 79 transitions. [2019-01-18 14:34:46,431 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-18 14:34:46,437 INFO L225 Difference]: With dead ends: 219 [2019-01-18 14:34:46,437 INFO L226 Difference]: Without dead ends: 216 [2019-01-18 14:34:46,438 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 15 GetRequests, 4 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 36 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=60, Invalid=96, Unknown=0, NotChecked=0, Total=156 [2019-01-18 14:34:46,438 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 216 states. [2019-01-18 14:35:02,551 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 216 to 148. [2019-01-18 14:35:02,552 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-18 14:35:02,552 INFO L82 GeneralOperation]: Start isEquivalent. First operand 216 states. Second operand 148 states. [2019-01-18 14:35:02,552 INFO L74 IsIncluded]: Start isIncluded. First operand 216 states. Second operand 148 states. [2019-01-18 14:35:02,552 INFO L87 Difference]: Start difference. First operand 216 states. Second operand 148 states. [2019-01-18 14:35:02,558 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:35:02,558 INFO L93 Difference]: Finished difference Result 216 states and 1004 transitions. [2019-01-18 14:35:02,559 INFO L276 IsEmpty]: Start isEmpty. Operand 216 states and 1004 transitions. [2019-01-18 14:35:02,559 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:35:02,559 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:35:02,559 INFO L74 IsIncluded]: Start isIncluded. First operand 148 states. Second operand 216 states. [2019-01-18 14:35:02,559 INFO L87 Difference]: Start difference. First operand 148 states. Second operand 216 states. [2019-01-18 14:35:02,566 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-18 14:35:02,566 INFO L93 Difference]: Finished difference Result 216 states and 1004 transitions. [2019-01-18 14:35:02,566 INFO L276 IsEmpty]: Start isEmpty. Operand 216 states and 1004 transitions. [2019-01-18 14:35:02,567 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-18 14:35:02,567 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-18 14:35:02,567 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-18 14:35:02,567 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-18 14:35:02,567 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 148 states. [2019-01-18 14:35:02,571 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 148 states to 148 states and 790 transitions. [2019-01-18 14:35:02,571 INFO L78 Accepts]: Start accepts. Automaton has 148 states and 790 transitions. Word has length 6 [2019-01-18 14:35:02,571 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-18 14:35:02,571 INFO L480 AbstractCegarLoop]: Abstraction has 148 states and 790 transitions. [2019-01-18 14:35:02,571 INFO L481 AbstractCegarLoop]: Interpolant automaton has 9 states. [2019-01-18 14:35:02,571 INFO L276 IsEmpty]: Start isEmpty. Operand 148 states and 790 transitions. [2019-01-18 14:35:02,572 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-18 14:35:02,572 INFO L394 BasicCegarLoop]: Found error trace [2019-01-18 14:35:02,572 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-18 14:35:02,572 INFO L423 AbstractCegarLoop]: === Iteration 47 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr4ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-01-18 14:35:02,572 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-18 14:35:02,572 INFO L82 PathProgramCache]: Analyzing trace with hash 896937626, now seen corresponding path program 3 times [2019-01-18 14:35:02,572 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-18 14:35:02,573 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:35:02,573 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-18 14:35:02,573 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-18 14:35:02,573 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-18 14:35:02,576 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:35:02,752 INFO L273 TraceCheckUtils]: 0: Hoare triple {20325#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;#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]; {20327#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-18 14:35:02,753 INFO L273 TraceCheckUtils]: 1: Hoare triple {20327#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (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]; {20328#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (<= (+ (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-18 14:35:02,754 INFO L273 TraceCheckUtils]: 2: Hoare triple {20328#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (<= (+ (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]; {20328#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (<= (+ (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-18 14:35:02,755 INFO L273 TraceCheckUtils]: 3: Hoare triple {20328#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (<= (+ (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_p5 := #memory_int[main_p5] + 1]; {20329#(and (<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} is VALID [2019-01-18 14:35:02,756 INFO L273 TraceCheckUtils]: 4: Hoare triple {20329#(and (<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} assume #memory_int[main_p1] >= 0; {20330#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-01-18 14:35:02,757 INFO L273 TraceCheckUtils]: 5: Hoare triple {20330#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume !(#memory_int[main_p2] <= 0); {20326#false} is VALID [2019-01-18 14:35:02,757 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-18 14:35:02,757 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:35:02,757 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-18 14:35:02,758 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-18 14:35:02,758 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-18 14:35:02,758 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-18 14:35:02,758 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-18 14:35:02,770 INFO L103 rtionOrderModulation]: Keeping assertion order TERMS_WITH_SMALL_CONSTANTS_FIRST [2019-01-18 14:35:02,770 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder TERMS_WITH_SMALL_CONSTANTS_FIRST (IT: FPandBP) [2019-01-18 14:35:02,775 INFO L249 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2019-01-18 14:35:02,775 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-18 14:35:02,778 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-18 14:35:02,778 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-18 14:35:02,825 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:35:02,826 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 40 [2019-01-18 14:35:02,877 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:35:02,879 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:35:02,879 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 1 new quantified variables, introduced 0 case distinctions, treesize of input 27 treesize of output 42 [2019-01-18 14:35:02,932 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:35:02,933 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:35:02,934 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:35:02,935 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:35:02,936 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 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 21 treesize of output 25 [2019-01-18 14:35:02,940 INFO L267 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-01-18 14:35:02,950 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:35:02,962 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:35:02,981 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 3 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-18 14:35:02,992 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 5 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-18 14:35:03,007 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 6 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-18 14:35:03,029 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-18 14:35:03,050 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-18 14:35:03,056 INFO L267 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-01-18 14:35:03,077 INFO L267 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:35:03,094 INFO L267 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:35:03,108 INFO L267 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:35:03,121 INFO L267 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-18 14:35:03,153 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-18 14:35:03,154 INFO L202 ElimStorePlain]: Needed 9 recursive calls to eliminate 4 variables, input treesize:52, output treesize:50 [2019-01-18 14:35:03,163 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:35:03,163 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_244|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, |v_#valid_48|]. (let ((.cse0 (store |v_#valid_48| ULTIMATE.start_main_p1 1))) (let ((.cse1 (store .cse0 ULTIMATE.start_main_p2 1))) (and (= 0 (select .cse0 ULTIMATE.start_main_p2)) (= 0 (select (store .cse1 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4)) (= (select .cse1 ULTIMATE.start_main_p3) 0) (= (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|)))) [2019-01-18 14:35:03,164 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-18 14:35:03,261 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:35:03,270 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 7 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 2 case distinctions, treesize of input 36 treesize of output 60 [2019-01-18 14:35:03,279 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 2 xjuncts. [2019-01-18 14:35:03,365 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 4 dim-0 vars, and 2 xjuncts. [2019-01-18 14:35:03,365 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:60, output treesize:75 [2019-01-18 14:35:03,396 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-18 14:35:03,396 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_245|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_245| ULTIMATE.start_main_p2))) (and (= 0 (select |v_#memory_int_245| ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_245| ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= |#memory_int| (store |v_#memory_int_245| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= (select |v_#memory_int_245| ULTIMATE.start_main_p5) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= 0 .cse0) (= (select |v_#memory_int_245| ULTIMATE.start_main_p3) 0))) [2019-01-18 14:35:03,396 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, v_prenex_92, v_prenex_91]. (let ((.cse0 (= (select |#memory_int| ULTIMATE.start_main_p1) 0)) (.cse1 (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)))) (or (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p5)) .cse0 .cse1 (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))) (and (not (= v_prenex_92 v_prenex_91)) .cse0 .cse1 (not (= v_prenex_92 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_92) 0) (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p5) (not (= ULTIMATE.start_main_p1 v_prenex_91)) (= (select |#memory_int| v_prenex_91) 0)))) [2019-01-18 14:35:03,539 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:35:03,542 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:35:03,545 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:35:03,546 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:35:03,547 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:35:03,548 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:35:03,549 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:35:03,558 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 5 select indices, 5 select index equivalence classes, 10 disjoint index pairs (out of 10 index pairs), introduced 0 new quantified variables, introduced 2 case distinctions, treesize of input 50 treesize of output 80 [2019-01-18 14:35:03,566 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 2 xjuncts. [2019-01-18 14:35:03,677 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:35:03,678 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:35:03,679 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:35:03,680 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:35:03,681 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:35:03,682 INFO L701 Elim1Store]: detected not equals via solver [2019-01-18 14:35:03,683 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 48 treesize of output 74 [2019-01-18 14:35:03,687 INFO L267 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2019-01-18 14:35:03,758 INFO L267 ElimStorePlain]: Start of recursive call 1: 6 dim-0 vars, 2 dim-1 vars, End of recursive call: 8 dim-0 vars, and 3 xjuncts. [2019-01-18 14:35:03,758 INFO L202 ElimStorePlain]: Needed 3 recursive calls to eliminate 8 variables, input treesize:99, output treesize:90 [2019-01-18 14:35:04,275 WARN L194 Executor]: External (z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000) stderr output: (error "out of memory") [2019-01-18 14:35:04,476 WARN L521 AbstractCegarLoop]: Destroyed unattended storables created during the last iteration: 43 z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-18 14:35:04,477 FATAL L265 ToolchainWalker]: An unrecoverable error occured during an interaction with an SMT solver: de.uni_freiburg.informatik.ultimate.logic.SMTLIBException: External (z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000)Received EOF on stdin. stderr output: (error "out of memory") at de.uni_freiburg.informatik.ultimate.smtsolver.external.Executor.parse(Executor.java:208) at de.uni_freiburg.informatik.ultimate.smtsolver.external.Executor.parseCheckSatResult(Executor.java:225) at de.uni_freiburg.informatik.ultimate.smtsolver.external.Scriptor.checkSat(Scriptor.java:155) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.WrapperScript.checkSat(WrapperScript.java:116) at de.uni_freiburg.informatik.ultimate.logic.Util.checkSat(Util.java:61) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.EliminationTask.areDistinct(EliminationTask.java:106) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.PartialQuantifierElimination.validateEquivalence(PartialQuantifierElimination.java:382) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.PartialQuantifierElimination.elim(PartialQuantifierElimination.java:295) at de.uni_freiburg.informatik.ultimate.modelcheckerutils.smt.PartialQuantifierElimination.tryToEliminate(PartialQuantifierElimination.java:101) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.predicates.IterativePredicateTransformer$QuantifierEliminationPostprocessor.postprocess(IterativePredicateTransformer.java:245) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.predicates.IterativePredicateTransformer.applyPostprocessors(IterativePredicateTransformer.java:439) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.predicates.IterativePredicateTransformer.computeStrongestPostconditionSequence(IterativePredicateTransformer.java:200) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.singletracecheck.TraceCheckSpWp.computeInterpolantsUsingUnsatCore(TraceCheckSpWp.java:286) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.singletracecheck.TraceCheckSpWp.computeInterpolants(TraceCheckSpWp.java:175) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.singletracecheck.TraceCheckSpWp.(TraceCheckSpWp.java:162) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.TraceCheckConstructor.constructForwardBackward(TraceCheckConstructor.java:224) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.TraceCheckConstructor.constructTraceCheck(TraceCheckConstructor.java:188) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.TraceCheckConstructor.get(TraceCheckConstructor.java:165) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.BaseTaipanRefinementStrategy.getTraceCheck(BaseTaipanRefinementStrategy.java:215) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.BaseRefinementStrategy.checkFeasibility(BaseRefinementStrategy.java:223) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.BaseRefinementStrategy.executeStrategy(BaseRefinementStrategy.java:197) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.tracehandling.TraceAbstractionRefinementEngine.(TraceAbstractionRefinementEngine.java:70) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.BasicCegarLoop.isCounterexampleFeasible(BasicCegarLoop.java:456) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.AbstractCegarLoop.iterateInternal(AbstractCegarLoop.java:434) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.AbstractCegarLoop.iterate(AbstractCegarLoop.java:376) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.iterate(TraceAbstractionStarter.java:334) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.runCegarLoops(TraceAbstractionStarter.java:174) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionStarter.(TraceAbstractionStarter.java:126) at de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver.finish(TraceAbstractionObserver.java:123) at de.uni_freiburg.informatik.ultimate.core.coreplugin.PluginConnector.runObserver(PluginConnector.java:168) at de.uni_freiburg.informatik.ultimate.core.coreplugin.PluginConnector.runTool(PluginConnector.java:151) at de.uni_freiburg.informatik.ultimate.core.coreplugin.PluginConnector.run(PluginConnector.java:128) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.executePluginConnector(ToolchainWalker.java:232) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.processPlugin(ToolchainWalker.java:226) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.walkUnprotected(ToolchainWalker.java:142) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainWalker.walk(ToolchainWalker.java:104) at de.uni_freiburg.informatik.ultimate.core.coreplugin.ToolchainManager$Toolchain.processToolchain(ToolchainManager.java:316) at de.uni_freiburg.informatik.ultimate.core.coreplugin.toolchain.DefaultToolchainJob.run(DefaultToolchainJob.java:145) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) Caused by: de.uni_freiburg.informatik.ultimate.logic.SMTLIBException: EOF at de.uni_freiburg.informatik.ultimate.smtsolver.external.Parser$Action$.CUP$do_action(Parser.java:1427) at de.uni_freiburg.informatik.ultimate.smtsolver.external.Parser.do_action(Parser.java:630) at com.github.jhoenicke.javacup.runtime.LRParser.parse(LRParser.java:419) at de.uni_freiburg.informatik.ultimate.smtsolver.external.Executor.parse(Executor.java:205) ... 38 more [2019-01-18 14:35:04,484 INFO L168 Benchmark]: Toolchain (without parser) took 428057.21 ms. Allocated memory was 138.9 MB in the beginning and 161.5 MB in the end (delta: 22.5 MB). Free memory was 103.8 MB in the beginning and 26.8 MB in the end (delta: 77.0 MB). Peak memory consumption was 99.5 MB. Max. memory is 7.1 GB. [2019-01-18 14:35:04,485 INFO L168 Benchmark]: Boogie PL CUP Parser took 0.18 ms. Allocated memory is still 138.9 MB. Free memory is still 105.3 MB. There was no memory consumed. Max. memory is 7.1 GB. [2019-01-18 14:35:04,485 INFO L168 Benchmark]: Boogie Procedure Inliner took 56.91 ms. Allocated memory is still 138.9 MB. Free memory was 103.8 MB in the beginning and 101.2 MB in the end (delta: 2.5 MB). Peak memory consumption was 2.5 MB. Max. memory is 7.1 GB. [2019-01-18 14:35:04,485 INFO L168 Benchmark]: Boogie Preprocessor took 24.07 ms. Allocated memory is still 138.9 MB. Free memory was 101.2 MB in the beginning and 100.1 MB in the end (delta: 1.2 MB). Peak memory consumption was 1.2 MB. Max. memory is 7.1 GB. [2019-01-18 14:35:04,485 INFO L168 Benchmark]: RCFGBuilder took 685.99 ms. Allocated memory is still 138.9 MB. Free memory was 100.1 MB in the beginning and 82.5 MB in the end (delta: 17.5 MB). Peak memory consumption was 17.5 MB. Max. memory is 7.1 GB. [2019-01-18 14:35:04,486 INFO L168 Benchmark]: TraceAbstraction took 427285.57 ms. Allocated memory was 138.9 MB in the beginning and 161.5 MB in the end (delta: 22.5 MB). Free memory was 82.3 MB in the beginning and 26.8 MB in the end (delta: 55.6 MB). Peak memory consumption was 78.1 MB. Max. memory is 7.1 GB. [2019-01-18 14:35:04,488 INFO L336 ainManager$Toolchain]: ####################### End [Toolchain 1] ####################### --- Results --- * Results from de.uni_freiburg.informatik.ultimate.core: - GenericResult: Assertions are enabled Assertions are enabled - StatisticsResult: Toolchain Benchmarks Benchmark results are: * Boogie PL CUP Parser took 0.18 ms. Allocated memory is still 138.9 MB. Free memory is still 105.3 MB. There was no memory consumed. Max. memory is 7.1 GB. * Boogie Procedure Inliner took 56.91 ms. Allocated memory is still 138.9 MB. Free memory was 103.8 MB in the beginning and 101.2 MB in the end (delta: 2.5 MB). Peak memory consumption was 2.5 MB. Max. memory is 7.1 GB. * Boogie Preprocessor took 24.07 ms. Allocated memory is still 138.9 MB. Free memory was 101.2 MB in the beginning and 100.1 MB in the end (delta: 1.2 MB). Peak memory consumption was 1.2 MB. Max. memory is 7.1 GB. * RCFGBuilder took 685.99 ms. Allocated memory is still 138.9 MB. Free memory was 100.1 MB in the beginning and 82.5 MB in the end (delta: 17.5 MB). Peak memory consumption was 17.5 MB. Max. memory is 7.1 GB. * TraceAbstraction took 427285.57 ms. Allocated memory was 138.9 MB in the beginning and 161.5 MB in the end (delta: 22.5 MB). Free memory was 82.3 MB in the beginning and 26.8 MB in the end (delta: 55.6 MB). Peak memory consumption was 78.1 MB. Max. memory is 7.1 GB. * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - ExceptionOrErrorResult: SMTLIBException: External (z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000)Received EOF on stdin. stderr output: (error "out of memory") de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: SMTLIBException: External (z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000)Received EOF on stdin. stderr output: (error "out of memory") : de.uni_freiburg.informatik.ultimate.smtsolver.external.Executor.parse(Executor.java:208) RESULT: Ultimate could not prove your program: Toolchain returned no result. Received shutdown request...