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-4-limited.bpl -------------------------------------------------------------------------------- This is Ultimate 0.1.24-0302a3f [2019-02-27 12:58:41,053 INFO L170 SettingsManager]: Resetting all preferences to default values... [2019-02-27 12:58:41,056 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2019-02-27 12:58:41,074 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2019-02-27 12:58:41,074 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2019-02-27 12:58:41,075 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2019-02-27 12:58:41,077 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2019-02-27 12:58:41,080 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2019-02-27 12:58:41,081 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2019-02-27 12:58:41,082 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2019-02-27 12:58:41,083 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2019-02-27 12:58:41,084 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2019-02-27 12:58:41,085 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2019-02-27 12:58:41,086 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2019-02-27 12:58:41,089 INFO L174 SettingsManager]: Resetting ChcToBoogie preferences to default values [2019-02-27 12:58:41,090 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2019-02-27 12:58:41,093 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2019-02-27 12:58:41,097 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2019-02-27 12:58:41,101 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2019-02-27 12:58:41,105 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2019-02-27 12:58:41,107 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2019-02-27 12:58:41,108 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2019-02-27 12:58:41,111 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2019-02-27 12:58:41,111 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2019-02-27 12:58:41,111 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2019-02-27 12:58:41,113 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2019-02-27 12:58:41,114 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2019-02-27 12:58:41,115 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2019-02-27 12:58:41,116 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2019-02-27 12:58:41,117 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2019-02-27 12:58:41,117 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2019-02-27 12:58:41,120 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2019-02-27 12:58:41,121 INFO L177 SettingsManager]: ReqParser provides no preferences, ignoring... [2019-02-27 12:58:41,121 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2019-02-27 12:58:41,122 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2019-02-27 12:58:41,122 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2019-02-27 12:58:41,123 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-02-27 12:58:41,136 INFO L110 SettingsManager]: Loading preferences was successful [2019-02-27 12:58:41,136 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2019-02-27 12:58:41,137 INFO L131 SettingsManager]: Preferences of Boogie Preprocessor differ from their defaults: [2019-02-27 12:58:41,137 INFO L133 SettingsManager]: * Show backtranslation warnings=false [2019-02-27 12:58:41,137 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2019-02-27 12:58:41,137 INFO L133 SettingsManager]: * User list type=DISABLED [2019-02-27 12:58:41,137 INFO L133 SettingsManager]: * Inline calls to unimplemented procedures=true [2019-02-27 12:58:41,138 INFO L131 SettingsManager]: Preferences of Abstract Interpretation differ from their defaults: [2019-02-27 12:58:41,138 INFO L133 SettingsManager]: * Explicit value domain=true [2019-02-27 12:58:41,138 INFO L133 SettingsManager]: * Abstract domain for RCFG-of-the-future=PoormanAbstractDomain [2019-02-27 12:58:41,138 INFO L133 SettingsManager]: * Octagon Domain=false [2019-02-27 12:58:41,138 INFO L133 SettingsManager]: * Abstract domain=CompoundDomain [2019-02-27 12:58:41,139 INFO L133 SettingsManager]: * Check feasibility of abstract posts with an SMT solver=true [2019-02-27 12:58:41,139 INFO L133 SettingsManager]: * Interval Domain=false [2019-02-27 12:58:41,139 INFO L131 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2019-02-27 12:58:41,140 INFO L133 SettingsManager]: * Create parallel compositions if possible=false [2019-02-27 12:58:41,140 INFO L133 SettingsManager]: * Use SBE=true [2019-02-27 12:58:41,140 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2019-02-27 12:58:41,140 INFO L133 SettingsManager]: * sizeof long=4 [2019-02-27 12:58:41,140 INFO L133 SettingsManager]: * Overapproximate operations on floating types=true [2019-02-27 12:58:41,141 INFO L133 SettingsManager]: * sizeof POINTER=4 [2019-02-27 12:58:41,141 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2019-02-27 12:58:41,141 INFO L133 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2019-02-27 12:58:41,141 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2019-02-27 12:58:41,141 INFO L133 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2019-02-27 12:58:41,141 INFO L133 SettingsManager]: * sizeof long double=12 [2019-02-27 12:58:41,142 INFO L133 SettingsManager]: * Check if freed pointer was valid=false [2019-02-27 12:58:41,142 INFO L133 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2019-02-27 12:58:41,142 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2019-02-27 12:58:41,142 INFO L133 SettingsManager]: * Size of a code block=SequenceOfStatements [2019-02-27 12:58:41,142 INFO L133 SettingsManager]: * SMT solver=External_DefaultMode [2019-02-27 12:58:41,143 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2019-02-27 12:58:41,143 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2019-02-27 12:58:41,143 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2019-02-27 12:58:41,143 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2019-02-27 12:58:41,143 INFO L133 SettingsManager]: * Trace refinement strategy=TAIPAN [2019-02-27 12:58:41,144 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2019-02-27 12:58:41,144 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2019-02-27 12:58:41,144 INFO L133 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2019-02-27 12:58:41,144 INFO L133 SettingsManager]: * Abstract interpretation Mode=USE_PREDICATES [2019-02-27 12:58:41,190 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2019-02-27 12:58:41,203 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2019-02-27 12:58:41,206 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2019-02-27 12:58:41,207 INFO L271 PluginConnector]: Initializing Boogie PL CUP Parser... [2019-02-27 12:58:41,208 INFO L276 PluginConnector]: Boogie PL CUP Parser initialized [2019-02-27 12:58:41,209 INFO L418 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/programs/heapseparator/speedup-poc-dd-4-limited.bpl [2019-02-27 12:58:41,209 INFO L111 BoogieParser]: Parsing: '/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/programs/heapseparator/speedup-poc-dd-4-limited.bpl' [2019-02-27 12:58:41,252 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2019-02-27 12:58:41,254 INFO L131 ToolchainWalker]: Walking toolchain with 4 elements. [2019-02-27 12:58:41,254 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2019-02-27 12:58:41,254 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2019-02-27 12:58:41,255 INFO L276 PluginConnector]: Boogie Procedure Inliner initialized [2019-02-27 12:58:41,271 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 27.02 12:58:41" (1/1) ... [2019-02-27 12:58:41,285 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 27.02 12:58:41" (1/1) ... [2019-02-27 12:58:41,320 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2019-02-27 12:58:41,321 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2019-02-27 12:58:41,321 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2019-02-27 12:58:41,321 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2019-02-27 12:58:41,333 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 27.02 12:58:41" (1/1) ... [2019-02-27 12:58:41,333 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 27.02 12:58:41" (1/1) ... [2019-02-27 12:58:41,334 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 27.02 12:58:41" (1/1) ... [2019-02-27 12:58:41,335 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 27.02 12:58:41" (1/1) ... [2019-02-27 12:58:41,338 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 27.02 12:58:41" (1/1) ... [2019-02-27 12:58:41,345 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 27.02 12:58:41" (1/1) ... [2019-02-27 12:58:41,346 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 27.02 12:58:41" (1/1) ... [2019-02-27 12:58:41,349 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2019-02-27 12:58:41,350 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2019-02-27 12:58:41,350 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2019-02-27 12:58:41,350 INFO L276 PluginConnector]: RCFGBuilder initialized [2019-02-27 12:58:41,351 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 27.02 12:58:41" (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-02-27 12:58:41,422 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2019-02-27 12:58:41,423 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2019-02-27 12:58:42,002 INFO L281 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2019-02-27 12:58:42,003 INFO L286 CfgBuilder]: Removed 11 assue(true) statements. [2019-02-27 12:58:42,005 INFO L202 PluginConnector]: Adding new model speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 27.02 12:58:42 BoogieIcfgContainer [2019-02-27 12:58:42,005 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2019-02-27 12:58:42,006 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2019-02-27 12:58:42,006 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2019-02-27 12:58:42,010 INFO L276 PluginConnector]: TraceAbstraction initialized [2019-02-27 12:58:42,013 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 27.02 12:58:41" (1/2) ... [2019-02-27 12:58:42,015 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@74b0ef64 and model type speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 27.02 12:58:42, skipping insertion in model container [2019-02-27 12:58:42,016 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 27.02 12:58:42" (2/2) ... [2019-02-27 12:58:42,018 INFO L112 eAbstractionObserver]: Analyzing ICFG speedup-poc-dd-4-limited.bpl [2019-02-27 12:58:42,029 INFO L156 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2019-02-27 12:58:42,039 INFO L168 ceAbstractionStarter]: Appying trace abstraction to program that has 4 error locations. [2019-02-27 12:58:42,064 INFO L257 AbstractCegarLoop]: Starting to check reachability of 4 error locations. [2019-02-27 12:58:42,106 INFO L382 AbstractCegarLoop]: Interprodecural is true [2019-02-27 12:58:42,106 INFO L383 AbstractCegarLoop]: Hoare is true [2019-02-27 12:58:42,107 INFO L384 AbstractCegarLoop]: Compute interpolants for FPandBP [2019-02-27 12:58:42,107 INFO L385 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2019-02-27 12:58:42,107 INFO L386 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2019-02-27 12:58:42,107 INFO L387 AbstractCegarLoop]: Difference is false [2019-02-27 12:58:42,107 INFO L388 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2019-02-27 12:58:42,108 INFO L393 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2019-02-27 12:58:42,126 INFO L276 IsEmpty]: Start isEmpty. Operand 11 states. [2019-02-27 12:58:42,132 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 3 [2019-02-27 12:58:42,133 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 12:58:42,134 INFO L402 BasicCegarLoop]: trace histogram [1, 1] [2019-02-27 12:58:42,137 INFO L423 AbstractCegarLoop]: === Iteration 1 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 12:58:42,142 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:58:42,142 INFO L82 PathProgramCache]: Analyzing trace with hash 980, now seen corresponding path program 1 times [2019-02-27 12:58:42,144 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 12:58:42,186 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:58:42,187 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:58:42,187 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:58:42,187 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 12:58:42,245 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:58:42,365 INFO L273 TraceCheckUtils]: 0: Hoare triple {14#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {16#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-02-27 12:58:42,371 INFO L273 TraceCheckUtils]: 1: Hoare triple {16#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {15#false} is VALID [2019-02-27 12:58:42,373 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:58:42,375 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2019-02-27 12:58:42,376 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [1] imperfect sequences [] total 1 [2019-02-27 12:58:42,376 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-02-27 12:58:42,381 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 2 [2019-02-27 12:58:42,382 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 12:58:42,385 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states. [2019-02-27 12:58:42,397 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 2 edges. 2 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:58:42,398 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2019-02-27 12:58:42,404 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2019-02-27 12:58:42,405 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-02-27 12:58:42,407 INFO L87 Difference]: Start difference. First operand 11 states. Second operand 3 states. [2019-02-27 12:58:42,741 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:58:42,741 INFO L93 Difference]: Finished difference Result 21 states and 27 transitions. [2019-02-27 12:58:42,742 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-02-27 12:58:42,742 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 2 [2019-02-27 12:58:42,742 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 12:58:42,743 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-02-27 12:58:42,747 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 27 transitions. [2019-02-27 12:58:42,747 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-02-27 12:58:42,749 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 27 transitions. [2019-02-27 12:58:42,750 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 27 transitions. [2019-02-27 12:58:42,951 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 27 edges. 27 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:58:42,961 INFO L225 Difference]: With dead ends: 21 [2019-02-27 12:58:42,962 INFO L226 Difference]: Without dead ends: 16 [2019-02-27 12:58:42,966 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-02-27 12:58:42,987 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 16 states. [2019-02-27 12:58:43,031 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 16 to 10. [2019-02-27 12:58:43,031 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 12:58:43,032 INFO L82 GeneralOperation]: Start isEquivalent. First operand 16 states. Second operand 10 states. [2019-02-27 12:58:43,033 INFO L74 IsIncluded]: Start isIncluded. First operand 16 states. Second operand 10 states. [2019-02-27 12:58:43,033 INFO L87 Difference]: Start difference. First operand 16 states. Second operand 10 states. [2019-02-27 12:58:43,037 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:58:43,037 INFO L93 Difference]: Finished difference Result 16 states and 22 transitions. [2019-02-27 12:58:43,037 INFO L276 IsEmpty]: Start isEmpty. Operand 16 states and 22 transitions. [2019-02-27 12:58:43,038 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:58:43,038 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:58:43,039 INFO L74 IsIncluded]: Start isIncluded. First operand 10 states. Second operand 16 states. [2019-02-27 12:58:43,039 INFO L87 Difference]: Start difference. First operand 10 states. Second operand 16 states. [2019-02-27 12:58:43,042 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:58:43,042 INFO L93 Difference]: Finished difference Result 16 states and 22 transitions. [2019-02-27 12:58:43,043 INFO L276 IsEmpty]: Start isEmpty. Operand 16 states and 22 transitions. [2019-02-27 12:58:43,043 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:58:43,043 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:58:43,044 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 12:58:43,044 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 12:58:43,044 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-27 12:58:43,046 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 17 transitions. [2019-02-27 12:58:43,047 INFO L78 Accepts]: Start accepts. Automaton has 10 states and 17 transitions. Word has length 2 [2019-02-27 12:58:43,048 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 12:58:43,048 INFO L480 AbstractCegarLoop]: Abstraction has 10 states and 17 transitions. [2019-02-27 12:58:43,048 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2019-02-27 12:58:43,048 INFO L276 IsEmpty]: Start isEmpty. Operand 10 states and 17 transitions. [2019-02-27 12:58:43,049 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-02-27 12:58:43,049 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 12:58:43,049 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-02-27 12:58:43,049 INFO L423 AbstractCegarLoop]: === Iteration 2 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 12:58:43,050 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:58:43,050 INFO L82 PathProgramCache]: Analyzing trace with hash 30306, now seen corresponding path program 1 times [2019-02-27 12:58:43,050 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 12:58:43,051 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:58:43,051 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:58:43,051 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:58:43,052 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 12:58:43,065 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:58:43,450 WARN L181 SmtUtils]: Spent 127.00 ms on a formula simplification. DAG size of input: 19 DAG size of output: 13 [2019-02-27 12:58:43,532 INFO L273 TraceCheckUtils]: 0: Hoare triple {86#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {88#(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-02-27 12:58:43,533 INFO L273 TraceCheckUtils]: 1: Hoare triple {88#(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]; {89#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-02-27 12:58:43,534 INFO L273 TraceCheckUtils]: 2: Hoare triple {89#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {87#false} is VALID [2019-02-27 12:58:43,535 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:58:43,535 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:58:43,536 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 12:58:43,537 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 4 with the following transitions: [2019-02-27 12:58:43,539 INFO L207 CegarAbsIntRunner]: [0], [16], [19] [2019-02-27 12:58:43,569 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 12:58:43,569 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 12:58:43,698 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 12:58:43,699 INFO L272 AbstractInterpreter]: Visited 3 different actions 3 times. Never merged. Never widened. Performed 50 root evaluator evaluations with a maximum evaluation depth of 3. Performed 50 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-02-27 12:58:43,703 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:58:43,704 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 12:58:43,705 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:58:43,705 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-02-27 12:58:43,715 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:58:43,716 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 12:58:43,736 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:58:43,739 INFO L256 TraceCheckSpWp]: Trace formula consists of 20 conjuncts, 6 conjunts are in the unsatisfiable core [2019-02-27 12:58:43,755 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:58:43,760 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 12:58:44,002 INFO L467 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 15 treesize of output 18 [2019-02-27 12:58:44,030 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:44,034 INFO L467 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 18 treesize of output 24 [2019-02-27 12:58:44,062 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:44,064 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:44,066 INFO L467 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 20 treesize of output 34 [2019-02-27 12:58:44,200 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:44,201 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:44,202 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:44,205 INFO L467 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 22 treesize of output 45 [2019-02-27 12:58:44,211 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 12:58:44,290 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:58:44,331 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:58:44,364 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:58:44,440 INFO L301 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-02-27 12:58:44,440 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-02-27 12:58:44,450 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:58:44,451 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_22|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_22| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 12:58:44,452 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 12:58:44,707 WARN L181 SmtUtils]: Spent 102.00 ms on a formula simplification that was a NOOP. DAG size: 20 [2019-02-27 12:58:44,822 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:44,825 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:44,826 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:44,834 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:44,836 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:44,838 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:44,839 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:44,842 INFO L467 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-02-27 12:58:44,854 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 12:58:44,990 INFO L301 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-02-27 12:58:44,991 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-02-27 12:58:47,013 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:58:47,013 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_23|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_23| ULTIMATE.start_main_p4))) (and (= .cse0 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_23| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_23| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_23| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_23| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 12:58:47,013 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 12:58:47,095 INFO L273 TraceCheckUtils]: 0: Hoare triple {86#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {93#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 12:58:47,097 INFO L273 TraceCheckUtils]: 1: Hoare triple {93#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {97#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-02-27 12:58:47,115 INFO L273 TraceCheckUtils]: 2: Hoare triple {97#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} assume !(#memory_int[main_p1] >= 0); {87#false} is VALID [2019-02-27 12:58:47,116 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:58:47,116 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 12:58:47,159 INFO L273 TraceCheckUtils]: 2: Hoare triple {101#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {87#false} is VALID [2019-02-27 12:58:47,161 INFO L273 TraceCheckUtils]: 1: Hoare triple {105#(<= 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]; {101#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-27 12:58:47,162 INFO L273 TraceCheckUtils]: 0: Hoare triple {86#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {105#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-27 12:58:47,163 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:58:47,194 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 12:58:47,194 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-02-27 12:58:47,195 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 12:58:47,196 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-02-27 12:58:47,196 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 12:58:47,196 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-02-27 12:58:47,219 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 6 edges. 6 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:58:47,219 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-02-27 12:58:47,220 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-02-27 12:58:47,220 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-02-27 12:58:47,220 INFO L87 Difference]: Start difference. First operand 10 states and 17 transitions. Second operand 6 states. [2019-02-27 12:58:47,821 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:58:47,821 INFO L93 Difference]: Finished difference Result 31 states and 44 transitions. [2019-02-27 12:58:47,821 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-02-27 12:58:47,821 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-02-27 12:58:47,822 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 12:58:47,822 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-02-27 12:58:47,824 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 44 transitions. [2019-02-27 12:58:47,824 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-02-27 12:58:47,826 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 44 transitions. [2019-02-27 12:58:47,826 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 44 transitions. [2019-02-27 12:58:47,973 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 44 edges. 44 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:58:47,976 INFO L225 Difference]: With dead ends: 31 [2019-02-27 12:58:47,976 INFO L226 Difference]: Without dead ends: 28 [2019-02-27 12:58:47,977 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-02-27 12:58:47,977 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 28 states. [2019-02-27 12:58:47,993 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 28 to 13. [2019-02-27 12:58:47,994 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 12:58:47,994 INFO L82 GeneralOperation]: Start isEquivalent. First operand 28 states. Second operand 13 states. [2019-02-27 12:58:47,995 INFO L74 IsIncluded]: Start isIncluded. First operand 28 states. Second operand 13 states. [2019-02-27 12:58:47,995 INFO L87 Difference]: Start difference. First operand 28 states. Second operand 13 states. [2019-02-27 12:58:47,998 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:58:47,998 INFO L93 Difference]: Finished difference Result 28 states and 40 transitions. [2019-02-27 12:58:47,998 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 40 transitions. [2019-02-27 12:58:47,999 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:58:47,999 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:58:47,999 INFO L74 IsIncluded]: Start isIncluded. First operand 13 states. Second operand 28 states. [2019-02-27 12:58:48,000 INFO L87 Difference]: Start difference. First operand 13 states. Second operand 28 states. [2019-02-27 12:58:48,002 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:58:48,003 INFO L93 Difference]: Finished difference Result 28 states and 40 transitions. [2019-02-27 12:58:48,003 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 40 transitions. [2019-02-27 12:58:48,003 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:58:48,004 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:58:48,004 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 12:58:48,004 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 12:58:48,004 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2019-02-27 12:58:48,006 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 25 transitions. [2019-02-27 12:58:48,006 INFO L78 Accepts]: Start accepts. Automaton has 13 states and 25 transitions. Word has length 3 [2019-02-27 12:58:48,006 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 12:58:48,006 INFO L480 AbstractCegarLoop]: Abstraction has 13 states and 25 transitions. [2019-02-27 12:58:48,006 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-02-27 12:58:48,007 INFO L276 IsEmpty]: Start isEmpty. Operand 13 states and 25 transitions. [2019-02-27 12:58:48,007 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-02-27 12:58:48,007 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 12:58:48,007 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-02-27 12:58:48,008 INFO L423 AbstractCegarLoop]: === Iteration 3 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 12:58:48,008 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:58:48,008 INFO L82 PathProgramCache]: Analyzing trace with hash 30432, now seen corresponding path program 1 times [2019-02-27 12:58:48,008 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 12:58:48,009 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:58:48,009 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:58:48,009 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:58:48,009 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 12:58:48,019 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:58:48,065 INFO L273 TraceCheckUtils]: 0: Hoare triple {217#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {219#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:58:48,066 INFO L273 TraceCheckUtils]: 1: Hoare triple {219#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {219#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:58:48,069 INFO L273 TraceCheckUtils]: 2: Hoare triple {219#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {218#false} is VALID [2019-02-27 12:58:48,069 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:58:48,069 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2019-02-27 12:58:48,070 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [1] imperfect sequences [] total 1 [2019-02-27 12:58:48,070 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-02-27 12:58:48,070 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 3 [2019-02-27 12:58:48,070 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 12:58:48,070 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states. [2019-02-27 12:58:48,077 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 3 edges. 3 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:58:48,077 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2019-02-27 12:58:48,078 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2019-02-27 12:58:48,078 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-02-27 12:58:48,079 INFO L87 Difference]: Start difference. First operand 13 states and 25 transitions. Second operand 3 states. [2019-02-27 12:58:48,178 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:58:48,179 INFO L93 Difference]: Finished difference Result 15 states and 25 transitions. [2019-02-27 12:58:48,179 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-02-27 12:58:48,179 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 3 [2019-02-27 12:58:48,179 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 12:58:48,179 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-02-27 12:58:48,180 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 20 transitions. [2019-02-27 12:58:48,180 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-02-27 12:58:48,181 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 20 transitions. [2019-02-27 12:58:48,181 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 20 transitions. [2019-02-27 12:58:48,214 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 20 edges. 20 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:58:48,215 INFO L225 Difference]: With dead ends: 15 [2019-02-27 12:58:48,216 INFO L226 Difference]: Without dead ends: 14 [2019-02-27 12:58:48,216 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-02-27 12:58:48,216 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 14 states. [2019-02-27 12:58:48,253 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 14 to 13. [2019-02-27 12:58:48,253 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 12:58:48,253 INFO L82 GeneralOperation]: Start isEquivalent. First operand 14 states. Second operand 13 states. [2019-02-27 12:58:48,253 INFO L74 IsIncluded]: Start isIncluded. First operand 14 states. Second operand 13 states. [2019-02-27 12:58:48,254 INFO L87 Difference]: Start difference. First operand 14 states. Second operand 13 states. [2019-02-27 12:58:48,255 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:58:48,255 INFO L93 Difference]: Finished difference Result 14 states and 24 transitions. [2019-02-27 12:58:48,255 INFO L276 IsEmpty]: Start isEmpty. Operand 14 states and 24 transitions. [2019-02-27 12:58:48,256 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:58:48,256 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:58:48,256 INFO L74 IsIncluded]: Start isIncluded. First operand 13 states. Second operand 14 states. [2019-02-27 12:58:48,256 INFO L87 Difference]: Start difference. First operand 13 states. Second operand 14 states. [2019-02-27 12:58:48,258 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:58:48,258 INFO L93 Difference]: Finished difference Result 14 states and 24 transitions. [2019-02-27 12:58:48,258 INFO L276 IsEmpty]: Start isEmpty. Operand 14 states and 24 transitions. [2019-02-27 12:58:48,258 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:58:48,259 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:58:48,259 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 12:58:48,259 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 12:58:48,259 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2019-02-27 12:58:48,260 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 24 transitions. [2019-02-27 12:58:48,261 INFO L78 Accepts]: Start accepts. Automaton has 13 states and 24 transitions. Word has length 3 [2019-02-27 12:58:48,261 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 12:58:48,261 INFO L480 AbstractCegarLoop]: Abstraction has 13 states and 24 transitions. [2019-02-27 12:58:48,261 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2019-02-27 12:58:48,261 INFO L276 IsEmpty]: Start isEmpty. Operand 13 states and 24 transitions. [2019-02-27 12:58:48,261 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-02-27 12:58:48,262 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 12:58:48,262 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-02-27 12:58:48,262 INFO L423 AbstractCegarLoop]: === Iteration 4 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 12:58:48,262 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:58:48,262 INFO L82 PathProgramCache]: Analyzing trace with hash 29996, now seen corresponding path program 1 times [2019-02-27 12:58:48,263 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 12:58:48,263 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:58:48,264 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:58:48,264 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:58:48,264 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 12:58:48,272 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:58:48,335 INFO L273 TraceCheckUtils]: 0: Hoare triple {284#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {286#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-02-27 12:58:48,336 INFO L273 TraceCheckUtils]: 1: Hoare triple {286#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {287#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-27 12:58:48,341 INFO L273 TraceCheckUtils]: 2: Hoare triple {287#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {285#false} is VALID [2019-02-27 12:58:48,342 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:58:48,342 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:58:48,342 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 12:58:48,342 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 4 with the following transitions: [2019-02-27 12:58:48,343 INFO L207 CegarAbsIntRunner]: [0], [6], [19] [2019-02-27 12:58:48,346 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 12:58:48,346 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 12:58:48,363 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 12:58:48,364 INFO L272 AbstractInterpreter]: Visited 3 different actions 3 times. Never merged. Never widened. Performed 50 root evaluator evaluations with a maximum evaluation depth of 3. Performed 50 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-02-27 12:58:48,364 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:58:48,364 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 12:58:48,364 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:58:48,364 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-02-27 12:58:48,373 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:58:48,373 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 12:58:48,380 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:58:48,381 INFO L256 TraceCheckSpWp]: Trace formula consists of 20 conjuncts, 6 conjunts are in the unsatisfiable core [2019-02-27 12:58:48,385 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:58:48,386 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 12:58:48,426 INFO L467 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 15 treesize of output 18 [2019-02-27 12:58:48,448 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:48,450 INFO L467 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 18 treesize of output 24 [2019-02-27 12:58:48,481 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:48,483 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:48,485 INFO L467 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 20 treesize of output 34 [2019-02-27 12:58:48,525 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:48,527 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:48,529 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:48,531 INFO L467 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 22 treesize of output 45 [2019-02-27 12:58:48,534 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 12:58:48,553 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:58:48,565 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:58:48,579 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:58:48,607 INFO L301 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-02-27 12:58:48,608 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 4 variables, input treesize:25, output treesize:30 [2019-02-27 12:58:48,616 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:58:48,617 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_25|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_25| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 12:58:48,617 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 12:58:48,675 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:48,677 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:48,678 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:48,680 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:48,681 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:48,682 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:48,684 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:48,686 INFO L467 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-02-27 12:58:48,690 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 12:58:48,722 INFO L301 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-02-27 12:58:48,722 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-02-27 12:58:48,728 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:58:48,728 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_26|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_26| ULTIMATE.start_main_p1))) (and (= |#memory_int| (store |v_#memory_int_26| ULTIMATE.start_main_p1 (+ .cse0 1))) (= 0 .cse0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_26| ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_26| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |v_#memory_int_26| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 12:58:48,728 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 12:58:48,759 INFO L273 TraceCheckUtils]: 0: Hoare triple {284#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {291#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-27 12:58:48,761 INFO L273 TraceCheckUtils]: 1: Hoare triple {291#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {295#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-27 12:58:48,766 INFO L273 TraceCheckUtils]: 2: Hoare triple {295#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {285#false} is VALID [2019-02-27 12:58:48,767 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:58:48,767 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 12:58:48,794 INFO L273 TraceCheckUtils]: 2: Hoare triple {299#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {285#false} is VALID [2019-02-27 12:58:48,795 INFO L273 TraceCheckUtils]: 1: Hoare triple {303#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {299#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-27 12:58:48,800 INFO L273 TraceCheckUtils]: 0: Hoare triple {284#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {303#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} is VALID [2019-02-27 12:58:48,800 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:58:48,819 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-02-27 12:58:48,819 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [2, 2] total 6 [2019-02-27 12:58:48,820 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-02-27 12:58:48,820 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 3 [2019-02-27 12:58:48,820 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 12:58:48,820 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-02-27 12:58:48,826 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 3 edges. 3 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:58:48,826 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-02-27 12:58:48,826 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-02-27 12:58:48,826 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-02-27 12:58:48,826 INFO L87 Difference]: Start difference. First operand 13 states and 24 transitions. Second operand 4 states. [2019-02-27 12:58:48,931 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:58:48,931 INFO L93 Difference]: Finished difference Result 18 states and 41 transitions. [2019-02-27 12:58:48,932 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2019-02-27 12:58:48,932 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 3 [2019-02-27 12:58:48,932 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 12:58:48,932 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-02-27 12:58:48,934 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 24 transitions. [2019-02-27 12:58:48,934 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-02-27 12:58:48,935 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 24 transitions. [2019-02-27 12:58:48,935 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 24 transitions. [2019-02-27 12:58:48,983 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 24 edges. 24 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:58:48,985 INFO L225 Difference]: With dead ends: 18 [2019-02-27 12:58:48,985 INFO L226 Difference]: Without dead ends: 17 [2019-02-27 12:58:48,986 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 6 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 6 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 9 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-02-27 12:58:48,986 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 17 states. [2019-02-27 12:58:49,065 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 17 to 16. [2019-02-27 12:58:49,065 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 12:58:49,065 INFO L82 GeneralOperation]: Start isEquivalent. First operand 17 states. Second operand 16 states. [2019-02-27 12:58:49,066 INFO L74 IsIncluded]: Start isIncluded. First operand 17 states. Second operand 16 states. [2019-02-27 12:58:49,066 INFO L87 Difference]: Start difference. First operand 17 states. Second operand 16 states. [2019-02-27 12:58:49,068 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:58:49,068 INFO L93 Difference]: Finished difference Result 17 states and 40 transitions. [2019-02-27 12:58:49,068 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 40 transitions. [2019-02-27 12:58:49,069 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:58:49,069 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:58:49,069 INFO L74 IsIncluded]: Start isIncluded. First operand 16 states. Second operand 17 states. [2019-02-27 12:58:49,069 INFO L87 Difference]: Start difference. First operand 16 states. Second operand 17 states. [2019-02-27 12:58:49,071 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:58:49,071 INFO L93 Difference]: Finished difference Result 17 states and 40 transitions. [2019-02-27 12:58:49,072 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 40 transitions. [2019-02-27 12:58:49,072 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:58:49,072 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:58:49,072 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 12:58:49,072 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 12:58:49,073 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 16 states. [2019-02-27 12:58:49,074 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 40 transitions. [2019-02-27 12:58:49,074 INFO L78 Accepts]: Start accepts. Automaton has 16 states and 40 transitions. Word has length 3 [2019-02-27 12:58:49,074 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 12:58:49,074 INFO L480 AbstractCegarLoop]: Abstraction has 16 states and 40 transitions. [2019-02-27 12:58:49,075 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-02-27 12:58:49,075 INFO L276 IsEmpty]: Start isEmpty. Operand 16 states and 40 transitions. [2019-02-27 12:58:49,075 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-02-27 12:58:49,075 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 12:58:49,075 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-02-27 12:58:49,076 INFO L423 AbstractCegarLoop]: === Iteration 5 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 12:58:49,076 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:58:49,076 INFO L82 PathProgramCache]: Analyzing trace with hash 30120, now seen corresponding path program 1 times [2019-02-27 12:58:49,076 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 12:58:49,077 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:58:49,077 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:58:49,077 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:58:49,078 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 12:58:49,086 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:58:49,173 INFO L273 TraceCheckUtils]: 0: Hoare triple {386#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {388#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-02-27 12:58:49,175 INFO L273 TraceCheckUtils]: 1: Hoare triple {388#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {389#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-02-27 12:58:49,177 INFO L273 TraceCheckUtils]: 2: Hoare triple {389#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {387#false} is VALID [2019-02-27 12:58:49,177 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:58:49,178 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:58:49,178 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 12:58:49,178 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 4 with the following transitions: [2019-02-27 12:58:49,179 INFO L207 CegarAbsIntRunner]: [0], [10], [19] [2019-02-27 12:58:49,180 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 12:58:49,180 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 12:58:49,207 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 12:58:49,207 INFO L272 AbstractInterpreter]: Visited 3 different actions 3 times. Never merged. Never widened. Performed 50 root evaluator evaluations with a maximum evaluation depth of 3. Performed 50 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-02-27 12:58:49,207 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:58:49,208 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 12:58:49,208 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:58:49,208 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-02-27 12:58:49,216 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:58:49,217 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 12:58:49,224 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:58:49,225 INFO L256 TraceCheckSpWp]: Trace formula consists of 20 conjuncts, 6 conjunts are in the unsatisfiable core [2019-02-27 12:58:49,227 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:58:49,227 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 12:58:49,328 INFO L467 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 15 treesize of output 18 [2019-02-27 12:58:49,336 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:49,337 INFO L467 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 18 treesize of output 24 [2019-02-27 12:58:49,352 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:49,354 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:49,356 INFO L467 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 20 treesize of output 34 [2019-02-27 12:58:49,375 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:49,377 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:49,378 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:49,380 INFO L467 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 22 treesize of output 45 [2019-02-27 12:58:49,383 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 12:58:49,408 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:58:49,418 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:58:49,426 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:58:49,449 INFO L301 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-02-27 12:58:49,449 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-02-27 12:58:49,454 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:58:49,455 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_28|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_28| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 12:58:49,455 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 12:58:49,529 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:49,531 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:49,533 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:49,534 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:49,535 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:49,536 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:49,538 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:49,541 INFO L467 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-02-27 12:58:49,559 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 12:58:49,597 INFO L301 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-02-27 12:58:49,598 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-02-27 12:58:51,711 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:58:51,712 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_29|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_29| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_29| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_29| ULTIMATE.start_main_p4) 0) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (store |v_#memory_int_29| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_29| ULTIMATE.start_main_p3) 0))) [2019-02-27 12:58:51,712 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 12:58:51,802 INFO L273 TraceCheckUtils]: 0: Hoare triple {386#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {393#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 12:58:51,805 INFO L273 TraceCheckUtils]: 1: Hoare triple {393#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {397#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-27 12:58:51,807 INFO L273 TraceCheckUtils]: 2: Hoare triple {397#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {387#false} is VALID [2019-02-27 12:58:51,808 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:58:51,808 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 12:58:51,839 INFO L273 TraceCheckUtils]: 2: Hoare triple {401#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {387#false} is VALID [2019-02-27 12:58:51,841 INFO L273 TraceCheckUtils]: 1: Hoare triple {405#(<= 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]; {401#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-27 12:58:51,843 INFO L273 TraceCheckUtils]: 0: Hoare triple {386#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {405#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-27 12:58:51,843 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:58:51,863 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 12:58:51,864 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-02-27 12:58:51,864 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 12:58:51,864 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-02-27 12:58:51,864 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 12:58:51,865 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-02-27 12:58:51,875 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 6 edges. 6 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:58:51,875 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-02-27 12:58:51,876 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-02-27 12:58:51,876 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-02-27 12:58:51,876 INFO L87 Difference]: Start difference. First operand 16 states and 40 transitions. Second operand 6 states. [2019-02-27 12:58:52,365 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:58:52,365 INFO L93 Difference]: Finished difference Result 32 states and 62 transitions. [2019-02-27 12:58:52,365 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-02-27 12:58:52,366 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-02-27 12:58:52,366 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 12:58:52,366 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-02-27 12:58:52,367 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 41 transitions. [2019-02-27 12:58:52,367 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-02-27 12:58:52,368 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 41 transitions. [2019-02-27 12:58:52,368 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 41 transitions. [2019-02-27 12:58:52,471 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 41 edges. 41 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:58:52,472 INFO L225 Difference]: With dead ends: 32 [2019-02-27 12:58:52,472 INFO L226 Difference]: Without dead ends: 31 [2019-02-27 12:58:52,473 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-02-27 12:58:52,473 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 31 states. [2019-02-27 12:58:52,513 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 31 to 18. [2019-02-27 12:58:52,513 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 12:58:52,513 INFO L82 GeneralOperation]: Start isEquivalent. First operand 31 states. Second operand 18 states. [2019-02-27 12:58:52,514 INFO L74 IsIncluded]: Start isIncluded. First operand 31 states. Second operand 18 states. [2019-02-27 12:58:52,514 INFO L87 Difference]: Start difference. First operand 31 states. Second operand 18 states. [2019-02-27 12:58:52,517 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:58:52,517 INFO L93 Difference]: Finished difference Result 31 states and 60 transitions. [2019-02-27 12:58:52,517 INFO L276 IsEmpty]: Start isEmpty. Operand 31 states and 60 transitions. [2019-02-27 12:58:52,518 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:58:52,518 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:58:52,518 INFO L74 IsIncluded]: Start isIncluded. First operand 18 states. Second operand 31 states. [2019-02-27 12:58:52,518 INFO L87 Difference]: Start difference. First operand 18 states. Second operand 31 states. [2019-02-27 12:58:52,520 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:58:52,521 INFO L93 Difference]: Finished difference Result 31 states and 60 transitions. [2019-02-27 12:58:52,521 INFO L276 IsEmpty]: Start isEmpty. Operand 31 states and 60 transitions. [2019-02-27 12:58:52,521 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:58:52,521 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:58:52,522 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 12:58:52,522 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 12:58:52,522 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 18 states. [2019-02-27 12:58:52,523 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 18 states to 18 states and 50 transitions. [2019-02-27 12:58:52,523 INFO L78 Accepts]: Start accepts. Automaton has 18 states and 50 transitions. Word has length 3 [2019-02-27 12:58:52,524 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 12:58:52,524 INFO L480 AbstractCegarLoop]: Abstraction has 18 states and 50 transitions. [2019-02-27 12:58:52,524 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-02-27 12:58:52,524 INFO L276 IsEmpty]: Start isEmpty. Operand 18 states and 50 transitions. [2019-02-27 12:58:52,524 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-02-27 12:58:52,524 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 12:58:52,525 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-02-27 12:58:52,525 INFO L423 AbstractCegarLoop]: === Iteration 6 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 12:58:52,525 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:58:52,525 INFO L82 PathProgramCache]: Analyzing trace with hash 939538, now seen corresponding path program 1 times [2019-02-27 12:58:52,526 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 12:58:52,526 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:58:52,526 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:58:52,527 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:58:52,527 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 12:58:52,535 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:58:52,632 INFO L273 TraceCheckUtils]: 0: Hoare triple {538#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {540#(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-02-27 12:58:52,633 INFO L273 TraceCheckUtils]: 1: Hoare triple {540#(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]; {541#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:58:52,634 INFO L273 TraceCheckUtils]: 2: Hoare triple {541#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {541#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:58:52,634 INFO L273 TraceCheckUtils]: 3: Hoare triple {541#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {539#false} is VALID [2019-02-27 12:58:52,635 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:58:52,635 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:58:52,635 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 12:58:52,635 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-02-27 12:58:52,635 INFO L207 CegarAbsIntRunner]: [0], [16], [20], [21] [2019-02-27 12:58:52,637 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 12:58:52,637 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 12:58:52,659 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 12:58:52,659 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 52 root evaluator evaluations with a maximum evaluation depth of 3. Performed 52 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-02-27 12:58:52,660 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:58:52,660 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 12:58:52,660 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:58:52,660 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-02-27 12:58:52,669 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:58:52,670 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 12:58:52,674 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:58:52,675 INFO L256 TraceCheckSpWp]: Trace formula consists of 21 conjuncts, 5 conjunts are in the unsatisfiable core [2019-02-27 12:58:52,693 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:58:52,694 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 12:58:52,744 INFO L467 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 15 treesize of output 18 [2019-02-27 12:58:52,755 INFO L467 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 18 treesize of output 20 [2019-02-27 12:58:52,776 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:52,778 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 26 [2019-02-27 12:58:52,802 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:52,803 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:52,805 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 33 [2019-02-27 12:58:52,808 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 12:58:52,821 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:58:52,831 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:58:52,841 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:58:52,855 INFO L301 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-02-27 12:58:52,856 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:22, output treesize:27 [2019-02-27 12:58:52,860 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:58:52,861 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_31|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_31| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 12:58:52,861 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 12:58:52,932 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:52,934 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:52,935 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:52,938 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:52,939 INFO L467 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-02-27 12:58:52,962 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 12:58:52,985 INFO L301 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-02-27 12:58:52,985 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:32, output treesize:22 [2019-02-27 12:58:55,018 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:58:55,018 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_32|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_32| ULTIMATE.start_main_p4))) (and (= (store |v_#memory_int_32| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_32| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_32| ULTIMATE.start_main_p3) 0) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-02-27 12:58:55,019 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 12:58:55,189 INFO L273 TraceCheckUtils]: 0: Hoare triple {538#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {545#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 12:58:55,191 INFO L273 TraceCheckUtils]: 1: Hoare triple {545#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {549#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-02-27 12:58:55,192 INFO L273 TraceCheckUtils]: 2: Hoare triple {549#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume #memory_int[main_p1] >= 0; {549#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-02-27 12:58:55,193 INFO L273 TraceCheckUtils]: 3: Hoare triple {549#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume !(#memory_int[main_p2] <= 0); {539#false} is VALID [2019-02-27 12:58:55,193 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:58:55,193 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 12:58:55,221 INFO L273 TraceCheckUtils]: 3: Hoare triple {556#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {539#false} is VALID [2019-02-27 12:58:55,221 INFO L273 TraceCheckUtils]: 2: Hoare triple {556#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {556#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:58:55,222 INFO L273 TraceCheckUtils]: 1: Hoare triple {563#(<= (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]; {556#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:58:55,223 INFO L273 TraceCheckUtils]: 0: Hoare triple {538#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {563#(<= (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:58:55,224 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:58:55,243 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-02-27 12:58:55,244 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [2, 2] total 6 [2019-02-27 12:58:55,244 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-02-27 12:58:55,244 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 4 [2019-02-27 12:58:55,244 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 12:58:55,244 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-02-27 12:58:55,253 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 4 edges. 4 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:58:55,253 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-02-27 12:58:55,253 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-02-27 12:58:55,253 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=26, Invalid=30, Unknown=0, NotChecked=0, Total=56 [2019-02-27 12:58:55,253 INFO L87 Difference]: Start difference. First operand 18 states and 50 transitions. Second operand 4 states. [2019-02-27 12:58:55,357 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:58:55,358 INFO L93 Difference]: Finished difference Result 22 states and 58 transitions. [2019-02-27 12:58:55,358 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-02-27 12:58:55,358 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 4 [2019-02-27 12:58:55,358 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 12:58:55,358 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-02-27 12:58:55,359 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 20 transitions. [2019-02-27 12:58:55,359 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-02-27 12:58:55,360 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 20 transitions. [2019-02-27 12:58:55,360 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 20 transitions. [2019-02-27 12:58:55,381 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 20 edges. 20 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:58:55,382 INFO L225 Difference]: With dead ends: 22 [2019-02-27 12:58:55,383 INFO L226 Difference]: Without dead ends: 21 [2019-02-27 12:58:55,383 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-02-27 12:58:55,384 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 21 states. [2019-02-27 12:58:55,422 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 21 to 20. [2019-02-27 12:58:55,423 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 12:58:55,423 INFO L82 GeneralOperation]: Start isEquivalent. First operand 21 states. Second operand 20 states. [2019-02-27 12:58:55,423 INFO L74 IsIncluded]: Start isIncluded. First operand 21 states. Second operand 20 states. [2019-02-27 12:58:55,423 INFO L87 Difference]: Start difference. First operand 21 states. Second operand 20 states. [2019-02-27 12:58:55,425 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:58:55,425 INFO L93 Difference]: Finished difference Result 21 states and 57 transitions. [2019-02-27 12:58:55,426 INFO L276 IsEmpty]: Start isEmpty. Operand 21 states and 57 transitions. [2019-02-27 12:58:55,426 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:58:55,426 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:58:55,426 INFO L74 IsIncluded]: Start isIncluded. First operand 20 states. Second operand 21 states. [2019-02-27 12:58:55,426 INFO L87 Difference]: Start difference. First operand 20 states. Second operand 21 states. [2019-02-27 12:58:55,429 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:58:55,429 INFO L93 Difference]: Finished difference Result 21 states and 57 transitions. [2019-02-27 12:58:55,430 INFO L276 IsEmpty]: Start isEmpty. Operand 21 states and 57 transitions. [2019-02-27 12:58:55,430 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:58:55,430 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:58:55,430 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 12:58:55,430 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 12:58:55,430 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 20 states. [2019-02-27 12:58:55,432 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 20 states to 20 states and 57 transitions. [2019-02-27 12:58:55,432 INFO L78 Accepts]: Start accepts. Automaton has 20 states and 57 transitions. Word has length 4 [2019-02-27 12:58:55,432 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 12:58:55,432 INFO L480 AbstractCegarLoop]: Abstraction has 20 states and 57 transitions. [2019-02-27 12:58:55,438 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-02-27 12:58:55,438 INFO L276 IsEmpty]: Start isEmpty. Operand 20 states and 57 transitions. [2019-02-27 12:58:55,438 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-02-27 12:58:55,438 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 12:58:55,438 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-02-27 12:58:55,439 INFO L423 AbstractCegarLoop]: === Iteration 7 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 12:58:55,439 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:58:55,439 INFO L82 PathProgramCache]: Analyzing trace with hash 939226, now seen corresponding path program 1 times [2019-02-27 12:58:55,439 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 12:58:55,442 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:58:55,443 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:58:55,443 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:58:55,443 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 12:58:55,454 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:58:55,617 INFO L273 TraceCheckUtils]: 0: Hoare triple {668#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {670#(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-02-27 12:58:55,618 INFO L273 TraceCheckUtils]: 1: Hoare triple {670#(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]; {671#(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-02-27 12:58:55,620 INFO L273 TraceCheckUtils]: 2: Hoare triple {671#(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]; {672#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-02-27 12:58:55,620 INFO L273 TraceCheckUtils]: 3: Hoare triple {672#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {669#false} is VALID [2019-02-27 12:58:55,621 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:58:55,621 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:58:55,622 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 12:58:55,622 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-02-27 12:58:55,622 INFO L207 CegarAbsIntRunner]: [0], [10], [16], [19] [2019-02-27 12:58:55,625 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 12:58:55,625 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 12:58:55,664 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 12:58:55,664 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 52 root evaluator evaluations with a maximum evaluation depth of 3. Performed 52 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-02-27 12:58:55,664 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:58:55,665 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 12:58:55,665 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:58:55,665 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-02-27 12:58:55,674 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:58:55,674 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 12:58:55,679 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:58:55,680 INFO L256 TraceCheckSpWp]: Trace formula consists of 21 conjuncts, 7 conjunts are in the unsatisfiable core [2019-02-27 12:58:55,699 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:58:55,700 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 12:58:55,862 INFO L467 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 15 treesize of output 18 [2019-02-27 12:58:55,876 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:55,877 INFO L467 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 18 treesize of output 24 [2019-02-27 12:58:55,889 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:55,891 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:55,892 INFO L467 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 20 treesize of output 34 [2019-02-27 12:58:55,905 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:55,907 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:55,908 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:55,910 INFO L467 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 22 treesize of output 45 [2019-02-27 12:58:55,915 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 12:58:55,936 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:58:55,950 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:58:55,959 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:58:55,976 INFO L301 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-02-27 12:58:55,977 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-02-27 12:58:55,984 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:58:55,984 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_34|, ULTIMATE.start_main_p3]. (and (= (store (store (store (store |v_#memory_int_34| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 12:58:55,984 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 12:58:56,044 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:56,045 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:56,047 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:56,048 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:56,049 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:56,051 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:56,052 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:56,054 INFO L467 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-02-27 12:58:56,084 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 12:58:56,247 INFO L301 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-02-27 12:58:56,247 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-02-27 12:58:56,255 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:58:56,256 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_35|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_35| ULTIMATE.start_main_p4))) (and (= 0 (select |v_#memory_int_35| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_35| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= 0 (select |v_#memory_int_35| ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_35| ULTIMATE.start_main_p3)) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 12:58:56,256 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 12:58:56,368 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:56,369 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:56,370 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:56,372 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:56,373 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:56,374 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:56,375 INFO L158 IndexEqualityManager]: detected equality via solver [2019-02-27 12:58:56,377 INFO L467 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 47 [2019-02-27 12:58:56,401 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 12:58:56,432 INFO L301 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-02-27 12:58:56,432 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-02-27 12:58:58,447 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:58:58,447 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_36|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_36| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (select |v_#memory_int_36| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_36| ULTIMATE.start_main_p1) 0) (= 0 (+ (select |v_#memory_int_36| ULTIMATE.start_main_p4) 1)) (= (store |v_#memory_int_36| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 12:58:58,447 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 12:58:58,503 INFO L273 TraceCheckUtils]: 0: Hoare triple {668#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {676#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 12:58:58,512 INFO L273 TraceCheckUtils]: 1: Hoare triple {676#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {680#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-02-27 12:58:58,519 INFO L273 TraceCheckUtils]: 2: Hoare triple {680#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {684#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-27 12:58:58,520 INFO L273 TraceCheckUtils]: 3: Hoare triple {684#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {669#false} is VALID [2019-02-27 12:58:58,520 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:58:58,521 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 12:58:58,608 INFO L273 TraceCheckUtils]: 3: Hoare triple {688#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {669#false} is VALID [2019-02-27 12:58:58,610 INFO L273 TraceCheckUtils]: 2: Hoare triple {692#(<= 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]; {688#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-27 12:58:58,611 INFO L273 TraceCheckUtils]: 1: Hoare triple {696#(<= 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]; {692#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-27 12:58:58,616 INFO L273 TraceCheckUtils]: 0: Hoare triple {668#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {696#(<= 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-02-27 12:58:58,617 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:58:58,637 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 12:58:58,637 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-02-27 12:58:58,637 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 12:58:58,637 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-02-27 12:58:58,638 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 12:58:58,638 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-02-27 12:58:58,658 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:58:58,658 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-02-27 12:58:58,658 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-02-27 12:58:58,659 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=43, Invalid=67, Unknown=0, NotChecked=0, Total=110 [2019-02-27 12:58:58,659 INFO L87 Difference]: Start difference. First operand 20 states and 57 transitions. Second operand 8 states. [2019-02-27 12:58:59,371 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:58:59,372 INFO L93 Difference]: Finished difference Result 37 states and 74 transitions. [2019-02-27 12:58:59,372 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-02-27 12:58:59,372 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-02-27 12:58:59,372 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 12:58:59,372 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-27 12:58:59,373 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 48 transitions. [2019-02-27 12:58:59,374 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-27 12:58:59,374 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 48 transitions. [2019-02-27 12:58:59,375 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 48 transitions. [2019-02-27 12:58:59,462 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 48 edges. 48 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:58:59,463 INFO L225 Difference]: With dead ends: 37 [2019-02-27 12:58:59,464 INFO L226 Difference]: Without dead ends: 36 [2019-02-27 12:58:59,464 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=61, Invalid=95, Unknown=0, NotChecked=0, Total=156 [2019-02-27 12:58:59,464 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 36 states. [2019-02-27 12:58:59,527 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 36 to 17. [2019-02-27 12:58:59,527 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 12:58:59,527 INFO L82 GeneralOperation]: Start isEquivalent. First operand 36 states. Second operand 17 states. [2019-02-27 12:58:59,527 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 17 states. [2019-02-27 12:58:59,528 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 17 states. [2019-02-27 12:58:59,530 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:58:59,530 INFO L93 Difference]: Finished difference Result 36 states and 72 transitions. [2019-02-27 12:58:59,531 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 72 transitions. [2019-02-27 12:58:59,531 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:58:59,531 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:58:59,532 INFO L74 IsIncluded]: Start isIncluded. First operand 17 states. Second operand 36 states. [2019-02-27 12:58:59,532 INFO L87 Difference]: Start difference. First operand 17 states. Second operand 36 states. [2019-02-27 12:58:59,534 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:58:59,534 INFO L93 Difference]: Finished difference Result 36 states and 72 transitions. [2019-02-27 12:58:59,534 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 72 transitions. [2019-02-27 12:58:59,535 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:58:59,535 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:58:59,535 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 12:58:59,535 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 12:58:59,536 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 17 states. [2019-02-27 12:58:59,537 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 41 transitions. [2019-02-27 12:58:59,537 INFO L78 Accepts]: Start accepts. Automaton has 17 states and 41 transitions. Word has length 4 [2019-02-27 12:58:59,537 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 12:58:59,537 INFO L480 AbstractCegarLoop]: Abstraction has 17 states and 41 transitions. [2019-02-27 12:58:59,537 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-02-27 12:58:59,538 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 41 transitions. [2019-02-27 12:58:59,538 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-02-27 12:58:59,538 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 12:58:59,538 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-02-27 12:58:59,539 INFO L423 AbstractCegarLoop]: === Iteration 8 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 12:58:59,539 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:58:59,539 INFO L82 PathProgramCache]: Analyzing trace with hash 939350, now seen corresponding path program 1 times [2019-02-27 12:58:59,539 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 12:58:59,540 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:58:59,540 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:58:59,540 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:58:59,540 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 12:58:59,550 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:58:59,699 INFO L273 TraceCheckUtils]: 0: Hoare triple {845#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {847#(and (not (= ULTIMATE.start_main_p3 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-02-27 12:58:59,701 INFO L273 TraceCheckUtils]: 1: Hoare triple {847#(and (not (= ULTIMATE.start_main_p3 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]; {848#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))} is VALID [2019-02-27 12:58:59,702 INFO L273 TraceCheckUtils]: 2: Hoare triple {848#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {849#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-02-27 12:58:59,702 INFO L273 TraceCheckUtils]: 3: Hoare triple {849#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {846#false} is VALID [2019-02-27 12:58:59,703 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:58:59,703 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:58:59,703 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 12:58:59,703 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-02-27 12:58:59,703 INFO L207 CegarAbsIntRunner]: [0], [14], [16], [19] [2019-02-27 12:58:59,704 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 12:58:59,705 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 12:58:59,716 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 12:58:59,716 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 52 root evaluator evaluations with a maximum evaluation depth of 3. Performed 52 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-02-27 12:58:59,717 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:58:59,723 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 12:58:59,723 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:58:59,724 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-02-27 12:58:59,733 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:58:59,734 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 12:58:59,753 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:58:59,754 INFO L256 TraceCheckSpWp]: Trace formula consists of 21 conjuncts, 7 conjunts are in the unsatisfiable core [2019-02-27 12:58:59,763 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:58:59,764 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 12:58:59,782 INFO L467 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 15 treesize of output 18 [2019-02-27 12:58:59,796 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:59,797 INFO L467 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 18 treesize of output 24 [2019-02-27 12:58:59,819 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:59,821 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:59,822 INFO L467 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 20 treesize of output 34 [2019-02-27 12:58:59,850 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:59,852 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:59,855 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:58:59,856 INFO L467 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 22 treesize of output 45 [2019-02-27 12:58:59,863 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 12:58:59,881 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:58:59,892 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:58:59,901 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:58:59,918 INFO L301 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-02-27 12:58:59,918 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-02-27 12:58:59,927 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:58:59,927 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_39|, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_39| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 12:58:59,928 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 12:59:00,097 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:00,099 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:00,100 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:00,101 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:00,103 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:00,104 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:00,108 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:00,110 INFO L467 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-02-27 12:59:00,112 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:00,142 INFO L301 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-02-27 12:59:00,142 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-02-27 12:59:02,153 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:02,154 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_40|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_40| ULTIMATE.start_main_p4))) (and (= (select |v_#memory_int_40| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_40| ULTIMATE.start_main_p2) 0) (= |#memory_int| (store |v_#memory_int_40| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= (select |v_#memory_int_40| ULTIMATE.start_main_p1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= .cse0 0))) [2019-02-27 12:59:02,154 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 12:59:02,329 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:02,330 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:02,331 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:02,332 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:02,333 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:02,335 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:02,336 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:02,339 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:02,341 INFO L467 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 47 [2019-02-27 12:59:02,343 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:02,378 INFO L301 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-02-27 12:59:02,378 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-02-27 12:59:04,395 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:04,395 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_41|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_41| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_41| ULTIMATE.start_main_p3 (+ .cse0 1))) (= 0 (+ (select |v_#memory_int_41| ULTIMATE.start_main_p4) 1)) (= 0 (select |v_#memory_int_41| ULTIMATE.start_main_p2)) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_41| ULTIMATE.start_main_p1) 0))) [2019-02-27 12:59:04,395 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 12:59:04,431 INFO L273 TraceCheckUtils]: 0: Hoare triple {845#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {853#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 12:59:04,434 INFO L273 TraceCheckUtils]: 1: Hoare triple {853#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {857#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-27 12:59:04,437 INFO L273 TraceCheckUtils]: 2: Hoare triple {857#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {861#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-27 12:59:04,441 INFO L273 TraceCheckUtils]: 3: Hoare triple {861#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {846#false} is VALID [2019-02-27 12:59:04,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-02-27 12:59:04,442 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 12:59:04,525 INFO L273 TraceCheckUtils]: 3: Hoare triple {865#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {846#false} is VALID [2019-02-27 12:59:04,538 INFO L273 TraceCheckUtils]: 2: Hoare triple {869#(<= 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]; {865#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-27 12:59:04,540 INFO L273 TraceCheckUtils]: 1: Hoare triple {873#(<= 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]; {869#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-02-27 12:59:04,541 INFO L273 TraceCheckUtils]: 0: Hoare triple {845#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {873#(<= 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-02-27 12:59:04,542 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:59:04,560 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 12:59:04,560 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-02-27 12:59:04,560 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 12:59:04,561 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-02-27 12:59:04,561 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 12:59:04,561 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-02-27 12:59:04,580 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:59:04,580 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-02-27 12:59:04,580 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-02-27 12:59:04,580 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-02-27 12:59:04,581 INFO L87 Difference]: Start difference. First operand 17 states and 41 transitions. Second operand 8 states. [2019-02-27 12:59:05,488 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:05,489 INFO L93 Difference]: Finished difference Result 42 states and 89 transitions. [2019-02-27 12:59:05,489 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-02-27 12:59:05,489 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-02-27 12:59:05,489 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 12:59:05,489 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-27 12:59:05,490 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 50 transitions. [2019-02-27 12:59:05,490 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-27 12:59:05,490 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 50 transitions. [2019-02-27 12:59:05,490 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 50 transitions. [2019-02-27 12:59:05,577 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 50 edges. 50 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:59:05,579 INFO L225 Difference]: With dead ends: 42 [2019-02-27 12:59:05,579 INFO L226 Difference]: Without dead ends: 38 [2019-02-27 12:59:05,579 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-02-27 12:59:05,580 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 38 states. [2019-02-27 12:59:05,698 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 38 to 22. [2019-02-27 12:59:05,698 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 12:59:05,699 INFO L82 GeneralOperation]: Start isEquivalent. First operand 38 states. Second operand 22 states. [2019-02-27 12:59:05,699 INFO L74 IsIncluded]: Start isIncluded. First operand 38 states. Second operand 22 states. [2019-02-27 12:59:05,699 INFO L87 Difference]: Start difference. First operand 38 states. Second operand 22 states. [2019-02-27 12:59:05,702 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:05,702 INFO L93 Difference]: Finished difference Result 38 states and 82 transitions. [2019-02-27 12:59:05,703 INFO L276 IsEmpty]: Start isEmpty. Operand 38 states and 82 transitions. [2019-02-27 12:59:05,703 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:59:05,703 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:59:05,703 INFO L74 IsIncluded]: Start isIncluded. First operand 22 states. Second operand 38 states. [2019-02-27 12:59:05,704 INFO L87 Difference]: Start difference. First operand 22 states. Second operand 38 states. [2019-02-27 12:59:05,705 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:05,705 INFO L93 Difference]: Finished difference Result 38 states and 82 transitions. [2019-02-27 12:59:05,705 INFO L276 IsEmpty]: Start isEmpty. Operand 38 states and 82 transitions. [2019-02-27 12:59:05,706 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:59:05,706 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:59:05,706 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 12:59:05,706 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 12:59:05,706 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 22 states. [2019-02-27 12:59:05,708 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 22 states to 22 states and 65 transitions. [2019-02-27 12:59:05,708 INFO L78 Accepts]: Start accepts. Automaton has 22 states and 65 transitions. Word has length 4 [2019-02-27 12:59:05,708 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 12:59:05,708 INFO L480 AbstractCegarLoop]: Abstraction has 22 states and 65 transitions. [2019-02-27 12:59:05,708 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-02-27 12:59:05,708 INFO L276 IsEmpty]: Start isEmpty. Operand 22 states and 65 transitions. [2019-02-27 12:59:05,709 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-02-27 12:59:05,709 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 12:59:05,709 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-02-27 12:59:05,709 INFO L423 AbstractCegarLoop]: === Iteration 9 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 12:59:05,709 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:59:05,709 INFO L82 PathProgramCache]: Analyzing trace with hash 929802, now seen corresponding path program 1 times [2019-02-27 12:59:05,710 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 12:59:05,710 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:59:05,710 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:59:05,711 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:59:05,711 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 12:59:05,718 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:05,843 INFO L273 TraceCheckUtils]: 0: Hoare triple {1043#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1045#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-27 12:59:05,844 INFO L273 TraceCheckUtils]: 1: Hoare triple {1045#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1046#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-27 12:59:05,845 INFO L273 TraceCheckUtils]: 2: Hoare triple {1046#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1047#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-27 12:59:05,845 INFO L273 TraceCheckUtils]: 3: Hoare triple {1047#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1044#false} is VALID [2019-02-27 12:59:05,846 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:59:05,846 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:59:05,846 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 12:59:05,846 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-02-27 12:59:05,846 INFO L207 CegarAbsIntRunner]: [0], [6], [16], [19] [2019-02-27 12:59:05,848 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 12:59:05,848 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 12:59:05,895 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 12:59:05,895 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 52 root evaluator evaluations with a maximum evaluation depth of 3. Performed 52 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-02-27 12:59:05,896 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:59:05,896 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 12:59:05,896 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:59:05,896 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-02-27 12:59:05,924 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:59:05,924 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 12:59:05,944 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:05,945 INFO L256 TraceCheckSpWp]: Trace formula consists of 21 conjuncts, 7 conjunts are in the unsatisfiable core [2019-02-27 12:59:05,963 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:05,964 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 12:59:05,992 INFO L467 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 15 treesize of output 18 [2019-02-27 12:59:06,000 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:06,001 INFO L467 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 18 treesize of output 24 [2019-02-27 12:59:06,013 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:06,015 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:06,016 INFO L467 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 20 treesize of output 34 [2019-02-27 12:59:06,058 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:06,059 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:06,060 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:06,061 INFO L467 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 22 treesize of output 45 [2019-02-27 12:59:06,063 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:06,084 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:06,094 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:06,102 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:06,118 INFO L301 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-02-27 12:59:06,118 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-02-27 12:59:06,125 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:06,125 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_44|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (and (= (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) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 12:59:06,126 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 12:59:06,218 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:06,219 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:06,221 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:06,222 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:06,223 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:06,224 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:06,226 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:06,227 INFO L467 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-02-27 12:59:06,235 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:06,265 INFO L301 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-02-27 12:59:06,266 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-02-27 12:59:06,271 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:06,272 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_45|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_45| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_45| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= (select |v_#memory_int_45| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_45| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_45| ULTIMATE.start_main_p4) 0) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 12:59:06,272 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 12:59:06,319 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:06,321 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:06,322 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:06,325 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:06,327 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:06,327 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:06,328 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:06,330 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:06,331 INFO L467 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 45 [2019-02-27 12:59:06,339 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:06,370 INFO L301 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-02-27 12:59:06,370 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-02-27 12:59:08,375 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:08,375 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_46|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_46| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= |#memory_int| (store |v_#memory_int_46| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= (select |v_#memory_int_46| ULTIMATE.start_main_p3) 0) (= 0 (select |v_#memory_int_46| ULTIMATE.start_main_p2)) (= 1 (select |v_#memory_int_46| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 12:59:08,375 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 12:59:08,405 INFO L273 TraceCheckUtils]: 0: Hoare triple {1043#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1051#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 12:59:08,407 INFO L273 TraceCheckUtils]: 1: Hoare triple {1051#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1055#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 12:59:08,409 INFO L273 TraceCheckUtils]: 2: Hoare triple {1055#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1059#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-27 12:59:08,410 INFO L273 TraceCheckUtils]: 3: Hoare triple {1059#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {1044#false} is VALID [2019-02-27 12:59:08,411 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:59:08,411 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 12:59:08,469 INFO L273 TraceCheckUtils]: 3: Hoare triple {1063#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1044#false} is VALID [2019-02-27 12:59:08,470 INFO L273 TraceCheckUtils]: 2: Hoare triple {1067#(<= 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]; {1063#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-27 12:59:08,471 INFO L273 TraceCheckUtils]: 1: Hoare triple {1071#(<= 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]; {1067#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-27 12:59:08,473 INFO L273 TraceCheckUtils]: 0: Hoare triple {1043#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1071#(<= 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-02-27 12:59:08,474 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:59:08,493 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 12:59:08,493 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-02-27 12:59:08,493 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 12:59:08,494 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-02-27 12:59:08,494 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 12:59:08,494 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-02-27 12:59:08,508 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:59:08,508 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-02-27 12:59:08,508 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-02-27 12:59:08,508 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-02-27 12:59:08,509 INFO L87 Difference]: Start difference. First operand 22 states and 65 transitions. Second operand 8 states. [2019-02-27 12:59:09,314 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:09,315 INFO L93 Difference]: Finished difference Result 51 states and 112 transitions. [2019-02-27 12:59:09,315 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-02-27 12:59:09,315 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-02-27 12:59:09,315 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 12:59:09,315 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-27 12:59:09,316 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 57 transitions. [2019-02-27 12:59:09,316 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-27 12:59:09,317 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 57 transitions. [2019-02-27 12:59:09,317 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 57 transitions. [2019-02-27 12:59:09,429 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 57 edges. 57 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:59:09,430 INFO L225 Difference]: With dead ends: 51 [2019-02-27 12:59:09,430 INFO L226 Difference]: Without dead ends: 48 [2019-02-27 12:59:09,431 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 10 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 28 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=53, Invalid=79, Unknown=0, NotChecked=0, Total=132 [2019-02-27 12:59:09,431 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 48 states. [2019-02-27 12:59:09,534 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 48 to 28. [2019-02-27 12:59:09,534 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 12:59:09,534 INFO L82 GeneralOperation]: Start isEquivalent. First operand 48 states. Second operand 28 states. [2019-02-27 12:59:09,534 INFO L74 IsIncluded]: Start isIncluded. First operand 48 states. Second operand 28 states. [2019-02-27 12:59:09,535 INFO L87 Difference]: Start difference. First operand 48 states. Second operand 28 states. [2019-02-27 12:59:09,537 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:09,538 INFO L93 Difference]: Finished difference Result 48 states and 107 transitions. [2019-02-27 12:59:09,538 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 107 transitions. [2019-02-27 12:59:09,538 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:59:09,538 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:59:09,538 INFO L74 IsIncluded]: Start isIncluded. First operand 28 states. Second operand 48 states. [2019-02-27 12:59:09,539 INFO L87 Difference]: Start difference. First operand 28 states. Second operand 48 states. [2019-02-27 12:59:09,541 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:09,541 INFO L93 Difference]: Finished difference Result 48 states and 107 transitions. [2019-02-27 12:59:09,541 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 107 transitions. [2019-02-27 12:59:09,542 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:59:09,542 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:59:09,542 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 12:59:09,542 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 12:59:09,542 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 28 states. [2019-02-27 12:59:09,544 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 28 states to 28 states and 88 transitions. [2019-02-27 12:59:09,544 INFO L78 Accepts]: Start accepts. Automaton has 28 states and 88 transitions. Word has length 4 [2019-02-27 12:59:09,544 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 12:59:09,544 INFO L480 AbstractCegarLoop]: Abstraction has 28 states and 88 transitions. [2019-02-27 12:59:09,544 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-02-27 12:59:09,544 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 88 transitions. [2019-02-27 12:59:09,545 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-02-27 12:59:09,545 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 12:59:09,545 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-02-27 12:59:09,545 INFO L423 AbstractCegarLoop]: === Iteration 10 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 12:59:09,545 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:59:09,546 INFO L82 PathProgramCache]: Analyzing trace with hash 929928, now seen corresponding path program 1 times [2019-02-27 12:59:09,546 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 12:59:09,546 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:59:09,546 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:59:09,547 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:59:09,547 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 12:59:09,554 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:09,645 INFO L273 TraceCheckUtils]: 0: Hoare triple {1282#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1284#(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-02-27 12:59:09,646 INFO L273 TraceCheckUtils]: 1: Hoare triple {1284#(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]; {1285#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:59:09,647 INFO L273 TraceCheckUtils]: 2: Hoare triple {1285#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {1285#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:59:09,648 INFO L273 TraceCheckUtils]: 3: Hoare triple {1285#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {1283#false} is VALID [2019-02-27 12:59:09,648 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:59:09,648 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:59:09,648 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 12:59:09,648 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-02-27 12:59:09,649 INFO L207 CegarAbsIntRunner]: [0], [6], [20], [21] [2019-02-27 12:59:09,650 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 12:59:09,650 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 12:59:09,665 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 12:59:09,665 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 52 root evaluator evaluations with a maximum evaluation depth of 3. Performed 52 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-02-27 12:59:09,665 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:59:09,665 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 12:59:09,665 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:59:09,666 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-02-27 12:59:09,674 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:59:09,675 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 12:59:09,678 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:09,679 INFO L256 TraceCheckSpWp]: Trace formula consists of 21 conjuncts, 6 conjunts are in the unsatisfiable core [2019-02-27 12:59:09,683 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:09,683 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 12:59:09,716 INFO L467 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 15 treesize of output 18 [2019-02-27 12:59:09,725 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:09,727 INFO L467 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 18 treesize of output 24 [2019-02-27 12:59:09,739 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:09,741 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:09,742 INFO L467 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 20 treesize of output 34 [2019-02-27 12:59:09,807 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:09,809 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:09,811 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:09,812 INFO L467 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 22 treesize of output 45 [2019-02-27 12:59:09,818 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:09,839 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:09,849 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:09,860 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:09,879 INFO L301 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-02-27 12:59:09,880 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-02-27 12:59:09,886 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:09,886 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_49|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (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) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 12:59:09,886 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 12:59:09,998 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:10,021 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:10,044 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:10,058 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:10,060 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:10,062 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:10,063 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:10,064 INFO L467 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-02-27 12:59:10,071 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:10,100 INFO L301 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-02-27 12:59:10,101 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-02-27 12:59:10,114 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:10,114 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_50|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_50| ULTIMATE.start_main_p1))) (and (= 0 (select |v_#memory_int_50| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_50| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= 0 (select |v_#memory_int_50| ULTIMATE.start_main_p2)) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 (select |v_#memory_int_50| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 12:59:10,114 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 12:59:10,153 INFO L273 TraceCheckUtils]: 0: Hoare triple {1282#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1289#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 12:59:10,155 INFO L273 TraceCheckUtils]: 1: Hoare triple {1289#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1293#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-02-27 12:59:10,156 INFO L273 TraceCheckUtils]: 2: Hoare triple {1293#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p1] >= 0; {1293#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-02-27 12:59:10,156 INFO L273 TraceCheckUtils]: 3: Hoare triple {1293#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume !(#memory_int[main_p2] <= 0); {1283#false} is VALID [2019-02-27 12:59:10,157 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:59:10,157 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 12:59:10,178 INFO L273 TraceCheckUtils]: 3: Hoare triple {1300#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {1283#false} is VALID [2019-02-27 12:59:10,178 INFO L273 TraceCheckUtils]: 2: Hoare triple {1300#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {1300#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:59:10,179 INFO L273 TraceCheckUtils]: 1: Hoare triple {1307#(<= (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]; {1300#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:59:10,180 INFO L273 TraceCheckUtils]: 0: Hoare triple {1282#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1307#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:59:10,181 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:59:10,200 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 12:59:10,200 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-02-27 12:59:10,201 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 12:59:10,201 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-02-27 12:59:10,201 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 12:59:10,201 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-02-27 12:59:10,235 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:59:10,235 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-02-27 12:59:10,236 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-02-27 12:59:10,236 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-02-27 12:59:10,236 INFO L87 Difference]: Start difference. First operand 28 states and 88 transitions. Second operand 6 states. [2019-02-27 12:59:10,580 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:10,580 INFO L93 Difference]: Finished difference Result 36 states and 98 transitions. [2019-02-27 12:59:10,580 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-02-27 12:59:10,580 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-02-27 12:59:10,580 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 12:59:10,581 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-02-27 12:59:10,581 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 34 transitions. [2019-02-27 12:59:10,581 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-02-27 12:59:10,581 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 34 transitions. [2019-02-27 12:59:10,581 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 34 transitions. [2019-02-27 12:59:10,641 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 34 edges. 34 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:59:10,642 INFO L225 Difference]: With dead ends: 36 [2019-02-27 12:59:10,643 INFO L226 Difference]: Without dead ends: 35 [2019-02-27 12:59:10,643 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 10 GetRequests, 3 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=31, Invalid=41, Unknown=0, NotChecked=0, Total=72 [2019-02-27 12:59:10,644 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 35 states. [2019-02-27 12:59:10,771 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 35 to 29. [2019-02-27 12:59:10,771 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 12:59:10,772 INFO L82 GeneralOperation]: Start isEquivalent. First operand 35 states. Second operand 29 states. [2019-02-27 12:59:10,772 INFO L74 IsIncluded]: Start isIncluded. First operand 35 states. Second operand 29 states. [2019-02-27 12:59:10,772 INFO L87 Difference]: Start difference. First operand 35 states. Second operand 29 states. [2019-02-27 12:59:10,774 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:10,774 INFO L93 Difference]: Finished difference Result 35 states and 96 transitions. [2019-02-27 12:59:10,774 INFO L276 IsEmpty]: Start isEmpty. Operand 35 states and 96 transitions. [2019-02-27 12:59:10,775 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:59:10,775 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:59:10,776 INFO L74 IsIncluded]: Start isIncluded. First operand 29 states. Second operand 35 states. [2019-02-27 12:59:10,776 INFO L87 Difference]: Start difference. First operand 29 states. Second operand 35 states. [2019-02-27 12:59:10,777 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:10,777 INFO L93 Difference]: Finished difference Result 35 states and 96 transitions. [2019-02-27 12:59:10,777 INFO L276 IsEmpty]: Start isEmpty. Operand 35 states and 96 transitions. [2019-02-27 12:59:10,778 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:59:10,778 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:59:10,778 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 12:59:10,778 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 12:59:10,778 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 29 states. [2019-02-27 12:59:10,779 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 29 states to 29 states and 92 transitions. [2019-02-27 12:59:10,780 INFO L78 Accepts]: Start accepts. Automaton has 29 states and 92 transitions. Word has length 4 [2019-02-27 12:59:10,780 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 12:59:10,780 INFO L480 AbstractCegarLoop]: Abstraction has 29 states and 92 transitions. [2019-02-27 12:59:10,780 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-02-27 12:59:10,780 INFO L276 IsEmpty]: Start isEmpty. Operand 29 states and 92 transitions. [2019-02-27 12:59:10,780 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-02-27 12:59:10,780 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 12:59:10,781 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-02-27 12:59:10,781 INFO L423 AbstractCegarLoop]: === Iteration 11 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 12:59:10,781 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:59:10,781 INFO L82 PathProgramCache]: Analyzing trace with hash 929616, now seen corresponding path program 1 times [2019-02-27 12:59:10,781 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 12:59:10,782 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:59:10,782 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:59:10,782 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:59:10,782 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 12:59:10,788 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:10,974 INFO L273 TraceCheckUtils]: 0: Hoare triple {1479#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1481#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-02-27 12:59:10,975 INFO L273 TraceCheckUtils]: 1: Hoare triple {1481#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1482#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-02-27 12:59:10,976 INFO L273 TraceCheckUtils]: 2: Hoare triple {1482#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {1483#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-27 12:59:10,977 INFO L273 TraceCheckUtils]: 3: Hoare triple {1483#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1480#false} is VALID [2019-02-27 12:59:10,978 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:59:10,978 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:59:10,978 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 12:59:10,978 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-02-27 12:59:10,978 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [19] [2019-02-27 12:59:10,980 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 12:59:10,980 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 12:59:10,989 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 12:59:10,990 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 52 root evaluator evaluations with a maximum evaluation depth of 3. Performed 52 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-02-27 12:59:10,990 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:59:10,990 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 12:59:10,990 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:59:10,990 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-02-27 12:59:11,000 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:59:11,001 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 12:59:11,005 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:11,005 INFO L256 TraceCheckSpWp]: Trace formula consists of 21 conjuncts, 7 conjunts are in the unsatisfiable core [2019-02-27 12:59:11,007 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:11,008 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 12:59:11,041 INFO L467 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 15 treesize of output 18 [2019-02-27 12:59:11,048 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:11,049 INFO L467 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 18 treesize of output 24 [2019-02-27 12:59:11,066 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:11,067 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:11,068 INFO L467 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 20 treesize of output 34 [2019-02-27 12:59:11,085 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:11,086 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:11,087 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:11,089 INFO L467 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 22 treesize of output 45 [2019-02-27 12:59:11,092 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:11,111 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:11,121 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:11,130 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:11,147 INFO L301 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-02-27 12:59:11,148 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-02-27 12:59:11,154 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:11,154 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_52|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_52| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 12:59:11,155 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 12:59:11,210 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:11,211 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:11,213 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:11,214 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:11,215 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:11,217 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:11,218 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:11,219 INFO L467 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-02-27 12:59:11,223 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:11,255 INFO L301 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-02-27 12:59:11,255 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-02-27 12:59:11,260 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:11,260 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_53|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_53| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_53| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= (select |v_#memory_int_53| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_53| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_53| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= .cse0 0))) [2019-02-27 12:59:11,261 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 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) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 12:59:11,368 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:11,369 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:11,371 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:11,372 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:11,373 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:11,374 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:11,376 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:11,377 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:11,378 INFO L467 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 45 [2019-02-27 12:59:11,382 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:11,415 INFO L301 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-02-27 12:59:11,415 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-02-27 12:59:13,420 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:13,421 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_54|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_54| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= (select |v_#memory_int_54| ULTIMATE.start_main_p4) 0) (= (store |v_#memory_int_54| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_54| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 (select |v_#memory_int_54| ULTIMATE.start_main_p3)))) [2019-02-27 12:59:13,421 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 12:59:13,464 INFO L273 TraceCheckUtils]: 0: Hoare triple {1479#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1487#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 12:59:13,467 INFO L273 TraceCheckUtils]: 1: Hoare triple {1487#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1491#(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 (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 12:59:13,470 INFO L273 TraceCheckUtils]: 2: Hoare triple {1491#(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 (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {1495#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-27 12:59:13,472 INFO L273 TraceCheckUtils]: 3: Hoare triple {1495#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {1480#false} is VALID [2019-02-27 12:59:13,472 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:59:13,472 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 12:59:13,516 INFO L273 TraceCheckUtils]: 3: Hoare triple {1499#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1480#false} is VALID [2019-02-27 12:59:13,517 INFO L273 TraceCheckUtils]: 2: Hoare triple {1503#(<= 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]; {1499#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-27 12:59:13,519 INFO L273 TraceCheckUtils]: 1: Hoare triple {1507#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1503#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-27 12:59:13,522 INFO L273 TraceCheckUtils]: 0: Hoare triple {1479#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1507#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-27 12:59:13,522 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:59:13,544 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 12:59:13,544 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-02-27 12:59:13,544 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 12:59:13,545 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-02-27 12:59:13,545 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 12:59:13,545 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-02-27 12:59:13,558 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:59:13,558 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-02-27 12:59:13,559 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-02-27 12:59:13,559 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-02-27 12:59:13,559 INFO L87 Difference]: Start difference. First operand 29 states and 92 transitions. Second operand 8 states. [2019-02-27 12:59:14,489 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:14,489 INFO L93 Difference]: Finished difference Result 55 states and 140 transitions. [2019-02-27 12:59:14,490 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-02-27 12:59:14,490 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-02-27 12:59:14,490 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 12:59:14,490 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-27 12:59:14,491 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 54 transitions. [2019-02-27 12:59:14,491 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-27 12:59:14,491 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 54 transitions. [2019-02-27 12:59:14,492 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 54 transitions. [2019-02-27 12:59:14,573 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 54 edges. 54 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:59:14,575 INFO L225 Difference]: With dead ends: 55 [2019-02-27 12:59:14,575 INFO L226 Difference]: Without dead ends: 54 [2019-02-27 12:59:14,575 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 10 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 28 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=53, Invalid=79, Unknown=0, NotChecked=0, Total=132 [2019-02-27 12:59:14,576 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 54 states. [2019-02-27 12:59:14,770 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 54 to 34. [2019-02-27 12:59:14,770 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 12:59:14,770 INFO L82 GeneralOperation]: Start isEquivalent. First operand 54 states. Second operand 34 states. [2019-02-27 12:59:14,770 INFO L74 IsIncluded]: Start isIncluded. First operand 54 states. Second operand 34 states. [2019-02-27 12:59:14,771 INFO L87 Difference]: Start difference. First operand 54 states. Second operand 34 states. [2019-02-27 12:59:14,773 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:14,773 INFO L93 Difference]: Finished difference Result 54 states and 137 transitions. [2019-02-27 12:59:14,773 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 137 transitions. [2019-02-27 12:59:14,773 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:59:14,773 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:59:14,774 INFO L74 IsIncluded]: Start isIncluded. First operand 34 states. Second operand 54 states. [2019-02-27 12:59:14,774 INFO L87 Difference]: Start difference. First operand 34 states. Second operand 54 states. [2019-02-27 12:59:14,776 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:14,776 INFO L93 Difference]: Finished difference Result 54 states and 137 transitions. [2019-02-27 12:59:14,776 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 137 transitions. [2019-02-27 12:59:14,776 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:59:14,777 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:59:14,777 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 12:59:14,777 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 12:59:14,777 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 34 states. [2019-02-27 12:59:14,778 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 34 states to 34 states and 117 transitions. [2019-02-27 12:59:14,779 INFO L78 Accepts]: Start accepts. Automaton has 34 states and 117 transitions. Word has length 4 [2019-02-27 12:59:14,779 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 12:59:14,779 INFO L480 AbstractCegarLoop]: Abstraction has 34 states and 117 transitions. [2019-02-27 12:59:14,779 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-02-27 12:59:14,779 INFO L276 IsEmpty]: Start isEmpty. Operand 34 states and 117 transitions. [2019-02-27 12:59:14,779 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-02-27 12:59:14,779 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 12:59:14,780 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-02-27 12:59:14,780 INFO L423 AbstractCegarLoop]: === Iteration 12 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 12:59:14,780 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:59:14,780 INFO L82 PathProgramCache]: Analyzing trace with hash 933584, now seen corresponding path program 1 times [2019-02-27 12:59:14,780 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 12:59:14,781 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:59:14,781 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:59:14,781 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:59:14,781 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 12:59:14,788 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:14,930 INFO L273 TraceCheckUtils]: 0: Hoare triple {1752#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1754#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-02-27 12:59:14,931 INFO L273 TraceCheckUtils]: 1: Hoare triple {1754#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {1755#(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-02-27 12:59:14,932 INFO L273 TraceCheckUtils]: 2: Hoare triple {1755#(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]; {1756#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-02-27 12:59:14,939 INFO L273 TraceCheckUtils]: 3: Hoare triple {1756#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {1753#false} is VALID [2019-02-27 12:59:14,939 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:59:14,940 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:59:14,940 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 12:59:14,940 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-02-27 12:59:14,940 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [19] [2019-02-27 12:59:14,941 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 12:59:14,941 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 12:59:14,958 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 12:59:14,958 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 52 root evaluator evaluations with a maximum evaluation depth of 3. Performed 52 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-02-27 12:59:14,958 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:59:14,959 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 12:59:14,959 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:59:14,959 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-02-27 12:59:14,967 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:59:14,967 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 12:59:14,971 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:14,972 INFO L256 TraceCheckSpWp]: Trace formula consists of 21 conjuncts, 7 conjunts are in the unsatisfiable core [2019-02-27 12:59:14,974 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:14,975 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 12:59:14,995 INFO L467 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 15 treesize of output 18 [2019-02-27 12:59:15,006 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:15,007 INFO L467 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 18 treesize of output 24 [2019-02-27 12:59:15,027 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:15,028 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:15,030 INFO L467 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 20 treesize of output 34 [2019-02-27 12:59:15,054 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:15,056 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:15,058 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:15,059 INFO L467 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 22 treesize of output 45 [2019-02-27 12:59:15,065 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:15,085 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:15,097 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:15,107 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:15,130 INFO L301 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-02-27 12:59:15,130 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-02-27 12:59:15,134 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:15,135 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_57|, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (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) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 12:59:15,135 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 12:59:15,198 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:15,200 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:15,201 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:15,202 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:15,204 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:15,205 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:15,206 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:15,208 INFO L467 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-02-27 12:59:15,211 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:15,244 INFO L301 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-02-27 12:59:15,244 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-02-27 12:59:17,264 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:17,265 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_58|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_58| ULTIMATE.start_main_p2))) (and (= 0 (select |v_#memory_int_58| ULTIMATE.start_main_p4)) (= (select |v_#memory_int_58| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_58| ULTIMATE.start_main_p1) 0) (= (store |v_#memory_int_58| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 12:59:17,265 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 12:59:17,336 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:17,337 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:17,338 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:17,340 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:17,341 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:17,342 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:17,343 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:17,344 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:17,346 INFO L467 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 47 [2019-02-27 12:59:17,349 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:17,381 INFO L301 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-02-27 12:59:17,382 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-02-27 12:59:19,387 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:19,388 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_59|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_59| ULTIMATE.start_main_p3))) (and (= 0 (select |v_#memory_int_59| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_59| ULTIMATE.start_main_p1)) (= (store |v_#memory_int_59| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= 0 .cse0) (= 0 (+ (select |v_#memory_int_59| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 12:59:19,388 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 12:59:19,424 INFO L273 TraceCheckUtils]: 0: Hoare triple {1752#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1760#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 12:59:19,427 INFO L273 TraceCheckUtils]: 1: Hoare triple {1760#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {1764#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-02-27 12:59:19,430 INFO L273 TraceCheckUtils]: 2: Hoare triple {1764#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {1768#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-02-27 12:59:19,431 INFO L273 TraceCheckUtils]: 3: Hoare triple {1768#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume !(#memory_int[main_p1] >= 0); {1753#false} is VALID [2019-02-27 12:59:19,432 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:59:19,432 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 12:59:19,474 INFO L273 TraceCheckUtils]: 3: Hoare triple {1772#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1753#false} is VALID [2019-02-27 12:59:19,476 INFO L273 TraceCheckUtils]: 2: Hoare triple {1776#(<= 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]; {1772#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-27 12:59:19,478 INFO L273 TraceCheckUtils]: 1: Hoare triple {1780#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {1776#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-02-27 12:59:19,480 INFO L273 TraceCheckUtils]: 0: Hoare triple {1752#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1780#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-02-27 12:59:19,480 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:59:19,501 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 12:59:19,501 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-02-27 12:59:19,501 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 12:59:19,501 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-02-27 12:59:19,501 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 12:59:19,502 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-02-27 12:59:19,514 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:59:19,515 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-02-27 12:59:19,515 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-02-27 12:59:19,515 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-02-27 12:59:19,515 INFO L87 Difference]: Start difference. First operand 34 states and 117 transitions. Second operand 8 states. [2019-02-27 12:59:20,412 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:20,412 INFO L93 Difference]: Finished difference Result 56 states and 150 transitions. [2019-02-27 12:59:20,412 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-02-27 12:59:20,412 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-02-27 12:59:20,413 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 12:59:20,413 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-27 12:59:20,413 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 47 transitions. [2019-02-27 12:59:20,413 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-27 12:59:20,414 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 47 transitions. [2019-02-27 12:59:20,414 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 47 transitions. [2019-02-27 12:59:20,508 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 47 edges. 47 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:59:20,509 INFO L225 Difference]: With dead ends: 56 [2019-02-27 12:59:20,509 INFO L226 Difference]: Without dead ends: 54 [2019-02-27 12:59:20,510 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-02-27 12:59:20,510 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 54 states. [2019-02-27 12:59:20,682 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 54 to 36. [2019-02-27 12:59:20,682 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 12:59:20,682 INFO L82 GeneralOperation]: Start isEquivalent. First operand 54 states. Second operand 36 states. [2019-02-27 12:59:20,682 INFO L74 IsIncluded]: Start isIncluded. First operand 54 states. Second operand 36 states. [2019-02-27 12:59:20,683 INFO L87 Difference]: Start difference. First operand 54 states. Second operand 36 states. [2019-02-27 12:59:20,685 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:20,685 INFO L93 Difference]: Finished difference Result 54 states and 146 transitions. [2019-02-27 12:59:20,685 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 146 transitions. [2019-02-27 12:59:20,685 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:59:20,685 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:59:20,686 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 54 states. [2019-02-27 12:59:20,686 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 54 states. [2019-02-27 12:59:20,688 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:20,688 INFO L93 Difference]: Finished difference Result 54 states and 146 transitions. [2019-02-27 12:59:20,688 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 146 transitions. [2019-02-27 12:59:20,688 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:59:20,688 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:59:20,688 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 12:59:20,689 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 12:59:20,689 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 36 states. [2019-02-27 12:59:20,690 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 36 states to 36 states and 127 transitions. [2019-02-27 12:59:20,690 INFO L78 Accepts]: Start accepts. Automaton has 36 states and 127 transitions. Word has length 4 [2019-02-27 12:59:20,690 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 12:59:20,690 INFO L480 AbstractCegarLoop]: Abstraction has 36 states and 127 transitions. [2019-02-27 12:59:20,691 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-02-27 12:59:20,691 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 127 transitions. [2019-02-27 12:59:20,691 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-02-27 12:59:20,691 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 12:59:20,691 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-02-27 12:59:20,691 INFO L423 AbstractCegarLoop]: === Iteration 13 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 12:59:20,692 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:59:20,692 INFO L82 PathProgramCache]: Analyzing trace with hash 937616, now seen corresponding path program 1 times [2019-02-27 12:59:20,692 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 12:59:20,693 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:59:20,693 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:59:20,693 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:59:20,693 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 12:59:20,699 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:20,774 INFO L273 TraceCheckUtils]: 0: Hoare triple {2034#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2036#(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-02-27 12:59:20,775 INFO L273 TraceCheckUtils]: 1: Hoare triple {2036#(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]; {2037#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:59:20,776 INFO L273 TraceCheckUtils]: 2: Hoare triple {2037#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {2037#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:59:20,776 INFO L273 TraceCheckUtils]: 3: Hoare triple {2037#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {2035#false} is VALID [2019-02-27 12:59:20,777 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:59:20,777 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:59:20,777 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 12:59:20,777 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-02-27 12:59:20,778 INFO L207 CegarAbsIntRunner]: [0], [14], [20], [21] [2019-02-27 12:59:20,779 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 12:59:20,779 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 12:59:20,790 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 12:59:20,790 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 52 root evaluator evaluations with a maximum evaluation depth of 3. Performed 52 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-02-27 12:59:20,790 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:59:20,791 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 12:59:20,791 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:59:20,791 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-02-27 12:59:20,800 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:59:20,800 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 12:59:20,804 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:20,804 INFO L256 TraceCheckSpWp]: Trace formula consists of 21 conjuncts, 5 conjunts are in the unsatisfiable core [2019-02-27 12:59:20,809 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:20,809 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 12:59:20,832 INFO L467 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 15 treesize of output 18 [2019-02-27 12:59:20,845 INFO L467 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 18 treesize of output 20 [2019-02-27 12:59:20,862 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:20,863 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 26 [2019-02-27 12:59:20,878 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:20,879 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:20,880 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 33 [2019-02-27 12:59:20,887 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:20,906 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:20,913 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:20,921 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:20,937 INFO L301 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-02-27 12:59:20,938 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:22, output treesize:27 [2019-02-27 12:59:20,942 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:20,942 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_62|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (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) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 12:59:20,942 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 12:59:20,995 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:20,996 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:20,998 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:20,999 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:21,000 INFO L467 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-02-27 12:59:21,002 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:21,022 INFO L301 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-02-27 12:59:21,023 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:32, output treesize:22 [2019-02-27 12:59:23,045 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:23,045 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_63|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_63| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= |#memory_int| (store |v_#memory_int_63| ULTIMATE.start_main_p3 (+ .cse0 1))) (= (select |v_#memory_int_63| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_63| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-02-27 12:59:23,045 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 12:59:23,108 INFO L273 TraceCheckUtils]: 0: Hoare triple {2034#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2041#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-02-27 12:59:23,110 INFO L273 TraceCheckUtils]: 1: Hoare triple {2041#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {2045#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-02-27 12:59:23,127 INFO L273 TraceCheckUtils]: 2: Hoare triple {2045#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume #memory_int[main_p1] >= 0; {2045#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-02-27 12:59:23,128 INFO L273 TraceCheckUtils]: 3: Hoare triple {2045#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume !(#memory_int[main_p2] <= 0); {2035#false} is VALID [2019-02-27 12:59:23,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-02-27 12:59:23,128 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 12:59:23,150 INFO L273 TraceCheckUtils]: 3: Hoare triple {2052#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {2035#false} is VALID [2019-02-27 12:59:23,150 INFO L273 TraceCheckUtils]: 2: Hoare triple {2052#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {2052#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:59:23,152 INFO L273 TraceCheckUtils]: 1: Hoare triple {2059#(<= (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]; {2052#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:59:23,154 INFO L273 TraceCheckUtils]: 0: Hoare triple {2034#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2059#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:59:23,154 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:59:23,173 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 12:59:23,173 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-02-27 12:59:23,174 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 12:59:23,174 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-02-27 12:59:23,174 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 12:59:23,174 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-02-27 12:59:23,186 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:59:23,186 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-02-27 12:59:23,186 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-02-27 12:59:23,186 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-02-27 12:59:23,187 INFO L87 Difference]: Start difference. First operand 36 states and 127 transitions. Second operand 6 states. [2019-02-27 12:59:23,616 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:23,617 INFO L93 Difference]: Finished difference Result 48 states and 142 transitions. [2019-02-27 12:59:23,617 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-02-27 12:59:23,617 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-02-27 12:59:23,617 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 12:59:23,617 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-02-27 12:59:23,618 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 36 transitions. [2019-02-27 12:59:23,618 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-02-27 12:59:23,619 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 36 transitions. [2019-02-27 12:59:23,619 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 36 transitions. [2019-02-27 12:59:23,689 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 36 edges. 36 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:59:23,690 INFO L225 Difference]: With dead ends: 48 [2019-02-27 12:59:23,690 INFO L226 Difference]: Without dead ends: 47 [2019-02-27 12:59:23,690 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-02-27 12:59:23,690 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 47 states. [2019-02-27 12:59:23,876 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 47 to 36. [2019-02-27 12:59:23,876 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 12:59:23,876 INFO L82 GeneralOperation]: Start isEquivalent. First operand 47 states. Second operand 36 states. [2019-02-27 12:59:23,877 INFO L74 IsIncluded]: Start isIncluded. First operand 47 states. Second operand 36 states. [2019-02-27 12:59:23,877 INFO L87 Difference]: Start difference. First operand 47 states. Second operand 36 states. [2019-02-27 12:59:23,879 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:23,879 INFO L93 Difference]: Finished difference Result 47 states and 140 transitions. [2019-02-27 12:59:23,879 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 140 transitions. [2019-02-27 12:59:23,880 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:59:23,880 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:59:23,880 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 47 states. [2019-02-27 12:59:23,880 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 47 states. [2019-02-27 12:59:23,882 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:23,882 INFO L93 Difference]: Finished difference Result 47 states and 140 transitions. [2019-02-27 12:59:23,882 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 140 transitions. [2019-02-27 12:59:23,882 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:59:23,882 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:59:23,882 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 12:59:23,883 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 12:59:23,883 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 36 states. [2019-02-27 12:59:23,884 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 36 states to 36 states and 127 transitions. [2019-02-27 12:59:23,884 INFO L78 Accepts]: Start accepts. Automaton has 36 states and 127 transitions. Word has length 4 [2019-02-27 12:59:23,884 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 12:59:23,884 INFO L480 AbstractCegarLoop]: Abstraction has 36 states and 127 transitions. [2019-02-27 12:59:23,885 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-02-27 12:59:23,885 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 127 transitions. [2019-02-27 12:59:23,885 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-02-27 12:59:23,885 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 12:59:23,885 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-02-27 12:59:23,885 INFO L423 AbstractCegarLoop]: === Iteration 14 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 12:59:23,886 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:59:23,886 INFO L82 PathProgramCache]: Analyzing trace with hash 29112214, now seen corresponding path program 1 times [2019-02-27 12:59:23,886 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 12:59:23,887 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:59:23,887 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:59:23,887 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:59:23,887 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 12:59:23,893 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:24,268 INFO L273 TraceCheckUtils]: 0: Hoare triple {2289#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2291#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-02-27 12:59:24,269 INFO L273 TraceCheckUtils]: 1: Hoare triple {2291#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2292#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-02-27 12:59:24,270 INFO L273 TraceCheckUtils]: 2: Hoare triple {2292#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {2292#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-02-27 12:59:24,271 INFO L273 TraceCheckUtils]: 3: Hoare triple {2292#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} assume #memory_int[main_p1] >= 0; {2293#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:59:24,272 INFO L273 TraceCheckUtils]: 4: Hoare triple {2293#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {2290#false} is VALID [2019-02-27 12:59:24,272 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-02-27 12:59:24,273 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:59:24,273 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 12:59:24,273 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-02-27 12:59:24,273 INFO L207 CegarAbsIntRunner]: [0], [6], [16], [20], [21] [2019-02-27 12:59:24,276 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 12:59:24,276 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 12:59:24,295 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 12:59:24,295 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 3. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-02-27 12:59:24,296 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:59:24,296 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 12:59:24,296 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:59:24,296 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-02-27 12:59:24,308 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:59:24,308 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 12:59:24,321 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:24,322 INFO L256 TraceCheckSpWp]: Trace formula consists of 22 conjuncts, 7 conjunts are in the unsatisfiable core [2019-02-27 12:59:24,340 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:24,341 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 12:59:24,366 INFO L467 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 15 treesize of output 18 [2019-02-27 12:59:24,371 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:24,372 INFO L467 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 18 treesize of output 24 [2019-02-27 12:59:24,383 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:24,384 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:24,384 INFO L467 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 20 treesize of output 34 [2019-02-27 12:59:24,397 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:24,398 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:24,400 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:24,401 INFO L467 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 22 treesize of output 45 [2019-02-27 12:59:24,409 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:24,426 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:24,443 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:24,453 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:24,470 INFO L301 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-02-27 12:59:24,471 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-02-27 12:59:24,480 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:24,480 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_65|, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_65| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 12:59:24,481 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 12:59:24,556 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:24,557 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:24,559 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:24,560 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:24,561 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:24,562 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:24,564 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:24,565 INFO L467 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-02-27 12:59:24,568 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:24,600 INFO L301 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-02-27 12:59:24,600 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-02-27 12:59:24,751 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:24,751 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_66|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_66| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (select |v_#memory_int_66| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_66| ULTIMATE.start_main_p3) 0) (= (store |v_#memory_int_66| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_66| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 12:59:24,751 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 12:59:24,806 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:24,808 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:24,809 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:24,810 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:24,812 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:24,813 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:24,814 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:24,835 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:24,836 INFO L467 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 47 [2019-02-27 12:59:24,841 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:24,873 INFO L301 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-02-27 12:59:24,873 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-02-27 12:59:24,983 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:24,984 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_67|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_67| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= (select |v_#memory_int_67| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_67| ULTIMATE.start_main_p2) 0) (= (store |v_#memory_int_67| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= (+ (select |v_#memory_int_67| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 12:59:24,984 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 12:59:25,036 INFO L273 TraceCheckUtils]: 0: Hoare triple {2289#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2297#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 12:59:25,038 INFO L273 TraceCheckUtils]: 1: Hoare triple {2297#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2301#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-02-27 12:59:25,040 INFO L273 TraceCheckUtils]: 2: Hoare triple {2301#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {2305#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-02-27 12:59:25,041 INFO L273 TraceCheckUtils]: 3: Hoare triple {2305#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume #memory_int[main_p1] >= 0; {2305#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-02-27 12:59:25,042 INFO L273 TraceCheckUtils]: 4: Hoare triple {2305#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume !(#memory_int[main_p2] <= 0); {2290#false} is VALID [2019-02-27 12:59:25,042 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:59:25,043 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 12:59:25,084 INFO L273 TraceCheckUtils]: 4: Hoare triple {2312#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {2290#false} is VALID [2019-02-27 12:59:25,085 INFO L273 TraceCheckUtils]: 3: Hoare triple {2312#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {2312#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:59:25,086 INFO L273 TraceCheckUtils]: 2: Hoare triple {2319#(<= (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]; {2312#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:59:25,088 INFO L273 TraceCheckUtils]: 1: Hoare triple {2323#(<= (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]; {2319#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:59:25,090 INFO L273 TraceCheckUtils]: 0: Hoare triple {2289#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2323#(<= (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-02-27 12:59:25,090 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:59:25,109 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 12:59:25,109 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-02-27 12:59:25,110 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 12:59:25,110 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-02-27 12:59:25,110 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 12:59:25,110 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-02-27 12:59:25,127 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:59:25,128 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-02-27 12:59:25,128 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-02-27 12:59:25,128 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-02-27 12:59:25,128 INFO L87 Difference]: Start difference. First operand 36 states and 127 transitions. Second operand 8 states. [2019-02-27 12:59:25,938 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:25,938 INFO L93 Difference]: Finished difference Result 56 states and 161 transitions. [2019-02-27 12:59:25,938 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-02-27 12:59:25,938 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-02-27 12:59:25,938 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 12:59:25,938 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-27 12:59:25,939 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 44 transitions. [2019-02-27 12:59:25,939 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-27 12:59:25,939 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 44 transitions. [2019-02-27 12:59:25,940 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 44 transitions. [2019-02-27 12:59:26,417 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 44 edges. 44 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:59:26,418 INFO L225 Difference]: With dead ends: 56 [2019-02-27 12:59:26,419 INFO L226 Difference]: Without dead ends: 55 [2019-02-27 12:59:26,419 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 2 SyntacticMatches, 1 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-02-27 12:59:26,419 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 55 states. [2019-02-27 12:59:26,641 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 55 to 39. [2019-02-27 12:59:26,642 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 12:59:26,642 INFO L82 GeneralOperation]: Start isEquivalent. First operand 55 states. Second operand 39 states. [2019-02-27 12:59:26,642 INFO L74 IsIncluded]: Start isIncluded. First operand 55 states. Second operand 39 states. [2019-02-27 12:59:26,642 INFO L87 Difference]: Start difference. First operand 55 states. Second operand 39 states. [2019-02-27 12:59:26,644 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:26,645 INFO L93 Difference]: Finished difference Result 55 states and 159 transitions. [2019-02-27 12:59:26,645 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 159 transitions. [2019-02-27 12:59:26,645 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:59:26,645 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:59:26,645 INFO L74 IsIncluded]: Start isIncluded. First operand 39 states. Second operand 55 states. [2019-02-27 12:59:26,645 INFO L87 Difference]: Start difference. First operand 39 states. Second operand 55 states. [2019-02-27 12:59:26,647 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:26,647 INFO L93 Difference]: Finished difference Result 55 states and 159 transitions. [2019-02-27 12:59:26,647 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 159 transitions. [2019-02-27 12:59:26,648 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:59:26,648 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:59:26,648 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 12:59:26,648 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 12:59:26,648 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 39 states. [2019-02-27 12:59:26,650 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 39 states to 39 states and 142 transitions. [2019-02-27 12:59:26,650 INFO L78 Accepts]: Start accepts. Automaton has 39 states and 142 transitions. Word has length 5 [2019-02-27 12:59:26,650 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 12:59:26,650 INFO L480 AbstractCegarLoop]: Abstraction has 39 states and 142 transitions. [2019-02-27 12:59:26,650 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-02-27 12:59:26,650 INFO L276 IsEmpty]: Start isEmpty. Operand 39 states and 142 transitions. [2019-02-27 12:59:26,651 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-02-27 12:59:26,651 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 12:59:26,651 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-02-27 12:59:26,651 INFO L423 AbstractCegarLoop]: === Iteration 15 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 12:59:26,651 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:59:26,652 INFO L82 PathProgramCache]: Analyzing trace with hash 29111902, now seen corresponding path program 1 times [2019-02-27 12:59:26,652 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 12:59:26,652 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:59:26,653 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:59:26,653 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:59:26,653 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 12:59:26,658 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:26,873 INFO L273 TraceCheckUtils]: 0: Hoare triple {2588#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2590#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (<= (+ ULTIMATE.start_main_p1 3) 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-02-27 12:59:26,874 INFO L273 TraceCheckUtils]: 1: Hoare triple {2590#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (<= (+ ULTIMATE.start_main_p1 3) 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]; {2591#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} is VALID [2019-02-27 12:59:26,875 INFO L273 TraceCheckUtils]: 2: Hoare triple {2591#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {2592#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} is VALID [2019-02-27 12:59:26,876 INFO L273 TraceCheckUtils]: 3: Hoare triple {2592#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {2593#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-27 12:59:26,877 INFO L273 TraceCheckUtils]: 4: Hoare triple {2593#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {2589#false} is VALID [2019-02-27 12:59:26,877 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:59:26,878 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:59:26,878 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 12:59:26,878 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-02-27 12:59:26,878 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [16], [19] [2019-02-27 12:59:26,880 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 12:59:26,880 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 12:59:26,899 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 12:59:26,899 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 3. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-02-27 12:59:26,899 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:59:26,899 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 12:59:26,900 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:59:26,900 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-02-27 12:59:26,909 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:59:26,909 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 12:59:26,914 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:26,914 INFO L256 TraceCheckSpWp]: Trace formula consists of 22 conjuncts, 8 conjunts are in the unsatisfiable core [2019-02-27 12:59:26,918 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:26,918 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 12:59:26,950 INFO L467 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 15 treesize of output 18 [2019-02-27 12:59:26,956 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:26,958 INFO L467 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 18 treesize of output 24 [2019-02-27 12:59:26,968 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:26,969 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:26,970 INFO L467 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 20 treesize of output 34 [2019-02-27 12:59:26,986 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:26,987 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:26,988 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:26,988 INFO L467 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 22 treesize of output 45 [2019-02-27 12:59:26,994 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:27,011 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:27,021 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:27,029 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:27,045 INFO L301 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-02-27 12:59:27,046 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-02-27 12:59:27,068 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:27,068 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_70|, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= |#memory_int| (store (store (store (store |v_#memory_int_70| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0))) [2019-02-27 12:59:27,069 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 12:59:27,131 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:27,132 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:27,134 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:27,135 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:27,137 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:27,141 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:27,142 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:27,142 INFO L467 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-02-27 12:59:27,146 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:27,178 INFO L301 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-02-27 12:59:27,179 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-02-27 12:59:29,226 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:29,226 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_71|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_71| ULTIMATE.start_main_p4))) (and (= .cse0 0) (= 0 (select |v_#memory_int_71| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_71| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 (select |v_#memory_int_71| ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_71| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 12:59:29,226 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 12:59:29,416 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:29,418 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:29,420 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:29,422 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:29,424 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:29,428 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:29,430 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:29,432 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:29,433 INFO L467 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 47 [2019-02-27 12:59:29,436 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:29,467 INFO L301 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-02-27 12:59:29,468 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-02-27 12:59:29,473 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:29,473 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_72|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_72| ULTIMATE.start_main_p1))) (and (= (store |v_#memory_int_72| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_72| ULTIMATE.start_main_p3)) (= (+ (select |v_#memory_int_72| ULTIMATE.start_main_p4) 1) 0) (= 0 .cse0) (= 0 (select |v_#memory_int_72| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 12:59:29,473 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 12:59:29,531 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:29,533 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:29,534 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:29,535 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:29,537 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:29,538 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:29,539 INFO L158 IndexEqualityManager]: detected equality via solver [2019-02-27 12:59:29,540 INFO L467 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 47 [2019-02-27 12:59:29,545 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:29,578 INFO L301 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-02-27 12:59:29,578 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-02-27 12:59:29,585 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:29,586 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_73|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_73| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_73| ULTIMATE.start_main_p4) 1)) (= (select |v_#memory_int_73| ULTIMATE.start_main_p1) 1) (= (store |v_#memory_int_73| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= 0 (select |v_#memory_int_73| ULTIMATE.start_main_p3)) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 12:59:29,586 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 12:59:29,614 INFO L273 TraceCheckUtils]: 0: Hoare triple {2588#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2597#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 12:59:29,616 INFO L273 TraceCheckUtils]: 1: Hoare triple {2597#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2601#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-02-27 12:59:29,618 INFO L273 TraceCheckUtils]: 2: Hoare triple {2601#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {2605#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-02-27 12:59:29,622 INFO L273 TraceCheckUtils]: 3: Hoare triple {2605#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {2609#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-27 12:59:29,623 INFO L273 TraceCheckUtils]: 4: Hoare triple {2609#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {2589#false} is VALID [2019-02-27 12:59:29,624 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:59:29,624 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 12:59:29,684 INFO L273 TraceCheckUtils]: 4: Hoare triple {2613#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {2589#false} is VALID [2019-02-27 12:59:29,685 INFO L273 TraceCheckUtils]: 3: Hoare triple {2617#(<= 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]; {2613#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-27 12:59:29,686 INFO L273 TraceCheckUtils]: 2: Hoare triple {2621#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {2617#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-27 12:59:29,687 INFO L273 TraceCheckUtils]: 1: Hoare triple {2625#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2621#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-27 12:59:29,688 INFO L273 TraceCheckUtils]: 0: Hoare triple {2588#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2625#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-27 12:59:29,689 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 3 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:59:29,709 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 12:59:29,709 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-02-27 12:59:29,709 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 12:59:29,709 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-02-27 12:59:29,710 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 12:59:29,710 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-02-27 12:59:29,726 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:59:29,726 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-02-27 12:59:29,727 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-02-27 12:59:29,727 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=70, Invalid=112, Unknown=0, NotChecked=0, Total=182 [2019-02-27 12:59:29,727 INFO L87 Difference]: Start difference. First operand 39 states and 142 transitions. Second operand 10 states. [2019-02-27 12:59:31,165 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:31,165 INFO L93 Difference]: Finished difference Result 76 states and 212 transitions. [2019-02-27 12:59:31,165 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-02-27 12:59:31,165 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-02-27 12:59:31,166 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 12:59:31,166 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-27 12:59:31,166 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 64 transitions. [2019-02-27 12:59:31,166 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-27 12:59:31,167 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 64 transitions. [2019-02-27 12:59:31,167 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 64 transitions. [2019-02-27 12:59:31,420 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 64 edges. 64 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:59:31,422 INFO L225 Difference]: With dead ends: 76 [2019-02-27 12:59:31,422 INFO L226 Difference]: Without dead ends: 75 [2019-02-27 12:59:31,423 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 59 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=88, Invalid=152, Unknown=0, NotChecked=0, Total=240 [2019-02-27 12:59:31,423 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 75 states. [2019-02-27 12:59:31,633 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 75 to 41. [2019-02-27 12:59:31,633 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 12:59:31,633 INFO L82 GeneralOperation]: Start isEquivalent. First operand 75 states. Second operand 41 states. [2019-02-27 12:59:31,633 INFO L74 IsIncluded]: Start isIncluded. First operand 75 states. Second operand 41 states. [2019-02-27 12:59:31,634 INFO L87 Difference]: Start difference. First operand 75 states. Second operand 41 states. [2019-02-27 12:59:31,638 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:31,638 INFO L93 Difference]: Finished difference Result 75 states and 209 transitions. [2019-02-27 12:59:31,638 INFO L276 IsEmpty]: Start isEmpty. Operand 75 states and 209 transitions. [2019-02-27 12:59:31,639 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:59:31,639 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:59:31,639 INFO L74 IsIncluded]: Start isIncluded. First operand 41 states. Second operand 75 states. [2019-02-27 12:59:31,639 INFO L87 Difference]: Start difference. First operand 41 states. Second operand 75 states. [2019-02-27 12:59:31,641 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:31,642 INFO L93 Difference]: Finished difference Result 75 states and 209 transitions. [2019-02-27 12:59:31,642 INFO L276 IsEmpty]: Start isEmpty. Operand 75 states and 209 transitions. [2019-02-27 12:59:31,642 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:59:31,642 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:59:31,642 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 12:59:31,643 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 12:59:31,643 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 41 states. [2019-02-27 12:59:31,644 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 41 states to 41 states and 152 transitions. [2019-02-27 12:59:31,644 INFO L78 Accepts]: Start accepts. Automaton has 41 states and 152 transitions. Word has length 5 [2019-02-27 12:59:31,645 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 12:59:31,645 INFO L480 AbstractCegarLoop]: Abstraction has 41 states and 152 transitions. [2019-02-27 12:59:31,645 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-02-27 12:59:31,645 INFO L276 IsEmpty]: Start isEmpty. Operand 41 states and 152 transitions. [2019-02-27 12:59:31,645 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-02-27 12:59:31,645 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 12:59:31,646 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-02-27 12:59:31,646 INFO L423 AbstractCegarLoop]: === Iteration 16 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 12:59:31,646 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:59:31,646 INFO L82 PathProgramCache]: Analyzing trace with hash 29115870, now seen corresponding path program 1 times [2019-02-27 12:59:31,646 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 12:59:31,647 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:59:31,647 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:59:31,647 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:59:31,647 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 12:59:31,654 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:32,194 INFO L273 TraceCheckUtils]: 0: Hoare triple {2962#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2964#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-02-27 12:59:32,196 INFO L273 TraceCheckUtils]: 1: Hoare triple {2964#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2965#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-02-27 12:59:32,197 INFO L273 TraceCheckUtils]: 2: Hoare triple {2965#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {2966#(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-02-27 12:59:32,197 INFO L273 TraceCheckUtils]: 3: Hoare triple {2966#(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]; {2967#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-02-27 12:59:32,198 INFO L273 TraceCheckUtils]: 4: Hoare triple {2967#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {2963#false} is VALID [2019-02-27 12:59:32,198 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:59:32,198 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:59:32,198 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 12:59:32,198 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-02-27 12:59:32,199 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [16], [19] [2019-02-27 12:59:32,200 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 12:59:32,200 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 12:59:32,212 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 12:59:32,213 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 3. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-02-27 12:59:32,213 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:59:32,213 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 12:59:32,213 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:59:32,213 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-02-27 12:59:32,224 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:59:32,224 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 12:59:32,228 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:32,229 INFO L256 TraceCheckSpWp]: Trace formula consists of 22 conjuncts, 8 conjunts are in the unsatisfiable core [2019-02-27 12:59:32,234 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:32,234 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 12:59:32,255 INFO L467 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 15 treesize of output 18 [2019-02-27 12:59:32,266 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:32,267 INFO L467 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 18 treesize of output 24 [2019-02-27 12:59:32,281 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:32,282 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:32,284 INFO L467 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 20 treesize of output 34 [2019-02-27 12:59:32,318 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:32,319 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:32,320 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:32,322 INFO L467 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 22 treesize of output 45 [2019-02-27 12:59:32,325 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:32,343 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:32,355 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:32,368 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:32,382 INFO L301 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:32,383 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-02-27 12:59:32,386 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:32,386 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_77|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (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) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 12:59:32,387 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 12:59:32,434 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:32,435 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:32,437 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:32,438 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:32,439 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:32,440 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:32,442 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:32,443 INFO L467 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-02-27 12:59:32,446 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:32,477 INFO L301 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-02-27 12:59:32,478 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-02-27 12:59:34,489 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:34,490 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_78|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_78| ULTIMATE.start_main_p4))) (and (= (store |v_#memory_int_78| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_78| ULTIMATE.start_main_p2) 0) (= .cse0 0) (= (select |v_#memory_int_78| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_78| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 12:59:34,490 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 12:59:35,139 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:35,156 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:35,165 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:35,167 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:35,169 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:35,172 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:35,175 INFO L158 IndexEqualityManager]: detected equality via solver [2019-02-27 12:59:35,176 INFO L467 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 47 [2019-02-27 12:59:35,182 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:35,210 INFO L301 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-02-27 12:59:35,211 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-02-27 12:59:35,304 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:35,304 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_79|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_79| ULTIMATE.start_main_p2))) (and (= |#memory_int| (store |v_#memory_int_79| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_79| ULTIMATE.start_main_p4) 1)) (= (select |v_#memory_int_79| ULTIMATE.start_main_p1) 0) (= .cse0 0) (= (select |v_#memory_int_79| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 12:59:35,304 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 12:59:35,364 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:35,366 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:35,367 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:35,369 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:35,370 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:35,371 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:35,373 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:35,374 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:35,375 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 49 [2019-02-27 12:59:35,378 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:35,411 INFO L301 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-02-27 12:59:35,412 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:44, output treesize:34 [2019-02-27 12:59:35,427 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:35,427 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_80|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_80| ULTIMATE.start_main_p3))) (and (= 0 (+ (select |v_#memory_int_80| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= |#memory_int| (store |v_#memory_int_80| ULTIMATE.start_main_p3 (+ .cse0 1))) (= (+ (select |v_#memory_int_80| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |v_#memory_int_80| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 12:59:35,427 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-02-27 12:59:35,457 INFO L273 TraceCheckUtils]: 0: Hoare triple {2962#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2971#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 12:59:35,459 INFO L273 TraceCheckUtils]: 1: Hoare triple {2971#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2975#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 12:59:35,461 INFO L273 TraceCheckUtils]: 2: Hoare triple {2975#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {2979#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-02-27 12:59:35,464 INFO L273 TraceCheckUtils]: 3: Hoare triple {2979#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {2983#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-02-27 12:59:35,465 INFO L273 TraceCheckUtils]: 4: Hoare triple {2983#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} assume !(#memory_int[main_p1] >= 0); {2963#false} is VALID [2019-02-27 12:59:35,466 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:59:35,466 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 12:59:35,534 INFO L273 TraceCheckUtils]: 4: Hoare triple {2987#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {2963#false} is VALID [2019-02-27 12:59:35,535 INFO L273 TraceCheckUtils]: 3: Hoare triple {2991#(<= 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]; {2987#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-27 12:59:35,537 INFO L273 TraceCheckUtils]: 2: Hoare triple {2995#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {2991#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-02-27 12:59:35,539 INFO L273 TraceCheckUtils]: 1: Hoare triple {2999#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2995#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-02-27 12:59:35,541 INFO L273 TraceCheckUtils]: 0: Hoare triple {2962#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2999#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-02-27 12:59:35,542 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 1 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:59:35,561 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 12:59:35,561 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-02-27 12:59:35,561 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 12:59:35,562 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-02-27 12:59:35,562 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 12:59:35,562 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-02-27 12:59:35,579 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:59:35,579 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-02-27 12:59:35,579 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-02-27 12:59:35,580 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=67, Invalid=115, Unknown=0, NotChecked=0, Total=182 [2019-02-27 12:59:35,580 INFO L87 Difference]: Start difference. First operand 41 states and 152 transitions. Second operand 10 states. [2019-02-27 12:59:36,865 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:36,865 INFO L93 Difference]: Finished difference Result 67 states and 187 transitions. [2019-02-27 12:59:36,865 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-02-27 12:59:36,865 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-02-27 12:59:36,866 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 12:59:36,866 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-27 12:59:36,866 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 55 transitions. [2019-02-27 12:59:36,866 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-27 12:59:36,867 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 55 transitions. [2019-02-27 12:59:36,867 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 55 transitions. [2019-02-27 12:59:36,963 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 55 edges. 55 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:59:36,964 INFO L225 Difference]: With dead ends: 67 [2019-02-27 12:59:36,964 INFO L226 Difference]: Without dead ends: 65 [2019-02-27 12:59:36,965 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 15 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 62 ImplicationChecksByTransitivity, 0.8s TimeCoverageRelationStatistics Valid=100, Invalid=172, Unknown=0, NotChecked=0, Total=272 [2019-02-27 12:59:36,965 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 65 states. [2019-02-27 12:59:37,159 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 65 to 39. [2019-02-27 12:59:37,159 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 12:59:37,159 INFO L82 GeneralOperation]: Start isEquivalent. First operand 65 states. Second operand 39 states. [2019-02-27 12:59:37,159 INFO L74 IsIncluded]: Start isIncluded. First operand 65 states. Second operand 39 states. [2019-02-27 12:59:37,159 INFO L87 Difference]: Start difference. First operand 65 states. Second operand 39 states. [2019-02-27 12:59:37,161 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:37,162 INFO L93 Difference]: Finished difference Result 65 states and 184 transitions. [2019-02-27 12:59:37,162 INFO L276 IsEmpty]: Start isEmpty. Operand 65 states and 184 transitions. [2019-02-27 12:59:37,162 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:59:37,162 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:59:37,162 INFO L74 IsIncluded]: Start isIncluded. First operand 39 states. Second operand 65 states. [2019-02-27 12:59:37,162 INFO L87 Difference]: Start difference. First operand 39 states. Second operand 65 states. [2019-02-27 12:59:37,163 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:37,164 INFO L93 Difference]: Finished difference Result 65 states and 184 transitions. [2019-02-27 12:59:37,164 INFO L276 IsEmpty]: Start isEmpty. Operand 65 states and 184 transitions. [2019-02-27 12:59:37,164 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:59:37,164 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:59:37,164 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 12:59:37,164 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 12:59:37,164 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 39 states. [2019-02-27 12:59:37,165 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 39 states to 39 states and 142 transitions. [2019-02-27 12:59:37,165 INFO L78 Accepts]: Start accepts. Automaton has 39 states and 142 transitions. Word has length 5 [2019-02-27 12:59:37,166 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 12:59:37,166 INFO L480 AbstractCegarLoop]: Abstraction has 39 states and 142 transitions. [2019-02-27 12:59:37,166 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-02-27 12:59:37,166 INFO L276 IsEmpty]: Start isEmpty. Operand 39 states and 142 transitions. [2019-02-27 12:59:37,166 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-02-27 12:59:37,166 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 12:59:37,166 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-02-27 12:59:37,166 INFO L423 AbstractCegarLoop]: === Iteration 17 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 12:59:37,167 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:59:37,167 INFO L82 PathProgramCache]: Analyzing trace with hash 29119902, now seen corresponding path program 1 times [2019-02-27 12:59:37,167 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 12:59:37,167 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:59:37,167 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:59:37,167 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:59:37,168 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 12:59:37,172 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:37,315 INFO L273 TraceCheckUtils]: 0: Hoare triple {3301#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {3303#(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-02-27 12:59:37,316 INFO L273 TraceCheckUtils]: 1: Hoare triple {3303#(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]; {3304#(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-02-27 12:59:37,317 INFO L273 TraceCheckUtils]: 2: Hoare triple {3304#(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]; {3305#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:59:37,318 INFO L273 TraceCheckUtils]: 3: Hoare triple {3305#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {3305#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:59:37,318 INFO L273 TraceCheckUtils]: 4: Hoare triple {3305#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {3302#false} is VALID [2019-02-27 12:59:37,319 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:59:37,319 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:59:37,319 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 12:59:37,320 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-02-27 12:59:37,320 INFO L207 CegarAbsIntRunner]: [0], [14], [16], [20], [21] [2019-02-27 12:59:37,322 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 12:59:37,322 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 12:59:37,343 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 12:59:37,343 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 3. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-02-27 12:59:37,343 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:59:37,344 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 12:59:37,344 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:59:37,344 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-02-27 12:59:37,354 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:59:37,354 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 12:59:37,358 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:37,359 INFO L256 TraceCheckSpWp]: Trace formula consists of 22 conjuncts, 6 conjunts are in the unsatisfiable core [2019-02-27 12:59:37,362 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:37,362 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 12:59:37,382 INFO L467 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 15 treesize of output 18 [2019-02-27 12:59:37,390 INFO L467 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 18 treesize of output 20 [2019-02-27 12:59:37,399 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:37,400 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 26 [2019-02-27 12:59:37,418 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:37,419 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:37,420 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 33 [2019-02-27 12:59:37,422 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:37,436 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:37,446 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:37,455 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:37,469 INFO L301 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-02-27 12:59:37,469 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:22, output treesize:27 [2019-02-27 12:59:37,474 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:37,474 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_84|, ULTIMATE.start_main_p1]. (and (= (store (store (store (store |v_#memory_int_84| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 12:59:37,474 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 12:59:37,533 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:37,534 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:37,535 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:37,536 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:37,537 INFO L467 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-02-27 12:59:37,545 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:37,578 INFO L301 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-02-27 12:59:37,579 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:22 [2019-02-27 12:59:39,604 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:39,604 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_85|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_85| ULTIMATE.start_main_p4))) (and (= |#memory_int| (store |v_#memory_int_85| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_85| ULTIMATE.start_main_p3) 0) (= .cse0 0) (= (select |v_#memory_int_85| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-02-27 12:59:39,604 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 12:59:39,689 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:39,690 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:39,691 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:39,693 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:39,695 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:39,696 INFO L467 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 30 [2019-02-27 12:59:39,700 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:39,724 INFO L301 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-02-27 12:59:39,724 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:34, output treesize:24 [2019-02-27 12:59:41,064 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:41,064 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_86|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_86| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (store |v_#memory_int_86| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= 0 (+ (select |v_#memory_int_86| ULTIMATE.start_main_p4) 1)) (= (select |v_#memory_int_86| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-02-27 12:59:41,064 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 12:59:41,101 INFO L273 TraceCheckUtils]: 0: Hoare triple {3301#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {3309#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 12:59:41,102 INFO L273 TraceCheckUtils]: 1: Hoare triple {3309#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {3313#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-02-27 12:59:41,104 INFO L273 TraceCheckUtils]: 2: Hoare triple {3313#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {3317#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-02-27 12:59:41,105 INFO L273 TraceCheckUtils]: 3: Hoare triple {3317#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume #memory_int[main_p1] >= 0; {3317#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-02-27 12:59:41,106 INFO L273 TraceCheckUtils]: 4: Hoare triple {3317#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume !(#memory_int[main_p2] <= 0); {3302#false} is VALID [2019-02-27 12:59:41,107 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:59:41,107 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 12:59:41,148 INFO L273 TraceCheckUtils]: 4: Hoare triple {3324#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {3302#false} is VALID [2019-02-27 12:59:41,149 INFO L273 TraceCheckUtils]: 3: Hoare triple {3324#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {3324#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:59:41,150 INFO L273 TraceCheckUtils]: 2: Hoare triple {3331#(<= (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]; {3324#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:59:41,151 INFO L273 TraceCheckUtils]: 1: Hoare triple {3335#(<= (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]; {3331#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:59:41,153 INFO L273 TraceCheckUtils]: 0: Hoare triple {3301#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {3335#(<= (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-02-27 12:59:41,154 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:59:41,173 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 12:59:41,174 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-02-27 12:59:41,174 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 12:59:41,174 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-02-27 12:59:41,174 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 12:59:41,174 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-02-27 12:59:41,188 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:59:41,188 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-02-27 12:59:41,188 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-02-27 12:59:41,188 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-02-27 12:59:41,189 INFO L87 Difference]: Start difference. First operand 39 states and 142 transitions. Second operand 8 states. [2019-02-27 12:59:42,022 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:42,022 INFO L93 Difference]: Finished difference Result 58 states and 171 transitions. [2019-02-27 12:59:42,022 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-02-27 12:59:42,022 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-02-27 12:59:42,023 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 12:59:42,023 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-27 12:59:42,023 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 44 transitions. [2019-02-27 12:59:42,024 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-27 12:59:42,024 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 44 transitions. [2019-02-27 12:59:42,024 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 44 transitions. [2019-02-27 12:59:42,180 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 44 edges. 44 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:59:42,182 INFO L225 Difference]: With dead ends: 58 [2019-02-27 12:59:42,182 INFO L226 Difference]: Without dead ends: 57 [2019-02-27 12:59:42,183 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-02-27 12:59:42,183 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 57 states. [2019-02-27 12:59:42,465 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 57 to 41. [2019-02-27 12:59:42,465 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 12:59:42,466 INFO L82 GeneralOperation]: Start isEquivalent. First operand 57 states. Second operand 41 states. [2019-02-27 12:59:42,466 INFO L74 IsIncluded]: Start isIncluded. First operand 57 states. Second operand 41 states. [2019-02-27 12:59:42,466 INFO L87 Difference]: Start difference. First operand 57 states. Second operand 41 states. [2019-02-27 12:59:42,468 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:42,468 INFO L93 Difference]: Finished difference Result 57 states and 169 transitions. [2019-02-27 12:59:42,469 INFO L276 IsEmpty]: Start isEmpty. Operand 57 states and 169 transitions. [2019-02-27 12:59:42,469 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:59:42,469 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:59:42,469 INFO L74 IsIncluded]: Start isIncluded. First operand 41 states. Second operand 57 states. [2019-02-27 12:59:42,469 INFO L87 Difference]: Start difference. First operand 41 states. Second operand 57 states. [2019-02-27 12:59:42,471 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:42,471 INFO L93 Difference]: Finished difference Result 57 states and 169 transitions. [2019-02-27 12:59:42,471 INFO L276 IsEmpty]: Start isEmpty. Operand 57 states and 169 transitions. [2019-02-27 12:59:42,471 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:59:42,472 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:59:42,472 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 12:59:42,472 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 12:59:42,472 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 41 states. [2019-02-27 12:59:42,473 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 41 states to 41 states and 152 transitions. [2019-02-27 12:59:42,473 INFO L78 Accepts]: Start accepts. Automaton has 41 states and 152 transitions. Word has length 5 [2019-02-27 12:59:42,474 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 12:59:42,474 INFO L480 AbstractCegarLoop]: Abstraction has 41 states and 152 transitions. [2019-02-27 12:59:42,474 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-02-27 12:59:42,474 INFO L276 IsEmpty]: Start isEmpty. Operand 41 states and 152 transitions. [2019-02-27 12:59:42,474 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-02-27 12:59:42,474 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 12:59:42,474 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-02-27 12:59:42,475 INFO L423 AbstractCegarLoop]: === Iteration 18 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 12:59:42,475 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:59:42,475 INFO L82 PathProgramCache]: Analyzing trace with hash 28823602, now seen corresponding path program 2 times [2019-02-27 12:59:42,475 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 12:59:42,476 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:59:42,476 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:59:42,476 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:59:42,476 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 12:59:42,481 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:42,685 INFO L273 TraceCheckUtils]: 0: Hoare triple {3612#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {3614#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-27 12:59:42,686 INFO L273 TraceCheckUtils]: 1: Hoare triple {3614#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {3615#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-27 12:59:42,687 INFO L273 TraceCheckUtils]: 2: Hoare triple {3615#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {3616#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-02-27 12:59:42,688 INFO L273 TraceCheckUtils]: 3: Hoare triple {3616#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {3617#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-27 12:59:42,692 INFO L273 TraceCheckUtils]: 4: Hoare triple {3617#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {3613#false} is VALID [2019-02-27 12:59:42,693 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:59:42,693 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:59:42,693 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 12:59:42,693 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-02-27 12:59:42,693 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-02-27 12:59:42,693 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:59:42,693 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-02-27 12:59:42,703 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-02-27 12:59:42,703 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-02-27 12:59:42,710 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-02-27 12:59:42,710 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-02-27 12:59:42,711 INFO L256 TraceCheckSpWp]: Trace formula consists of 22 conjuncts, 8 conjunts are in the unsatisfiable core [2019-02-27 12:59:42,715 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:42,715 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 12:59:42,733 INFO L467 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 15 treesize of output 18 [2019-02-27 12:59:42,740 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:42,741 INFO L467 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 18 treesize of output 24 [2019-02-27 12:59:42,753 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:42,755 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:42,756 INFO L467 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 20 treesize of output 34 [2019-02-27 12:59:42,784 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:42,785 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:42,787 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:42,788 INFO L467 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 22 treesize of output 45 [2019-02-27 12:59:42,818 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:42,839 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:42,854 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:42,861 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:42,878 INFO L301 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-02-27 12:59:42,878 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-02-27 12:59:42,884 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:42,884 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_89|, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_89| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 12:59:42,885 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 12:59:42,937 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:42,938 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:42,940 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:42,941 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:42,942 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:42,943 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:42,945 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:42,946 INFO L467 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-02-27 12:59:42,964 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:42,992 INFO L301 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-02-27 12:59:42,992 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-02-27 12:59:43,004 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:43,005 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_90|, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_90| ULTIMATE.start_main_p1))) (and (= (store |v_#memory_int_90| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_90| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_90| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_90| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= .cse0 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 12:59:43,005 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 12:59:43,057 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:43,059 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:43,060 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:43,061 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:43,063 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:43,064 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:43,065 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:43,066 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:43,067 INFO L467 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 45 [2019-02-27 12:59:43,101 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:43,132 INFO L301 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-02-27 12:59:43,132 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-02-27 12:59:45,157 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:45,158 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_91|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_91| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_91| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_91| ULTIMATE.start_main_p1) 1) (= .cse0 0) (= (select |v_#memory_int_91| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_91| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 12:59:45,158 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 12:59:45,262 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:45,263 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:45,264 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:45,265 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:45,266 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:45,267 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:45,271 INFO L158 IndexEqualityManager]: detected equality via solver [2019-02-27 12:59:45,272 INFO L467 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 47 [2019-02-27 12:59:45,275 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:45,308 INFO L301 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-02-27 12:59:45,308 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-02-27 12:59:45,314 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:45,315 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_92|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_92| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_92| ULTIMATE.start_main_p3)) (= (select |v_#memory_int_92| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |v_#memory_int_92| ULTIMATE.start_main_p4) 1)) (= (store |v_#memory_int_92| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= .cse0 0))) [2019-02-27 12:59:45,315 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 12:59:45,346 INFO L273 TraceCheckUtils]: 0: Hoare triple {3612#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {3621#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 12:59:45,348 INFO L273 TraceCheckUtils]: 1: Hoare triple {3621#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {3625#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 12:59:45,349 INFO L273 TraceCheckUtils]: 2: Hoare triple {3625#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {3629#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-02-27 12:59:45,352 INFO L273 TraceCheckUtils]: 3: Hoare triple {3629#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {3633#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-27 12:59:45,353 INFO L273 TraceCheckUtils]: 4: Hoare triple {3633#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {3613#false} is VALID [2019-02-27 12:59:45,353 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:59:45,354 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 12:59:45,416 INFO L273 TraceCheckUtils]: 4: Hoare triple {3637#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {3613#false} is VALID [2019-02-27 12:59:45,418 INFO L273 TraceCheckUtils]: 3: Hoare triple {3641#(<= 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]; {3637#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-27 12:59:45,419 INFO L273 TraceCheckUtils]: 2: Hoare triple {3645#(<= 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]; {3641#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-27 12:59:45,421 INFO L273 TraceCheckUtils]: 1: Hoare triple {3649#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {3645#(<= 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-02-27 12:59:45,424 INFO L273 TraceCheckUtils]: 0: Hoare triple {3612#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {3649#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-27 12:59:45,424 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 2 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:59:45,443 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 12:59:45,443 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-02-27 12:59:45,443 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 12:59:45,444 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-02-27 12:59:45,444 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 12:59:45,444 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-02-27 12:59:45,456 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:59:45,456 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-02-27 12:59:45,456 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-02-27 12:59:45,456 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=70, Invalid=112, Unknown=0, NotChecked=0, Total=182 [2019-02-27 12:59:45,457 INFO L87 Difference]: Start difference. First operand 41 states and 152 transitions. Second operand 10 states. [2019-02-27 12:59:46,874 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:46,874 INFO L93 Difference]: Finished difference Result 71 states and 199 transitions. [2019-02-27 12:59:46,874 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-02-27 12:59:46,875 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-02-27 12:59:46,875 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 12:59:46,875 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-27 12:59:46,876 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 63 transitions. [2019-02-27 12:59:46,876 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-27 12:59:46,876 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 63 transitions. [2019-02-27 12:59:46,876 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 63 transitions. [2019-02-27 12:59:46,970 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 63 edges. 63 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:59:46,972 INFO L225 Difference]: With dead ends: 71 [2019-02-27 12:59:46,972 INFO L226 Difference]: Without dead ends: 70 [2019-02-27 12:59:46,972 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 56 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=90, Invalid=150, Unknown=0, NotChecked=0, Total=240 [2019-02-27 12:59:46,972 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 70 states. [2019-02-27 12:59:47,194 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 70 to 30. [2019-02-27 12:59:47,194 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 12:59:47,194 INFO L82 GeneralOperation]: Start isEquivalent. First operand 70 states. Second operand 30 states. [2019-02-27 12:59:47,195 INFO L74 IsIncluded]: Start isIncluded. First operand 70 states. Second operand 30 states. [2019-02-27 12:59:47,195 INFO L87 Difference]: Start difference. First operand 70 states. Second operand 30 states. [2019-02-27 12:59:47,197 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:47,197 INFO L93 Difference]: Finished difference Result 70 states and 196 transitions. [2019-02-27 12:59:47,197 INFO L276 IsEmpty]: Start isEmpty. Operand 70 states and 196 transitions. [2019-02-27 12:59:47,198 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:59:47,198 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:59:47,198 INFO L74 IsIncluded]: Start isIncluded. First operand 30 states. Second operand 70 states. [2019-02-27 12:59:47,198 INFO L87 Difference]: Start difference. First operand 30 states. Second operand 70 states. [2019-02-27 12:59:47,200 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:47,200 INFO L93 Difference]: Finished difference Result 70 states and 196 transitions. [2019-02-27 12:59:47,200 INFO L276 IsEmpty]: Start isEmpty. Operand 70 states and 196 transitions. [2019-02-27 12:59:47,200 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:59:47,200 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:59:47,200 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 12:59:47,200 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 12:59:47,200 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 30 states. [2019-02-27 12:59:47,201 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 30 states to 30 states and 97 transitions. [2019-02-27 12:59:47,201 INFO L78 Accepts]: Start accepts. Automaton has 30 states and 97 transitions. Word has length 5 [2019-02-27 12:59:47,201 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 12:59:47,201 INFO L480 AbstractCegarLoop]: Abstraction has 30 states and 97 transitions. [2019-02-27 12:59:47,201 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-02-27 12:59:47,202 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states and 97 transitions. [2019-02-27 12:59:47,202 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-02-27 12:59:47,202 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 12:59:47,202 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-02-27 12:59:47,202 INFO L423 AbstractCegarLoop]: === Iteration 19 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 12:59:47,203 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:59:47,203 INFO L82 PathProgramCache]: Analyzing trace with hash 28827822, now seen corresponding path program 1 times [2019-02-27 12:59:47,203 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 12:59:47,203 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:59:47,204 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-02-27 12:59:47,204 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:59:47,204 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 12:59:47,208 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:47,433 INFO L273 TraceCheckUtils]: 0: Hoare triple {3947#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {3949#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-02-27 12:59:47,435 INFO L273 TraceCheckUtils]: 1: Hoare triple {3949#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {3949#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-02-27 12:59:47,442 INFO L273 TraceCheckUtils]: 2: Hoare triple {3949#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} assume #memory_int[main_p1] >= 0; {3950#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-02-27 12:59:47,442 INFO L273 TraceCheckUtils]: 3: Hoare triple {3950#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p2] <= 0; {3950#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-02-27 12:59:47,443 INFO L273 TraceCheckUtils]: 4: Hoare triple {3950#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume !(#memory_int[main_p3] >= 0); {3948#false} is VALID [2019-02-27 12:59:47,443 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-02-27 12:59:47,443 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2019-02-27 12:59:47,443 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [] total 2 [2019-02-27 12:59:47,444 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-02-27 12:59:47,444 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 5 [2019-02-27 12:59:47,444 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 12:59:47,444 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-02-27 12:59:47,449 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 5 edges. 5 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:59:47,449 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-02-27 12:59:47,449 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-02-27 12:59:47,449 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=6, Invalid=6, Unknown=0, NotChecked=0, Total=12 [2019-02-27 12:59:47,449 INFO L87 Difference]: Start difference. First operand 30 states and 97 transitions. Second operand 4 states. [2019-02-27 12:59:48,082 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:48,083 INFO L93 Difference]: Finished difference Result 36 states and 106 transitions. [2019-02-27 12:59:48,083 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-02-27 12:59:48,083 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 5 [2019-02-27 12:59:48,083 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 12:59:48,083 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-02-27 12:59:48,084 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 21 transitions. [2019-02-27 12:59:48,084 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-02-27 12:59:48,084 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 21 transitions. [2019-02-27 12:59:48,084 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 21 transitions. [2019-02-27 12:59:48,106 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 21 edges. 21 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:59:48,107 INFO L225 Difference]: With dead ends: 36 [2019-02-27 12:59:48,107 INFO L226 Difference]: Without dead ends: 33 [2019-02-27 12:59:48,107 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-02-27 12:59:48,108 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 33 states. [2019-02-27 12:59:48,352 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 33 to 29. [2019-02-27 12:59:48,352 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 12:59:48,352 INFO L82 GeneralOperation]: Start isEquivalent. First operand 33 states. Second operand 29 states. [2019-02-27 12:59:48,352 INFO L74 IsIncluded]: Start isIncluded. First operand 33 states. Second operand 29 states. [2019-02-27 12:59:48,353 INFO L87 Difference]: Start difference. First operand 33 states. Second operand 29 states. [2019-02-27 12:59:48,354 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:48,354 INFO L93 Difference]: Finished difference Result 33 states and 102 transitions. [2019-02-27 12:59:48,354 INFO L276 IsEmpty]: Start isEmpty. Operand 33 states and 102 transitions. [2019-02-27 12:59:48,354 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:59:48,355 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:59:48,355 INFO L74 IsIncluded]: Start isIncluded. First operand 29 states. Second operand 33 states. [2019-02-27 12:59:48,355 INFO L87 Difference]: Start difference. First operand 29 states. Second operand 33 states. [2019-02-27 12:59:48,356 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:48,356 INFO L93 Difference]: Finished difference Result 33 states and 102 transitions. [2019-02-27 12:59:48,356 INFO L276 IsEmpty]: Start isEmpty. Operand 33 states and 102 transitions. [2019-02-27 12:59:48,357 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:59:48,357 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:59:48,357 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 12:59:48,357 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 12:59:48,357 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 29 states. [2019-02-27 12:59:48,358 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 29 states to 29 states and 99 transitions. [2019-02-27 12:59:48,358 INFO L78 Accepts]: Start accepts. Automaton has 29 states and 99 transitions. Word has length 5 [2019-02-27 12:59:48,358 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 12:59:48,358 INFO L480 AbstractCegarLoop]: Abstraction has 29 states and 99 transitions. [2019-02-27 12:59:48,358 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-02-27 12:59:48,359 INFO L276 IsEmpty]: Start isEmpty. Operand 29 states and 99 transitions. [2019-02-27 12:59:48,359 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-02-27 12:59:48,359 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 12:59:48,359 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-02-27 12:59:48,359 INFO L423 AbstractCegarLoop]: === Iteration 20 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 12:59:48,359 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:59:48,360 INFO L82 PathProgramCache]: Analyzing trace with hash 28818148, now seen corresponding path program 1 times [2019-02-27 12:59:48,360 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 12:59:48,360 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:59:48,360 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:59:48,360 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:59:48,360 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 12:59:48,365 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:48,551 INFO L273 TraceCheckUtils]: 0: Hoare triple {4120#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {4122#(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-02-27 12:59:48,552 INFO L273 TraceCheckUtils]: 1: Hoare triple {4122#(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]; {4123#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:59:48,553 INFO L273 TraceCheckUtils]: 2: Hoare triple {4123#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {4124#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:59:48,554 INFO L273 TraceCheckUtils]: 3: Hoare triple {4124#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {4124#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:59:48,555 INFO L273 TraceCheckUtils]: 4: Hoare triple {4124#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {4121#false} is VALID [2019-02-27 12:59:48,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-02-27 12:59:48,555 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:59:48,555 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 12:59:48,556 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-02-27 12:59:48,556 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [20], [21] [2019-02-27 12:59:48,557 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 12:59:48,557 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 12:59:48,571 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 12:59:48,572 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 3. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-02-27 12:59:48,572 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:59:48,572 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 12:59:48,572 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:59:48,572 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-02-27 12:59:48,581 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:59:48,581 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 12:59:48,585 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:48,586 INFO L256 TraceCheckSpWp]: Trace formula consists of 22 conjuncts, 7 conjunts are in the unsatisfiable core [2019-02-27 12:59:48,588 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:48,589 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 12:59:48,623 INFO L467 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 15 treesize of output 18 [2019-02-27 12:59:48,633 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:48,634 INFO L467 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 18 treesize of output 24 [2019-02-27 12:59:48,647 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:48,649 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:48,650 INFO L467 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 20 treesize of output 34 [2019-02-27 12:59:48,672 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:48,674 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:48,675 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:48,676 INFO L467 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 22 treesize of output 45 [2019-02-27 12:59:48,687 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:48,705 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:48,716 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:48,726 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:48,744 INFO L301 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-02-27 12:59:48,745 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-02-27 12:59:48,751 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:48,751 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_96|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_96| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 12:59:48,751 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 12:59:48,802 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:48,804 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:48,805 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:48,806 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:48,807 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:48,809 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:48,810 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:48,811 INFO L467 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-02-27 12:59:48,815 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:48,854 INFO L301 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-02-27 12:59:48,854 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-02-27 12:59:48,866 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:48,866 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_97|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_97| ULTIMATE.start_main_p1))) (and (= (select |v_#memory_int_97| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_97| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= (select |v_#memory_int_97| ULTIMATE.start_main_p3) 0) (= 0 .cse0) (= 0 (select |v_#memory_int_97| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 12:59:48,866 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 12:59:48,931 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:48,933 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:48,934 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:48,935 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:48,936 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:48,938 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:48,939 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:48,940 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:48,941 INFO L467 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 45 [2019-02-27 12:59:48,944 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:48,975 INFO L301 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-02-27 12:59:48,975 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-02-27 12:59:48,989 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:48,990 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_98|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_98| ULTIMATE.start_main_p2))) (and (= 0 (select |v_#memory_int_98| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_98| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= 0 .cse0) (= 0 (select |v_#memory_int_98| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_98| ULTIMATE.start_main_p1) 1))) [2019-02-27 12:59:48,990 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 12:59:49,058 INFO L273 TraceCheckUtils]: 0: Hoare triple {4120#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {4128#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 12:59:49,060 INFO L273 TraceCheckUtils]: 1: Hoare triple {4128#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {4132#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-02-27 12:59:49,061 INFO L273 TraceCheckUtils]: 2: Hoare triple {4132#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {4136#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-02-27 12:59:49,062 INFO L273 TraceCheckUtils]: 3: Hoare triple {4136#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p1] >= 0; {4136#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-02-27 12:59:49,063 INFO L273 TraceCheckUtils]: 4: Hoare triple {4136#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume !(#memory_int[main_p2] <= 0); {4121#false} is VALID [2019-02-27 12:59:49,063 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:59:49,064 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 12:59:49,088 INFO L273 TraceCheckUtils]: 4: Hoare triple {4124#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {4121#false} is VALID [2019-02-27 12:59:49,089 INFO L273 TraceCheckUtils]: 3: Hoare triple {4124#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {4124#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:59:49,089 INFO L273 TraceCheckUtils]: 2: Hoare triple {4149#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {4124#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:59:49,090 INFO L273 TraceCheckUtils]: 1: Hoare triple {4153#(<= (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]; {4149#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} is VALID [2019-02-27 12:59:49,092 INFO L273 TraceCheckUtils]: 0: Hoare triple {4120#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {4153#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1)} is VALID [2019-02-27 12:59:49,092 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:59:49,113 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 12:59:49,113 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 8 [2019-02-27 12:59:49,113 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 12:59:49,113 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-02-27 12:59:49,113 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 12:59:49,113 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-02-27 12:59:49,128 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:59:49,128 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-02-27 12:59:49,129 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-02-27 12:59:49,129 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=39, Invalid=51, Unknown=0, NotChecked=0, Total=90 [2019-02-27 12:59:49,129 INFO L87 Difference]: Start difference. First operand 29 states and 99 transitions. Second operand 8 states. [2019-02-27 12:59:50,099 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:50,099 INFO L93 Difference]: Finished difference Result 44 states and 125 transitions. [2019-02-27 12:59:50,099 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-02-27 12:59:50,099 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-02-27 12:59:50,100 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 12:59:50,100 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-27 12:59:50,100 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 45 transitions. [2019-02-27 12:59:50,100 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-27 12:59:50,101 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 45 transitions. [2019-02-27 12:59:50,101 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 45 transitions. [2019-02-27 12:59:50,166 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 45 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:59:50,167 INFO L225 Difference]: With dead ends: 44 [2019-02-27 12:59:50,167 INFO L226 Difference]: Without dead ends: 43 [2019-02-27 12:59:50,168 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 13 GetRequests, 4 SyntacticMatches, 0 SemanticMatches, 9 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 24 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=47, Invalid=63, Unknown=0, NotChecked=0, Total=110 [2019-02-27 12:59:50,168 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 43 states. [2019-02-27 12:59:50,458 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 43 to 32. [2019-02-27 12:59:50,458 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 12:59:50,459 INFO L82 GeneralOperation]: Start isEquivalent. First operand 43 states. Second operand 32 states. [2019-02-27 12:59:50,459 INFO L74 IsIncluded]: Start isIncluded. First operand 43 states. Second operand 32 states. [2019-02-27 12:59:50,459 INFO L87 Difference]: Start difference. First operand 43 states. Second operand 32 states. [2019-02-27 12:59:50,461 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:50,461 INFO L93 Difference]: Finished difference Result 43 states and 123 transitions. [2019-02-27 12:59:50,461 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 123 transitions. [2019-02-27 12:59:50,462 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:59:50,462 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:59:50,462 INFO L74 IsIncluded]: Start isIncluded. First operand 32 states. Second operand 43 states. [2019-02-27 12:59:50,462 INFO L87 Difference]: Start difference. First operand 32 states. Second operand 43 states. [2019-02-27 12:59:50,463 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:50,463 INFO L93 Difference]: Finished difference Result 43 states and 123 transitions. [2019-02-27 12:59:50,463 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 123 transitions. [2019-02-27 12:59:50,463 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:59:50,464 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:59:50,464 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 12:59:50,464 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 12:59:50,464 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 32 states. [2019-02-27 12:59:50,464 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 32 states to 32 states and 114 transitions. [2019-02-27 12:59:50,465 INFO L78 Accepts]: Start accepts. Automaton has 32 states and 114 transitions. Word has length 5 [2019-02-27 12:59:50,465 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 12:59:50,465 INFO L480 AbstractCegarLoop]: Abstraction has 32 states and 114 transitions. [2019-02-27 12:59:50,465 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-02-27 12:59:50,465 INFO L276 IsEmpty]: Start isEmpty. Operand 32 states and 114 transitions. [2019-02-27 12:59:50,465 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-02-27 12:59:50,465 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 12:59:50,465 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-02-27 12:59:50,465 INFO L423 AbstractCegarLoop]: === Iteration 21 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 12:59:50,466 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:59:50,466 INFO L82 PathProgramCache]: Analyzing trace with hash 28821992, now seen corresponding path program 1 times [2019-02-27 12:59:50,466 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 12:59:50,466 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:59:50,467 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:59:50,467 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:59:50,467 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 12:59:50,472 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:50,962 WARN L181 SmtUtils]: Spent 293.00 ms on a formula simplification. DAG size of input: 29 DAG size of output: 17 [2019-02-27 12:59:51,023 INFO L273 TraceCheckUtils]: 0: Hoare triple {4362#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {4364#(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-02-27 12:59:51,024 INFO L273 TraceCheckUtils]: 1: Hoare triple {4364#(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]; {4364#(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-02-27 12:59:51,025 INFO L273 TraceCheckUtils]: 2: Hoare triple {4364#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {4365#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-02-27 12:59:51,026 INFO L273 TraceCheckUtils]: 3: Hoare triple {4365#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} assume #memory_int[main_p1] >= 0; {4366#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:59:51,026 INFO L273 TraceCheckUtils]: 4: Hoare triple {4366#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {4363#false} is VALID [2019-02-27 12:59:51,027 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-02-27 12:59:51,027 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:59:51,028 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 12:59:51,028 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-02-27 12:59:51,028 INFO L207 CegarAbsIntRunner]: [0], [6], [14], [20], [21] [2019-02-27 12:59:51,031 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 12:59:51,032 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 12:59:51,043 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 12:59:51,043 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 3. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-02-27 12:59:51,044 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:59:51,044 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 12:59:51,044 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:59:51,044 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-02-27 12:59:51,053 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:59:51,053 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 12:59:51,059 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:51,060 INFO L256 TraceCheckSpWp]: Trace formula consists of 22 conjuncts, 7 conjunts are in the unsatisfiable core [2019-02-27 12:59:51,062 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:51,062 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 12:59:51,089 INFO L467 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 15 treesize of output 18 [2019-02-27 12:59:51,097 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:51,098 INFO L467 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 18 treesize of output 24 [2019-02-27 12:59:51,109 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:51,110 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:51,111 INFO L467 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 20 treesize of output 34 [2019-02-27 12:59:51,126 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:51,128 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:51,129 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:51,130 INFO L467 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 22 treesize of output 45 [2019-02-27 12:59:51,134 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:51,153 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:51,165 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:51,173 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:51,192 INFO L301 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-02-27 12:59:51,192 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-02-27 12:59:51,198 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:51,199 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_101|, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_101| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 12:59:51,199 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 12:59:51,277 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:51,278 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:51,278 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:51,279 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:51,281 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:51,282 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:51,283 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:51,284 INFO L467 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-02-27 12:59:51,296 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:51,350 INFO L301 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-02-27 12:59:51,350 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-02-27 12:59:52,313 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:52,314 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_102|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_102| ULTIMATE.start_main_p1))) (and (= 0 (select |v_#memory_int_102| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_102| ULTIMATE.start_main_p1 (+ .cse0 1))) (= 0 .cse0) (= 0 (select |v_#memory_int_102| ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_102| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-02-27 12:59:52,314 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 12:59:52,376 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:52,378 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:52,379 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:52,380 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:52,382 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:52,383 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:52,384 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:52,385 INFO L158 IndexEqualityManager]: detected equality via solver [2019-02-27 12:59:52,386 INFO L467 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-02-27 12:59:52,391 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:52,421 INFO L301 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-02-27 12:59:52,422 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-02-27 12:59:52,432 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:52,432 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_103|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_103| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_103| ULTIMATE.start_main_p3 (+ .cse0 1))) (= 0 (select |v_#memory_int_103| ULTIMATE.start_main_p4)) (= 1 (select |v_#memory_int_103| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 (select |v_#memory_int_103| ULTIMATE.start_main_p2)) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-02-27 12:59:52,432 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 12:59:52,496 INFO L273 TraceCheckUtils]: 0: Hoare triple {4362#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {4370#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 12:59:52,499 INFO L273 TraceCheckUtils]: 1: Hoare triple {4370#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {4374#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-02-27 12:59:52,501 INFO L273 TraceCheckUtils]: 2: Hoare triple {4374#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {4378#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-02-27 12:59:52,501 INFO L273 TraceCheckUtils]: 3: Hoare triple {4378#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume #memory_int[main_p1] >= 0; {4378#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-02-27 12:59:52,503 INFO L273 TraceCheckUtils]: 4: Hoare triple {4378#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume !(#memory_int[main_p2] <= 0); {4363#false} is VALID [2019-02-27 12:59:52,504 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:59:52,504 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 12:59:52,559 INFO L273 TraceCheckUtils]: 4: Hoare triple {4385#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {4363#false} is VALID [2019-02-27 12:59:52,559 INFO L273 TraceCheckUtils]: 3: Hoare triple {4385#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {4385#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:59:52,560 INFO L273 TraceCheckUtils]: 2: Hoare triple {4392#(<= (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]; {4385#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:59:52,563 INFO L273 TraceCheckUtils]: 1: Hoare triple {4396#(<= (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]; {4392#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:59:52,565 INFO L273 TraceCheckUtils]: 0: Hoare triple {4362#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {4396#(<= (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-02-27 12:59:52,565 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:59:52,585 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 12:59:52,585 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-02-27 12:59:52,585 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 12:59:52,585 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-02-27 12:59:52,585 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 12:59:52,586 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-02-27 12:59:52,602 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:59:52,602 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-02-27 12:59:52,602 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-02-27 12:59:52,603 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=41, Invalid=69, Unknown=0, NotChecked=0, Total=110 [2019-02-27 12:59:52,603 INFO L87 Difference]: Start difference. First operand 32 states and 114 transitions. Second operand 8 states. [2019-02-27 12:59:53,702 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:53,702 INFO L93 Difference]: Finished difference Result 49 states and 142 transitions. [2019-02-27 12:59:53,702 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-02-27 12:59:53,702 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-02-27 12:59:53,703 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 12:59:53,703 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-27 12:59:53,703 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 40 transitions. [2019-02-27 12:59:53,703 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-27 12:59:53,704 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 40 transitions. [2019-02-27 12:59:53,704 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 40 transitions. [2019-02-27 12:59:53,763 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 40 edges. 40 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:59:53,764 INFO L225 Difference]: With dead ends: 49 [2019-02-27 12:59:53,764 INFO L226 Difference]: Without dead ends: 48 [2019-02-27 12:59:53,765 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 2 SyntacticMatches, 1 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 30 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=59, Invalid=97, Unknown=0, NotChecked=0, Total=156 [2019-02-27 12:59:53,765 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 48 states. [2019-02-27 12:59:54,086 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 48 to 34. [2019-02-27 12:59:54,086 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 12:59:54,086 INFO L82 GeneralOperation]: Start isEquivalent. First operand 48 states. Second operand 34 states. [2019-02-27 12:59:54,086 INFO L74 IsIncluded]: Start isIncluded. First operand 48 states. Second operand 34 states. [2019-02-27 12:59:54,086 INFO L87 Difference]: Start difference. First operand 48 states. Second operand 34 states. [2019-02-27 12:59:54,087 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:54,087 INFO L93 Difference]: Finished difference Result 48 states and 140 transitions. [2019-02-27 12:59:54,087 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 140 transitions. [2019-02-27 12:59:54,088 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:59:54,088 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:59:54,088 INFO L74 IsIncluded]: Start isIncluded. First operand 34 states. Second operand 48 states. [2019-02-27 12:59:54,088 INFO L87 Difference]: Start difference. First operand 34 states. Second operand 48 states. [2019-02-27 12:59:54,089 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:54,090 INFO L93 Difference]: Finished difference Result 48 states and 140 transitions. [2019-02-27 12:59:54,090 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 140 transitions. [2019-02-27 12:59:54,090 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:59:54,090 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:59:54,090 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 12:59:54,090 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 12:59:54,090 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 34 states. [2019-02-27 12:59:54,091 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 34 states to 34 states and 124 transitions. [2019-02-27 12:59:54,091 INFO L78 Accepts]: Start accepts. Automaton has 34 states and 124 transitions. Word has length 5 [2019-02-27 12:59:54,091 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 12:59:54,091 INFO L480 AbstractCegarLoop]: Abstraction has 34 states and 124 transitions. [2019-02-27 12:59:54,091 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-02-27 12:59:54,091 INFO L276 IsEmpty]: Start isEmpty. Operand 34 states and 124 transitions. [2019-02-27 12:59:54,092 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-02-27 12:59:54,092 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 12:59:54,092 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-02-27 12:59:54,092 INFO L423 AbstractCegarLoop]: === Iteration 22 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 12:59:54,092 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:59:54,093 INFO L82 PathProgramCache]: Analyzing trace with hash 28933468, now seen corresponding path program 2 times [2019-02-27 12:59:54,093 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 12:59:54,093 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:59:54,093 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:59:54,094 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:59:54,094 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 12:59:54,098 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:54,208 INFO L273 TraceCheckUtils]: 0: Hoare triple {4629#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {4631#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-02-27 12:59:54,209 INFO L273 TraceCheckUtils]: 1: Hoare triple {4631#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {4632#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-02-27 12:59:54,210 INFO L273 TraceCheckUtils]: 2: Hoare triple {4632#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {4633#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-02-27 12:59:54,211 INFO L273 TraceCheckUtils]: 3: Hoare triple {4633#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume #memory_int[main_p1] >= 0; {4633#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-02-27 12:59:54,212 INFO L273 TraceCheckUtils]: 4: Hoare triple {4633#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume !(#memory_int[main_p2] <= 0); {4630#false} is VALID [2019-02-27 12:59:54,212 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:59:54,212 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:59:54,213 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 12:59:54,213 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-02-27 12:59:54,213 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-02-27 12:59:54,213 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:59:54,213 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-02-27 12:59:54,223 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-02-27 12:59:54,223 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-02-27 12:59:54,235 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 2 check-sat command(s) [2019-02-27 12:59:54,235 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-02-27 12:59:54,235 INFO L256 TraceCheckSpWp]: Trace formula consists of 22 conjuncts, 7 conjunts are in the unsatisfiable core [2019-02-27 12:59:54,245 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:54,246 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 12:59:54,310 INFO L467 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 15 treesize of output 18 [2019-02-27 12:59:54,319 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:54,320 INFO L467 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 18 treesize of output 24 [2019-02-27 12:59:54,332 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:54,333 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:54,334 INFO L467 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 20 treesize of output 34 [2019-02-27 12:59:54,351 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:54,352 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:54,353 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:54,354 INFO L467 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 22 treesize of output 45 [2019-02-27 12:59:54,378 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:54,626 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:54,638 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:54,648 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:54,679 INFO L301 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-02-27 12:59:54,680 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-02-27 12:59:54,685 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:54,685 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_106|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_106| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 12:59:54,685 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 12:59:55,191 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:55,192 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:55,193 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:55,194 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:55,195 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:55,195 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:55,196 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:55,198 INFO L467 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-02-27 12:59:55,202 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:55,235 INFO L301 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-02-27 12:59:55,235 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-02-27 12:59:55,245 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:55,245 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_107|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_107| ULTIMATE.start_main_p2))) (and (= 0 (select |v_#memory_int_107| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_107| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= 0 (select |v_#memory_int_107| ULTIMATE.start_main_p4)) (= .cse0 0) (= 0 (select |v_#memory_int_107| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 12:59:55,246 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 12:59:55,326 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:55,327 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:55,328 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:55,329 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:55,330 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:55,331 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:55,333 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:55,334 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:55,335 INFO L467 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 47 [2019-02-27 12:59:55,339 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:55,371 INFO L301 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-02-27 12:59:55,371 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-02-27 12:59:57,421 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:57,422 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_108|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_108| ULTIMATE.start_main_p1))) (and (= 0 .cse0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_108| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= 0 (+ (select |v_#memory_int_108| ULTIMATE.start_main_p2) 1)) (= 0 (select |v_#memory_int_108| ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_108| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 12:59:57,422 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-02-27 12:59:57,504 INFO L273 TraceCheckUtils]: 0: Hoare triple {4629#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {4637#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 12:59:57,507 INFO L273 TraceCheckUtils]: 1: Hoare triple {4637#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {4641#(and (= (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 (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 12:59:57,508 INFO L273 TraceCheckUtils]: 2: Hoare triple {4641#(and (= (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 (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {4645#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-02-27 12:59:57,509 INFO L273 TraceCheckUtils]: 3: Hoare triple {4645#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume #memory_int[main_p1] >= 0; {4645#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-02-27 12:59:57,510 INFO L273 TraceCheckUtils]: 4: Hoare triple {4645#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume !(#memory_int[main_p2] <= 0); {4630#false} is VALID [2019-02-27 12:59:57,510 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:59:57,510 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 12:59:57,560 INFO L273 TraceCheckUtils]: 4: Hoare triple {4652#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {4630#false} is VALID [2019-02-27 12:59:57,561 INFO L273 TraceCheckUtils]: 3: Hoare triple {4652#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {4652#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:59:57,563 INFO L273 TraceCheckUtils]: 2: Hoare triple {4659#(<= (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]; {4652#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:59:57,564 INFO L273 TraceCheckUtils]: 1: Hoare triple {4663#(<= (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]; {4659#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 12:59:57,565 INFO L273 TraceCheckUtils]: 0: Hoare triple {4629#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {4663#(<= (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-02-27 12:59:57,566 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:59:57,585 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 12:59:57,585 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-02-27 12:59:57,585 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 12:59:57,585 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-02-27 12:59:57,585 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 12:59:57,585 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-02-27 12:59:57,601 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:59:57,602 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-02-27 12:59:57,602 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-02-27 12:59:57,602 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-02-27 12:59:57,602 INFO L87 Difference]: Start difference. First operand 34 states and 124 transitions. Second operand 8 states. [2019-02-27 12:59:58,930 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:58,930 INFO L93 Difference]: Finished difference Result 58 states and 161 transitions. [2019-02-27 12:59:58,930 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-02-27 12:59:58,930 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-02-27 12:59:58,931 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 12:59:58,931 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-27 12:59:58,931 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 52 transitions. [2019-02-27 12:59:58,931 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-27 12:59:58,932 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 52 transitions. [2019-02-27 12:59:58,932 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 52 transitions. [2019-02-27 12:59:59,006 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 52 edges. 52 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 12:59:59,008 INFO L225 Difference]: With dead ends: 58 [2019-02-27 12:59:59,008 INFO L226 Difference]: Without dead ends: 57 [2019-02-27 12:59:59,009 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 13 GetRequests, 3 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 28 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=53, Invalid=79, Unknown=0, NotChecked=0, Total=132 [2019-02-27 12:59:59,009 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 57 states. [2019-02-27 12:59:59,426 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 57 to 36. [2019-02-27 12:59:59,427 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 12:59:59,427 INFO L82 GeneralOperation]: Start isEquivalent. First operand 57 states. Second operand 36 states. [2019-02-27 12:59:59,427 INFO L74 IsIncluded]: Start isIncluded. First operand 57 states. Second operand 36 states. [2019-02-27 12:59:59,427 INFO L87 Difference]: Start difference. First operand 57 states. Second operand 36 states. [2019-02-27 12:59:59,429 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:59,429 INFO L93 Difference]: Finished difference Result 57 states and 159 transitions. [2019-02-27 12:59:59,429 INFO L276 IsEmpty]: Start isEmpty. Operand 57 states and 159 transitions. [2019-02-27 12:59:59,429 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:59:59,430 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:59:59,430 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 57 states. [2019-02-27 12:59:59,430 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 57 states. [2019-02-27 12:59:59,431 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 12:59:59,431 INFO L93 Difference]: Finished difference Result 57 states and 159 transitions. [2019-02-27 12:59:59,431 INFO L276 IsEmpty]: Start isEmpty. Operand 57 states and 159 transitions. [2019-02-27 12:59:59,432 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 12:59:59,432 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 12:59:59,432 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 12:59:59,432 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 12:59:59,432 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 36 states. [2019-02-27 12:59:59,433 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 36 states to 36 states and 134 transitions. [2019-02-27 12:59:59,433 INFO L78 Accepts]: Start accepts. Automaton has 36 states and 134 transitions. Word has length 5 [2019-02-27 12:59:59,433 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 12:59:59,433 INFO L480 AbstractCegarLoop]: Abstraction has 36 states and 134 transitions. [2019-02-27 12:59:59,433 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-02-27 12:59:59,433 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 134 transitions. [2019-02-27 12:59:59,433 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-02-27 12:59:59,433 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 12:59:59,433 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-02-27 12:59:59,434 INFO L423 AbstractCegarLoop]: === Iteration 23 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 12:59:59,434 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:59:59,434 INFO L82 PathProgramCache]: Analyzing trace with hash 28941156, now seen corresponding path program 1 times [2019-02-27 12:59:59,434 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 12:59:59,435 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:59:59,435 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-02-27 12:59:59,435 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 12:59:59,435 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 12:59:59,439 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:59,540 INFO L273 TraceCheckUtils]: 0: Hoare triple {4928#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {4930#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-02-27 12:59:59,542 INFO L273 TraceCheckUtils]: 1: Hoare triple {4930#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {4931#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-02-27 12:59:59,546 INFO L273 TraceCheckUtils]: 2: Hoare triple {4931#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {4932#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-02-27 12:59:59,548 INFO L273 TraceCheckUtils]: 3: Hoare triple {4932#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume #memory_int[main_p1] >= 0; {4932#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-02-27 12:59:59,549 INFO L273 TraceCheckUtils]: 4: Hoare triple {4932#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume !(#memory_int[main_p2] <= 0); {4929#false} is VALID [2019-02-27 12:59:59,549 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 12:59:59,550 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:59:59,550 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 12:59:59,550 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-02-27 12:59:59,550 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [20], [21] [2019-02-27 12:59:59,552 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 12:59:59,552 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 12:59:59,595 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 12:59:59,595 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 3. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-02-27 12:59:59,595 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 12:59:59,595 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 12:59:59,596 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 12:59:59,596 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-02-27 12:59:59,605 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 12:59:59,606 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 12:59:59,610 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:59,610 INFO L256 TraceCheckSpWp]: Trace formula consists of 22 conjuncts, 6 conjunts are in the unsatisfiable core [2019-02-27 12:59:59,614 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 12:59:59,614 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 12:59:59,637 INFO L467 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 15 treesize of output 18 [2019-02-27 12:59:59,645 INFO L467 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 18 treesize of output 20 [2019-02-27 12:59:59,656 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:59,657 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 26 [2019-02-27 12:59:59,675 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:59,676 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:59,677 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 33 [2019-02-27 12:59:59,681 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:59,695 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:59,704 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:59,714 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 12:59:59,728 INFO L301 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-02-27 12:59:59,729 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:22, output treesize:27 [2019-02-27 12:59:59,734 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:59,734 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_111|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_111| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 12:59:59,734 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 12:59:59,798 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:59,800 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:59,802 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:59,804 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:59,805 INFO L467 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-02-27 12:59:59,830 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:59,857 INFO L301 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-02-27 12:59:59,857 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:22 [2019-02-27 12:59:59,869 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:59,870 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_112|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_112| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (select |v_#memory_int_112| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_112| ULTIMATE.start_main_p3) 0) (= |#memory_int| (store |v_#memory_int_112| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-02-27 12:59:59,870 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< 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) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 12:59:59,952 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:59,954 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:59,956 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:59,958 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:59,960 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 12:59:59,960 INFO L467 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 30 [2019-02-27 12:59:59,963 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 12:59:59,991 INFO L301 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-02-27 12:59:59,991 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:34, output treesize:24 [2019-02-27 12:59:59,997 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 12:59:59,997 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_113|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_113| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_113| ULTIMATE.start_main_p2) 1)) (= (store |v_#memory_int_113| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= .cse0 0) (= (select |v_#memory_int_113| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-02-27 12:59:59,998 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-02-27 13:00:00,064 INFO L273 TraceCheckUtils]: 0: Hoare triple {4928#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {4936#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:00:00,066 INFO L273 TraceCheckUtils]: 1: Hoare triple {4936#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {4940#(and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:00:00,067 INFO L273 TraceCheckUtils]: 2: Hoare triple {4940#(and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {4944#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-02-27 13:00:00,069 INFO L273 TraceCheckUtils]: 3: Hoare triple {4944#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume #memory_int[main_p1] >= 0; {4944#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-02-27 13:00:00,070 INFO L273 TraceCheckUtils]: 4: Hoare triple {4944#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume !(#memory_int[main_p2] <= 0); {4929#false} is VALID [2019-02-27 13:00:00,070 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:00:00,070 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 13:00:00,159 INFO L273 TraceCheckUtils]: 4: Hoare triple {4951#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {4929#false} is VALID [2019-02-27 13:00:00,159 INFO L273 TraceCheckUtils]: 3: Hoare triple {4951#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {4951#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 13:00:00,161 INFO L273 TraceCheckUtils]: 2: Hoare triple {4958#(<= (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]; {4951#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 13:00:00,162 INFO L273 TraceCheckUtils]: 1: Hoare triple {4962#(<= (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]; {4958#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 13:00:00,164 INFO L273 TraceCheckUtils]: 0: Hoare triple {4928#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {4962#(<= (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-02-27 13:00:00,164 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:00:00,185 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 13:00:00,185 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-02-27 13:00:00,185 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 13:00:00,185 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-02-27 13:00:00,185 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 13:00:00,185 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-02-27 13:00:00,201 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:00:00,202 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-02-27 13:00:00,202 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-02-27 13:00:00,202 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-02-27 13:00:00,203 INFO L87 Difference]: Start difference. First operand 36 states and 134 transitions. Second operand 8 states. [2019-02-27 13:00:01,072 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:00:01,072 INFO L93 Difference]: Finished difference Result 59 states and 162 transitions. [2019-02-27 13:00:01,072 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-02-27 13:00:01,072 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-02-27 13:00:01,072 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 13:00:01,073 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-27 13:00:01,073 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 53 transitions. [2019-02-27 13:00:01,073 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-27 13:00:01,074 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 53 transitions. [2019-02-27 13:00:01,074 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 53 transitions. [2019-02-27 13:00:01,149 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 53 edges. 53 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:00:01,150 INFO L225 Difference]: With dead ends: 59 [2019-02-27 13:00:01,150 INFO L226 Difference]: Without dead ends: 58 [2019-02-27 13:00:01,151 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 12 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 28 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=53, Invalid=79, Unknown=0, NotChecked=0, Total=132 [2019-02-27 13:00:01,151 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 58 states. [2019-02-27 13:00:01,555 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 58 to 37. [2019-02-27 13:00:01,555 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 13:00:01,555 INFO L82 GeneralOperation]: Start isEquivalent. First operand 58 states. Second operand 37 states. [2019-02-27 13:00:01,555 INFO L74 IsIncluded]: Start isIncluded. First operand 58 states. Second operand 37 states. [2019-02-27 13:00:01,556 INFO L87 Difference]: Start difference. First operand 58 states. Second operand 37 states. [2019-02-27 13:00:01,557 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:00:01,557 INFO L93 Difference]: Finished difference Result 58 states and 160 transitions. [2019-02-27 13:00:01,557 INFO L276 IsEmpty]: Start isEmpty. Operand 58 states and 160 transitions. [2019-02-27 13:00:01,557 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:00:01,558 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:00:01,558 INFO L74 IsIncluded]: Start isIncluded. First operand 37 states. Second operand 58 states. [2019-02-27 13:00:01,558 INFO L87 Difference]: Start difference. First operand 37 states. Second operand 58 states. [2019-02-27 13:00:01,559 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:00:01,559 INFO L93 Difference]: Finished difference Result 58 states and 160 transitions. [2019-02-27 13:00:01,559 INFO L276 IsEmpty]: Start isEmpty. Operand 58 states and 160 transitions. [2019-02-27 13:00:01,559 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:00:01,560 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:00:01,560 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 13:00:01,560 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 13:00:01,560 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 37 states. [2019-02-27 13:00:01,560 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 37 states to 37 states and 139 transitions. [2019-02-27 13:00:01,561 INFO L78 Accepts]: Start accepts. Automaton has 37 states and 139 transitions. Word has length 5 [2019-02-27 13:00:01,561 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 13:00:01,561 INFO L480 AbstractCegarLoop]: Abstraction has 37 states and 139 transitions. [2019-02-27 13:00:01,561 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-02-27 13:00:01,561 INFO L276 IsEmpty]: Start isEmpty. Operand 37 states and 139 transitions. [2019-02-27 13:00:01,561 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-02-27 13:00:01,561 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 13:00:01,562 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-02-27 13:00:01,562 INFO L423 AbstractCegarLoop]: === Iteration 24 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 13:00:01,562 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:00:01,562 INFO L82 PathProgramCache]: Analyzing trace with hash 29066150, now seen corresponding path program 1 times [2019-02-27 13:00:01,562 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 13:00:01,563 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:00:01,563 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:00:01,563 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:00:01,563 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 13:00:01,566 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:00:01,798 INFO L273 TraceCheckUtils]: 0: Hoare triple {5232#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {5234#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-02-27 13:00:01,798 INFO L273 TraceCheckUtils]: 1: Hoare triple {5234#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {5235#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:00:01,799 INFO L273 TraceCheckUtils]: 2: Hoare triple {5235#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {5235#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:00:01,800 INFO L273 TraceCheckUtils]: 3: Hoare triple {5235#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {5235#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:00:01,800 INFO L273 TraceCheckUtils]: 4: Hoare triple {5235#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {5233#false} is VALID [2019-02-27 13:00:01,801 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:00:01,801 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:00:01,801 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 13:00:01,801 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-02-27 13:00:01,802 INFO L207 CegarAbsIntRunner]: [0], [14], [20], [22], [23] [2019-02-27 13:00:01,803 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 13:00:01,804 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 13:00:01,814 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 13:00:01,815 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 3. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-02-27 13:00:01,815 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:00:01,815 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 13:00:01,815 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:00:01,816 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-02-27 13:00:01,825 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:00:01,825 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 13:00:01,846 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:00:01,847 INFO L256 TraceCheckSpWp]: Trace formula consists of 22 conjuncts, 4 conjunts are in the unsatisfiable core [2019-02-27 13:00:01,862 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:00:01,863 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 13:00:02,012 INFO L467 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 15 treesize of output 18 [2019-02-27 13:00:02,060 INFO L467 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 18 treesize of output 20 [2019-02-27 13:00:02,069 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-02-27 13:00:02,087 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:02,088 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 1 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 25 [2019-02-27 13:00:02,092 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:02,102 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:00:02,112 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:00:02,122 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:00:02,138 INFO L301 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-02-27 13:00:02,139 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 4 variables, input treesize:19, output treesize:24 [2019-02-27 13:00:02,144 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:02,144 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_116|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (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) |#memory_int|)) [2019-02-27 13:00:02,144 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 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-02-27 13:00:02,187 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:02,189 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:02,189 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 15 [2019-02-27 13:00:02,192 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:02,201 INFO L301 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-02-27 13:00:02,202 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:24, output treesize:14 [2019-02-27 13:00:02,208 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:02,208 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_117|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_117| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_117| ULTIMATE.start_main_p4)) (= (store |v_#memory_int_117| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= 0 .cse0))) [2019-02-27 13:00:02,208 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:00:02,248 INFO L273 TraceCheckUtils]: 0: Hoare triple {5232#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {5239#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-02-27 13:00:02,249 INFO L273 TraceCheckUtils]: 1: Hoare triple {5239#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {5243#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-02-27 13:00:02,250 INFO L273 TraceCheckUtils]: 2: Hoare triple {5243#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p1] >= 0; {5243#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-02-27 13:00:02,251 INFO L273 TraceCheckUtils]: 3: Hoare triple {5243#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p2] <= 0; {5243#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-02-27 13:00:02,251 INFO L273 TraceCheckUtils]: 4: Hoare triple {5243#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume !(#memory_int[main_p3] >= 0); {5233#false} is VALID [2019-02-27 13:00:02,251 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:00:02,251 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 13:00:02,267 INFO L273 TraceCheckUtils]: 4: Hoare triple {5235#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {5233#false} is VALID [2019-02-27 13:00:02,268 INFO L273 TraceCheckUtils]: 3: Hoare triple {5235#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {5235#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:00:02,268 INFO L273 TraceCheckUtils]: 2: Hoare triple {5235#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {5235#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:00:02,269 INFO L273 TraceCheckUtils]: 1: Hoare triple {5262#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {5235#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:00:02,271 INFO L273 TraceCheckUtils]: 0: Hoare triple {5232#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {5262#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1))} is VALID [2019-02-27 13:00:02,271 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:00:02,292 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-02-27 13:00:02,293 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [2, 2] total 5 [2019-02-27 13:00:02,293 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-02-27 13:00:02,293 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 5 [2019-02-27 13:00:02,293 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 13:00:02,293 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-02-27 13:00:02,314 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 5 edges. 5 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:00:02,314 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-02-27 13:00:02,314 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-02-27 13:00:02,314 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=19, Invalid=23, Unknown=0, NotChecked=0, Total=42 [2019-02-27 13:00:02,314 INFO L87 Difference]: Start difference. First operand 37 states and 139 transitions. Second operand 4 states. [2019-02-27 13:00:03,186 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:00:03,187 INFO L93 Difference]: Finished difference Result 74 states and 262 transitions. [2019-02-27 13:00:03,187 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2019-02-27 13:00:03,187 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 5 [2019-02-27 13:00:03,187 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 13:00:03,187 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-02-27 13:00:03,188 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 32 transitions. [2019-02-27 13:00:03,188 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-02-27 13:00:03,188 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 32 transitions. [2019-02-27 13:00:03,188 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 32 transitions. [2019-02-27 13:00:03,220 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 32 edges. 32 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:00:03,222 INFO L225 Difference]: With dead ends: 74 [2019-02-27 13:00:03,222 INFO L226 Difference]: Without dead ends: 73 [2019-02-27 13:00:03,222 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 10 GetRequests, 5 SyntacticMatches, 0 SemanticMatches, 5 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 8 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=19, Invalid=23, Unknown=0, NotChecked=0, Total=42 [2019-02-27 13:00:03,223 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 73 states. [2019-02-27 13:00:03,908 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 73 to 59. [2019-02-27 13:00:03,908 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 13:00:03,908 INFO L82 GeneralOperation]: Start isEquivalent. First operand 73 states. Second operand 59 states. [2019-02-27 13:00:03,909 INFO L74 IsIncluded]: Start isIncluded. First operand 73 states. Second operand 59 states. [2019-02-27 13:00:03,909 INFO L87 Difference]: Start difference. First operand 73 states. Second operand 59 states. [2019-02-27 13:00:03,911 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:00:03,912 INFO L93 Difference]: Finished difference Result 73 states and 261 transitions. [2019-02-27 13:00:03,912 INFO L276 IsEmpty]: Start isEmpty. Operand 73 states and 261 transitions. [2019-02-27 13:00:03,912 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:00:03,912 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:00:03,912 INFO L74 IsIncluded]: Start isIncluded. First operand 59 states. Second operand 73 states. [2019-02-27 13:00:03,913 INFO L87 Difference]: Start difference. First operand 59 states. Second operand 73 states. [2019-02-27 13:00:03,914 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:00:03,915 INFO L93 Difference]: Finished difference Result 73 states and 261 transitions. [2019-02-27 13:00:03,915 INFO L276 IsEmpty]: Start isEmpty. Operand 73 states and 261 transitions. [2019-02-27 13:00:03,915 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:00:03,915 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:00:03,915 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 13:00:03,916 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 13:00:03,916 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 59 states. [2019-02-27 13:00:03,917 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 59 states to 59 states and 250 transitions. [2019-02-27 13:00:03,917 INFO L78 Accepts]: Start accepts. Automaton has 59 states and 250 transitions. Word has length 5 [2019-02-27 13:00:03,917 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 13:00:03,918 INFO L480 AbstractCegarLoop]: Abstraction has 59 states and 250 transitions. [2019-02-27 13:00:03,918 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-02-27 13:00:03,918 INFO L276 IsEmpty]: Start isEmpty. Operand 59 states and 250 transitions. [2019-02-27 13:00:03,918 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-02-27 13:00:03,918 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 13:00:03,918 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-02-27 13:00:03,919 INFO L423 AbstractCegarLoop]: === Iteration 25 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 13:00:03,919 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:00:03,919 INFO L82 PathProgramCache]: Analyzing trace with hash 29052506, now seen corresponding path program 1 times [2019-02-27 13:00:03,919 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 13:00:03,920 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:00:03,920 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:00:03,920 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:00:03,920 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 13:00:03,924 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:00:04,113 INFO L273 TraceCheckUtils]: 0: Hoare triple {5638#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {5640#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (<= (+ ULTIMATE.start_main_p1 3) ULTIMATE.start_main_p4) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-02-27 13:00:04,115 INFO L273 TraceCheckUtils]: 1: Hoare triple {5640#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (<= (+ ULTIMATE.start_main_p1 3) ULTIMATE.start_main_p4) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {5641#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (<= (+ ULTIMATE.start_main_p1 3) ULTIMATE.start_main_p4))} is VALID [2019-02-27 13:00:04,116 INFO L273 TraceCheckUtils]: 2: Hoare triple {5641#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (<= (+ ULTIMATE.start_main_p1 3) ULTIMATE.start_main_p4))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {5642#(and (<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (<= (+ ULTIMATE.start_main_p1 3) ULTIMATE.start_main_p4))} is VALID [2019-02-27 13:00:04,117 INFO L273 TraceCheckUtils]: 3: Hoare triple {5642#(and (<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (<= (+ ULTIMATE.start_main_p1 3) ULTIMATE.start_main_p4))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {5643#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-27 13:00:04,118 INFO L273 TraceCheckUtils]: 4: Hoare triple {5643#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {5639#false} is VALID [2019-02-27 13:00:04,118 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:00:04,118 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:00:04,119 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 13:00:04,119 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-02-27 13:00:04,119 INFO L207 CegarAbsIntRunner]: [0], [6], [14], [16], [19] [2019-02-27 13:00:04,123 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 13:00:04,123 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 13:00:04,135 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 13:00:04,136 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 3. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-02-27 13:00:04,136 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:00:04,136 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 13:00:04,136 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:00:04,136 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 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-02-27 13:00:04,148 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:00:04,148 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 13:00:04,152 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:00:04,153 INFO L256 TraceCheckSpWp]: Trace formula consists of 22 conjuncts, 8 conjunts are in the unsatisfiable core [2019-02-27 13:00:04,156 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:00:04,157 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 13:00:04,175 INFO L467 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 15 treesize of output 18 [2019-02-27 13:00:04,186 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:04,187 INFO L467 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 18 treesize of output 24 [2019-02-27 13:00:04,201 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:04,202 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:04,203 INFO L467 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 20 treesize of output 34 [2019-02-27 13:00:04,232 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:04,233 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:04,234 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:04,235 INFO L467 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 22 treesize of output 45 [2019-02-27 13:00:04,240 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:04,263 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:00:04,275 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:00:04,285 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:00:04,303 INFO L301 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-02-27 13:00:04,303 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-02-27 13:00:04,312 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:04,312 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_119|, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_119| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:00:04,313 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:00:04,371 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:04,375 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:04,376 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:04,377 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:04,378 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:04,379 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:04,381 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:04,382 INFO L467 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-02-27 13:00:04,387 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:04,417 INFO L301 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-02-27 13:00:04,417 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-02-27 13:00:04,428 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:04,428 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_120|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_120| ULTIMATE.start_main_p3))) (and (= (select |v_#memory_int_120| ULTIMATE.start_main_p1) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_120| ULTIMATE.start_main_p3 (+ .cse0 1))) (= 0 .cse0) (= (select |v_#memory_int_120| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_120| ULTIMATE.start_main_p4) 0))) [2019-02-27 13:00:04,428 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:00:04,487 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:04,489 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:04,490 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:04,492 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:04,493 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:04,495 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:04,496 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:04,497 INFO L158 IndexEqualityManager]: detected equality via solver [2019-02-27 13:00:04,498 INFO L467 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-02-27 13:00:04,502 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:04,534 INFO L301 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-02-27 13:00:04,535 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-02-27 13:00:04,543 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:04,544 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_121|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_121| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (select |v_#memory_int_121| ULTIMATE.start_main_p2) 0) (= |#memory_int| (store |v_#memory_int_121| ULTIMATE.start_main_p1 (+ .cse0 1))) (= 1 (select |v_#memory_int_121| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 (select |v_#memory_int_121| ULTIMATE.start_main_p4)))) [2019-02-27 13:00:04,544 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:00:04,642 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:04,644 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:04,645 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:04,646 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:04,648 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:04,649 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:04,650 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:04,651 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:04,652 INFO L467 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 45 [2019-02-27 13:00:04,657 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:04,690 INFO L301 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-02-27 13:00:04,690 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-02-27 13:00:04,707 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:04,708 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_122|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_122| ULTIMATE.start_main_p4))) (and (= 1 (select |v_#memory_int_122| ULTIMATE.start_main_p3)) (= (store |v_#memory_int_122| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_122| ULTIMATE.start_main_p1) 1) (= 0 .cse0) (= (select |v_#memory_int_122| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:00:04,708 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 13:00:04,739 INFO L273 TraceCheckUtils]: 0: Hoare triple {5638#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {5647#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:00:04,741 INFO L273 TraceCheckUtils]: 1: Hoare triple {5647#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {5651#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:00:04,742 INFO L273 TraceCheckUtils]: 2: Hoare triple {5651#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {5655#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:00:04,744 INFO L273 TraceCheckUtils]: 3: Hoare triple {5655#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {5659#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-27 13:00:04,745 INFO L273 TraceCheckUtils]: 4: Hoare triple {5659#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {5639#false} is VALID [2019-02-27 13:00:04,745 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:00:04,746 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 13:00:04,829 INFO L273 TraceCheckUtils]: 4: Hoare triple {5643#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {5639#false} is VALID [2019-02-27 13:00:04,831 INFO L273 TraceCheckUtils]: 3: Hoare triple {5666#(<= 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]; {5643#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-27 13:00:04,832 INFO L273 TraceCheckUtils]: 2: Hoare triple {5670#(<= 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]; {5666#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-27 13:00:04,834 INFO L273 TraceCheckUtils]: 1: Hoare triple {5674#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {5670#(<= 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-02-27 13:00:04,836 INFO L273 TraceCheckUtils]: 0: Hoare triple {5638#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {5674#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-27 13:00:04,837 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 5 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:00:04,867 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 13:00:04,867 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-02-27 13:00:04,867 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 13:00:04,867 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-02-27 13:00:04,868 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 13:00:04,868 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-02-27 13:00:04,883 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:00:04,883 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-02-27 13:00:04,883 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-02-27 13:00:04,884 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=66, Invalid=90, Unknown=0, NotChecked=0, Total=156 [2019-02-27 13:00:04,884 INFO L87 Difference]: Start difference. First operand 59 states and 250 transitions. Second operand 10 states. [2019-02-27 13:00:06,674 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:00:06,675 INFO L93 Difference]: Finished difference Result 105 states and 359 transitions. [2019-02-27 13:00:06,675 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-02-27 13:00:06,675 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-02-27 13:00:06,675 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 13:00:06,675 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-27 13:00:06,675 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 63 transitions. [2019-02-27 13:00:06,675 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-27 13:00:06,676 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 63 transitions. [2019-02-27 13:00:06,676 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 63 transitions. [2019-02-27 13:00:06,773 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 63 edges. 63 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:00:06,775 INFO L225 Difference]: With dead ends: 105 [2019-02-27 13:00:06,775 INFO L226 Difference]: Without dead ends: 97 [2019-02-27 13:00:06,776 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 1 SyntacticMatches, 0 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 53 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=84, Invalid=126, Unknown=0, NotChecked=0, Total=210 [2019-02-27 13:00:06,776 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 97 states. [2019-02-27 13:00:07,534 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 97 to 71. [2019-02-27 13:00:07,535 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 13:00:07,535 INFO L82 GeneralOperation]: Start isEquivalent. First operand 97 states. Second operand 71 states. [2019-02-27 13:00:07,535 INFO L74 IsIncluded]: Start isIncluded. First operand 97 states. Second operand 71 states. [2019-02-27 13:00:07,535 INFO L87 Difference]: Start difference. First operand 97 states. Second operand 71 states. [2019-02-27 13:00:07,538 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:00:07,538 INFO L93 Difference]: Finished difference Result 97 states and 344 transitions. [2019-02-27 13:00:07,538 INFO L276 IsEmpty]: Start isEmpty. Operand 97 states and 344 transitions. [2019-02-27 13:00:07,539 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:00:07,539 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:00:07,539 INFO L74 IsIncluded]: Start isIncluded. First operand 71 states. Second operand 97 states. [2019-02-27 13:00:07,539 INFO L87 Difference]: Start difference. First operand 71 states. Second operand 97 states. [2019-02-27 13:00:07,541 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:00:07,541 INFO L93 Difference]: Finished difference Result 97 states and 344 transitions. [2019-02-27 13:00:07,541 INFO L276 IsEmpty]: Start isEmpty. Operand 97 states and 344 transitions. [2019-02-27 13:00:07,542 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:00:07,542 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:00:07,542 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 13:00:07,542 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 13:00:07,542 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 71 states. [2019-02-27 13:00:07,544 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 71 states to 71 states and 308 transitions. [2019-02-27 13:00:07,544 INFO L78 Accepts]: Start accepts. Automaton has 71 states and 308 transitions. Word has length 5 [2019-02-27 13:00:07,544 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 13:00:07,545 INFO L480 AbstractCegarLoop]: Abstraction has 71 states and 308 transitions. [2019-02-27 13:00:07,545 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-02-27 13:00:07,545 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 308 transitions. [2019-02-27 13:00:07,545 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-02-27 13:00:07,545 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 13:00:07,546 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1] [2019-02-27 13:00:07,546 INFO L423 AbstractCegarLoop]: === Iteration 26 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 13:00:07,546 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:00:07,546 INFO L82 PathProgramCache]: Analyzing trace with hash 902776598, now seen corresponding path program 1 times [2019-02-27 13:00:07,546 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 13:00:07,547 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:00:07,547 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:00:07,547 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:00:07,547 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 13:00:07,551 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:00:07,651 INFO L273 TraceCheckUtils]: 0: Hoare triple {6172#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {6174#(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-02-27 13:00:07,653 INFO L273 TraceCheckUtils]: 1: Hoare triple {6174#(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]; {6174#(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-02-27 13:00:07,654 INFO L273 TraceCheckUtils]: 2: Hoare triple {6174#(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]; {6175#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-02-27 13:00:07,654 INFO L273 TraceCheckUtils]: 3: Hoare triple {6175#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p1] >= 0; {6175#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-02-27 13:00:07,655 INFO L273 TraceCheckUtils]: 4: Hoare triple {6175#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p2] <= 0; {6175#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-02-27 13:00:07,656 INFO L273 TraceCheckUtils]: 5: Hoare triple {6175#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume !(#memory_int[main_p3] >= 0); {6173#false} is VALID [2019-02-27 13:00:07,656 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-02-27 13:00:07,657 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:00:07,657 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 13:00:07,657 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-02-27 13:00:07,657 INFO L207 CegarAbsIntRunner]: [0], [16], [20], [22], [23] [2019-02-27 13:00:07,659 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 13:00:07,659 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 13:00:07,693 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 13:00:07,693 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 3. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-02-27 13:00:07,694 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:00:07,694 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 13:00:07,694 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:00:07,694 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-02-27 13:00:07,703 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:00:07,704 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 13:00:07,707 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:00:07,708 INFO L256 TraceCheckSpWp]: Trace formula consists of 23 conjuncts, 5 conjunts are in the unsatisfiable core [2019-02-27 13:00:07,714 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:00:07,715 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 13:00:07,723 INFO L467 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 15 treesize of output 18 [2019-02-27 13:00:07,730 INFO L467 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 18 treesize of output 20 [2019-02-27 13:00:07,740 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-02-27 13:00:07,755 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:07,756 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 1 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 25 [2019-02-27 13:00:07,758 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:07,769 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:00:07,779 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:00:07,788 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:00:07,799 INFO L301 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-02-27 13:00:07,800 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:19, output treesize:24 [2019-02-27 13:00:07,804 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:07,804 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_126|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (= (store (store (store (store |v_#memory_int_126| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) [2019-02-27 13:00:07,804 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:00:07,838 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:07,839 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:07,840 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 15 [2019-02-27 13:00:07,842 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:07,851 INFO L301 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:00:07,851 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:24, output treesize:14 [2019-02-27 13:00:07,862 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:07,862 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_127|]. (let ((.cse0 (select |v_#memory_int_127| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_127| ULTIMATE.start_main_p3)) (= |#memory_int| (store |v_#memory_int_127| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= .cse0 0))) [2019-02-27 13:00:07,862 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-02-27 13:00:07,895 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:07,897 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:07,898 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:07,899 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 4 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 15 [2019-02-27 13:00:07,902 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:07,912 INFO L301 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-02-27 13:00:07,912 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:26, output treesize:14 [2019-02-27 13:00:09,933 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:09,933 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_128|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_128| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_128| ULTIMATE.start_main_p3)) (= (store |v_#memory_int_128| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (+ .cse0 1) 0))) [2019-02-27 13:00:09,933 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-02-27 13:00:09,971 INFO L273 TraceCheckUtils]: 0: Hoare triple {6172#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {6179#(and (< 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-02-27 13:00:09,972 INFO L273 TraceCheckUtils]: 1: Hoare triple {6179#(and (< 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]; {6183#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-02-27 13:00:09,974 INFO L273 TraceCheckUtils]: 2: Hoare triple {6183#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {6187#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))))} is VALID [2019-02-27 13:00:09,975 INFO L273 TraceCheckUtils]: 3: Hoare triple {6187#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))))} assume #memory_int[main_p1] >= 0; {6187#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))))} is VALID [2019-02-27 13:00:09,977 INFO L273 TraceCheckUtils]: 4: Hoare triple {6187#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))))} assume #memory_int[main_p2] <= 0; {6187#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))))} is VALID [2019-02-27 13:00:09,977 INFO L273 TraceCheckUtils]: 5: Hoare triple {6187#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))))} assume !(#memory_int[main_p3] >= 0); {6173#false} is VALID [2019-02-27 13:00:09,977 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:00:09,978 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 13:00:10,013 INFO L273 TraceCheckUtils]: 5: Hoare triple {6197#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {6173#false} is VALID [2019-02-27 13:00:10,013 INFO L273 TraceCheckUtils]: 4: Hoare triple {6197#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {6197#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:00:10,014 INFO L273 TraceCheckUtils]: 3: Hoare triple {6197#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {6197#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:00:10,015 INFO L273 TraceCheckUtils]: 2: Hoare triple {6207#(<= 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]; {6197#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:00:10,021 INFO L273 TraceCheckUtils]: 1: Hoare triple {6211#(<= 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]; {6207#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:00:10,024 INFO L273 TraceCheckUtils]: 0: Hoare triple {6172#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {6211#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 2))) ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:00:10,025 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:00:10,047 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 13:00:10,047 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 3, 3] total 8 [2019-02-27 13:00:10,047 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 13:00:10,048 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 6 [2019-02-27 13:00:10,048 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 13:00:10,048 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states. [2019-02-27 13:00:10,063 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:00:10,063 INFO L459 AbstractCegarLoop]: Interpolant automaton has 7 states [2019-02-27 13:00:10,063 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2019-02-27 13:00:10,064 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=37, Invalid=53, Unknown=0, NotChecked=0, Total=90 [2019-02-27 13:00:10,064 INFO L87 Difference]: Start difference. First operand 71 states and 308 transitions. Second operand 7 states. [2019-02-27 13:00:11,465 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:00:11,465 INFO L93 Difference]: Finished difference Result 85 states and 324 transitions. [2019-02-27 13:00:11,465 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-02-27 13:00:11,466 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 6 [2019-02-27 13:00:11,466 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 13:00:11,466 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2019-02-27 13:00:11,467 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 42 transitions. [2019-02-27 13:00:11,467 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2019-02-27 13:00:11,467 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 42 transitions. [2019-02-27 13:00:11,468 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 42 transitions. [2019-02-27 13:00:11,517 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 42 edges. 42 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:00:11,520 INFO L225 Difference]: With dead ends: 85 [2019-02-27 13:00:11,520 INFO L226 Difference]: Without dead ends: 80 [2019-02-27 13:00:11,520 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 5 SyntacticMatches, 0 SemanticMatches, 9 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 25 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-02-27 13:00:11,521 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 80 states. [2019-02-27 13:00:12,207 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 80 to 71. [2019-02-27 13:00:12,207 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 13:00:12,208 INFO L82 GeneralOperation]: Start isEquivalent. First operand 80 states. Second operand 71 states. [2019-02-27 13:00:12,208 INFO L74 IsIncluded]: Start isIncluded. First operand 80 states. Second operand 71 states. [2019-02-27 13:00:12,208 INFO L87 Difference]: Start difference. First operand 80 states. Second operand 71 states. [2019-02-27 13:00:12,211 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:00:12,211 INFO L93 Difference]: Finished difference Result 80 states and 318 transitions. [2019-02-27 13:00:12,211 INFO L276 IsEmpty]: Start isEmpty. Operand 80 states and 318 transitions. [2019-02-27 13:00:12,211 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:00:12,212 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:00:12,212 INFO L74 IsIncluded]: Start isIncluded. First operand 71 states. Second operand 80 states. [2019-02-27 13:00:12,212 INFO L87 Difference]: Start difference. First operand 71 states. Second operand 80 states. [2019-02-27 13:00:12,213 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:00:12,214 INFO L93 Difference]: Finished difference Result 80 states and 318 transitions. [2019-02-27 13:00:12,214 INFO L276 IsEmpty]: Start isEmpty. Operand 80 states and 318 transitions. [2019-02-27 13:00:12,214 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:00:12,214 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:00:12,214 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 13:00:12,214 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 13:00:12,214 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 71 states. [2019-02-27 13:00:12,216 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 71 states to 71 states and 307 transitions. [2019-02-27 13:00:12,216 INFO L78 Accepts]: Start accepts. Automaton has 71 states and 307 transitions. Word has length 6 [2019-02-27 13:00:12,216 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 13:00:12,216 INFO L480 AbstractCegarLoop]: Abstraction has 71 states and 307 transitions. [2019-02-27 13:00:12,216 INFO L481 AbstractCegarLoop]: Interpolant automaton has 7 states. [2019-02-27 13:00:12,216 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 307 transitions. [2019-02-27 13:00:12,217 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-02-27 13:00:12,217 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 13:00:12,217 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-02-27 13:00:12,217 INFO L423 AbstractCegarLoop]: === Iteration 27 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 13:00:12,217 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:00:12,217 INFO L82 PathProgramCache]: Analyzing trace with hash 902478688, now seen corresponding path program 1 times [2019-02-27 13:00:12,217 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 13:00:12,218 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:00:12,218 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:00:12,218 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:00:12,218 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 13:00:12,222 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:00:12,374 INFO L273 TraceCheckUtils]: 0: Hoare triple {6651#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {6653#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-02-27 13:00:12,375 INFO L273 TraceCheckUtils]: 1: Hoare triple {6653#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {6654#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-02-27 13:00:12,376 INFO L273 TraceCheckUtils]: 2: Hoare triple {6654#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {6655#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-02-27 13:00:12,377 INFO L273 TraceCheckUtils]: 3: Hoare triple {6655#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p1] >= 0; {6655#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-02-27 13:00:12,378 INFO L273 TraceCheckUtils]: 4: Hoare triple {6655#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p2] <= 0; {6655#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-02-27 13:00:12,378 INFO L273 TraceCheckUtils]: 5: Hoare triple {6655#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume !(#memory_int[main_p3] >= 0); {6652#false} is VALID [2019-02-27 13:00:12,379 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:00:12,379 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:00:12,379 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 13:00:12,379 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-02-27 13:00:12,379 INFO L207 CegarAbsIntRunner]: [0], [6], [16], [20], [22], [23] [2019-02-27 13:00:12,381 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 13:00:12,381 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 13:00:12,395 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 13:00:12,395 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 3. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-02-27 13:00:12,395 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:00:12,395 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 13:00:12,395 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:00:12,395 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-02-27 13:00:12,404 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:00:12,404 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 13:00:12,408 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:00:12,408 INFO L256 TraceCheckSpWp]: Trace formula consists of 23 conjuncts, 7 conjunts are in the unsatisfiable core [2019-02-27 13:00:12,411 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:00:12,412 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 13:00:12,430 INFO L467 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 15 treesize of output 18 [2019-02-27 13:00:12,441 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:12,442 INFO L467 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 18 treesize of output 24 [2019-02-27 13:00:12,464 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:12,466 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:12,466 INFO L467 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 20 treesize of output 34 [2019-02-27 13:00:12,481 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:12,483 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:12,484 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:12,485 INFO L467 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 22 treesize of output 45 [2019-02-27 13:00:12,488 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:12,509 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:00:12,521 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:00:12,532 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:00:12,547 INFO L301 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-02-27 13:00:12,548 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-02-27 13:00:12,553 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:12,553 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_131|, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_131| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:00:12,553 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:00:12,603 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:12,604 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:12,606 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:12,607 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:12,609 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:12,610 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:12,611 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:12,612 INFO L467 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-02-27 13:00:12,616 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:12,647 INFO L301 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-02-27 13:00:12,647 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-02-27 13:00:14,667 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:14,667 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_132|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_132| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_132| ULTIMATE.start_main_p1) 0) (= |#memory_int| (store |v_#memory_int_132| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= .cse0 0) (= (select |v_#memory_int_132| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_132| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:00:14,667 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 13:00:14,748 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:14,749 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:14,751 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:14,752 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:14,753 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:14,755 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:14,756 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:14,757 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:14,758 INFO L467 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 47 [2019-02-27 13:00:14,762 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:14,811 INFO L301 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-02-27 13:00:14,811 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-02-27 13:00:14,824 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:14,824 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_133|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_133| ULTIMATE.start_main_p1))) (and (= 0 (select |v_#memory_int_133| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_133| ULTIMATE.start_main_p4) 1)) (= |#memory_int| (store |v_#memory_int_133| ULTIMATE.start_main_p1 (+ .cse0 1))) (= .cse0 0) (= 0 (select |v_#memory_int_133| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:00:14,824 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:00:14,886 INFO L273 TraceCheckUtils]: 0: Hoare triple {6651#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {6659#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:00:14,889 INFO L273 TraceCheckUtils]: 1: Hoare triple {6659#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {6663#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-27 13:00:14,891 INFO L273 TraceCheckUtils]: 2: Hoare triple {6663#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {6667#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-02-27 13:00:14,891 INFO L273 TraceCheckUtils]: 3: Hoare triple {6667#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p1] >= 0; {6667#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-02-27 13:00:14,892 INFO L273 TraceCheckUtils]: 4: Hoare triple {6667#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p2] <= 0; {6667#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-02-27 13:00:14,893 INFO L273 TraceCheckUtils]: 5: Hoare triple {6667#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume !(#memory_int[main_p3] >= 0); {6652#false} is VALID [2019-02-27 13:00:14,893 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:00:14,893 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 13:00:14,941 INFO L273 TraceCheckUtils]: 5: Hoare triple {6677#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {6652#false} is VALID [2019-02-27 13:00:14,942 INFO L273 TraceCheckUtils]: 4: Hoare triple {6677#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {6677#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:00:14,942 INFO L273 TraceCheckUtils]: 3: Hoare triple {6677#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {6677#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:00:14,943 INFO L273 TraceCheckUtils]: 2: Hoare triple {6687#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {6677#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:00:14,945 INFO L273 TraceCheckUtils]: 1: Hoare triple {6691#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {6687#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:00:14,947 INFO L273 TraceCheckUtils]: 0: Hoare triple {6651#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {6691#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:00:14,947 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:00:14,967 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 13:00:14,967 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-02-27 13:00:14,967 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 13:00:14,967 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-02-27 13:00:14,967 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 13:00:14,968 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-02-27 13:00:14,986 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:00:14,986 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-02-27 13:00:14,987 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-02-27 13:00:14,987 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-02-27 13:00:14,987 INFO L87 Difference]: Start difference. First operand 71 states and 307 transitions. Second operand 8 states. [2019-02-27 13:00:16,498 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:00:16,498 INFO L93 Difference]: Finished difference Result 83 states and 322 transitions. [2019-02-27 13:00:16,499 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-02-27 13:00:16,499 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-02-27 13:00:16,499 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 13:00:16,499 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-27 13:00:16,499 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 38 transitions. [2019-02-27 13:00:16,499 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-27 13:00:16,499 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 38 transitions. [2019-02-27 13:00:16,500 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 38 transitions. [2019-02-27 13:00:16,554 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 38 edges. 38 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:00:16,556 INFO L225 Difference]: With dead ends: 83 [2019-02-27 13:00:16,556 INFO L226 Difference]: Without dead ends: 82 [2019-02-27 13:00:16,557 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 16 GetRequests, 5 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-02-27 13:00:16,557 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 82 states. [2019-02-27 13:00:17,339 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 82 to 71. [2019-02-27 13:00:17,339 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 13:00:17,339 INFO L82 GeneralOperation]: Start isEquivalent. First operand 82 states. Second operand 71 states. [2019-02-27 13:00:17,340 INFO L74 IsIncluded]: Start isIncluded. First operand 82 states. Second operand 71 states. [2019-02-27 13:00:17,340 INFO L87 Difference]: Start difference. First operand 82 states. Second operand 71 states. [2019-02-27 13:00:17,342 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:00:17,342 INFO L93 Difference]: Finished difference Result 82 states and 320 transitions. [2019-02-27 13:00:17,342 INFO L276 IsEmpty]: Start isEmpty. Operand 82 states and 320 transitions. [2019-02-27 13:00:17,342 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:00:17,342 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:00:17,342 INFO L74 IsIncluded]: Start isIncluded. First operand 71 states. Second operand 82 states. [2019-02-27 13:00:17,343 INFO L87 Difference]: Start difference. First operand 71 states. Second operand 82 states. [2019-02-27 13:00:17,344 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:00:17,345 INFO L93 Difference]: Finished difference Result 82 states and 320 transitions. [2019-02-27 13:00:17,345 INFO L276 IsEmpty]: Start isEmpty. Operand 82 states and 320 transitions. [2019-02-27 13:00:17,345 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:00:17,345 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:00:17,345 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 13:00:17,345 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 13:00:17,345 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 71 states. [2019-02-27 13:00:17,347 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 71 states to 71 states and 307 transitions. [2019-02-27 13:00:17,347 INFO L78 Accepts]: Start accepts. Automaton has 71 states and 307 transitions. Word has length 6 [2019-02-27 13:00:17,347 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 13:00:17,347 INFO L480 AbstractCegarLoop]: Abstraction has 71 states and 307 transitions. [2019-02-27 13:00:17,347 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-02-27 13:00:17,347 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 307 transitions. [2019-02-27 13:00:17,348 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-02-27 13:00:17,348 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 13:00:17,348 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-02-27 13:00:17,348 INFO L423 AbstractCegarLoop]: === Iteration 28 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 13:00:17,348 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:00:17,348 INFO L82 PathProgramCache]: Analyzing trace with hash 902469014, now seen corresponding path program 1 times [2019-02-27 13:00:17,348 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 13:00:17,349 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:00:17,349 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:00:17,349 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:00:17,349 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 13:00:17,353 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:00:17,559 INFO L273 TraceCheckUtils]: 0: Hoare triple {7135#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {7137#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-02-27 13:00:17,560 INFO L273 TraceCheckUtils]: 1: Hoare triple {7137#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {7138#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-02-27 13:00:17,561 INFO L273 TraceCheckUtils]: 2: Hoare triple {7138#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {7138#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-02-27 13:00:17,562 INFO L273 TraceCheckUtils]: 3: Hoare triple {7138#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {7139#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (<= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-02-27 13:00:17,563 INFO L273 TraceCheckUtils]: 4: Hoare triple {7139#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (<= (select |#memory_int| ULTIMATE.start_main_p2) 0))} assume #memory_int[main_p1] >= 0; {7140#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 13:00:17,563 INFO L273 TraceCheckUtils]: 5: Hoare triple {7140#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {7136#false} is VALID [2019-02-27 13:00:17,564 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-02-27 13:00:17,564 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:00:17,564 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 13:00:17,565 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-02-27 13:00:17,565 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [16], [20], [21] [2019-02-27 13:00:17,566 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 13:00:17,566 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 13:00:17,579 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 13:00:17,579 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 3. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-02-27 13:00:17,580 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:00:17,580 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 13:00:17,580 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:00:17,580 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-02-27 13:00:17,592 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:00:17,592 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 13:00:17,596 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:00:17,596 INFO L256 TraceCheckSpWp]: Trace formula consists of 23 conjuncts, 8 conjunts are in the unsatisfiable core [2019-02-27 13:00:17,603 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:00:17,603 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 13:00:17,629 INFO L467 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 15 treesize of output 18 [2019-02-27 13:00:17,636 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:17,637 INFO L467 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 18 treesize of output 24 [2019-02-27 13:00:17,649 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:17,651 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:17,652 INFO L467 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 20 treesize of output 34 [2019-02-27 13:00:17,669 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:17,670 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:17,671 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:17,672 INFO L467 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 22 treesize of output 45 [2019-02-27 13:00:17,677 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:17,697 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:00:17,709 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:00:17,719 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:00:17,738 INFO L301 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-02-27 13:00:17,738 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-02-27 13:00:17,747 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:17,747 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_136|, ULTIMATE.start_main_p3]. (and (= (store (store (store (store |v_#memory_int_136| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 13:00:17,747 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:00:17,805 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:17,807 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:17,808 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:17,809 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:17,811 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:17,812 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:17,814 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:17,815 INFO L467 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-02-27 13:00:17,819 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:17,864 INFO L301 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-02-27 13:00:17,864 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-02-27 13:00:19,868 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:19,868 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_137|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_137| ULTIMATE.start_main_p4))) (and (= |#memory_int| (store |v_#memory_int_137| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_137| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_137| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_137| ULTIMATE.start_main_p3) 0) (= 0 .cse0))) [2019-02-27 13:00:19,869 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 13:00:19,927 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:19,928 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:19,930 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:19,931 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:19,932 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:19,934 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:19,935 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:19,936 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:19,937 INFO L467 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 47 [2019-02-27 13:00:19,940 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:19,972 INFO L301 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-02-27 13:00:19,973 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-02-27 13:00:21,982 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:21,983 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_138|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_138| ULTIMATE.start_main_p1))) (and (= .cse0 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_138| ULTIMATE.start_main_p3)) (= (+ (select |v_#memory_int_138| ULTIMATE.start_main_p4) 1) 0) (= |#memory_int| (store |v_#memory_int_138| ULTIMATE.start_main_p1 (+ .cse0 1))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 (select |v_#memory_int_138| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:00:21,983 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:00:22,036 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:22,038 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:22,039 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:22,040 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:22,041 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:22,043 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:22,043 INFO L158 IndexEqualityManager]: detected equality via solver [2019-02-27 13:00:22,044 INFO L467 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 47 [2019-02-27 13:00:22,047 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:22,080 INFO L301 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-02-27 13:00:22,080 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-02-27 13:00:22,096 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:22,097 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_139|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_139| ULTIMATE.start_main_p2))) (and (= (select |v_#memory_int_139| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |v_#memory_int_139| ULTIMATE.start_main_p4) 1) 0) (= .cse0 0) (= (store |v_#memory_int_139| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |v_#memory_int_139| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:00:22,097 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:00:22,139 INFO L273 TraceCheckUtils]: 0: Hoare triple {7135#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {7144#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 13:00:22,141 INFO L273 TraceCheckUtils]: 1: Hoare triple {7144#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {7148#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-02-27 13:00:22,144 INFO L273 TraceCheckUtils]: 2: Hoare triple {7148#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {7152#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-02-27 13:00:22,146 INFO L273 TraceCheckUtils]: 3: Hoare triple {7152#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {7156#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-02-27 13:00:22,147 INFO L273 TraceCheckUtils]: 4: Hoare triple {7156#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume #memory_int[main_p1] >= 0; {7156#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-02-27 13:00:22,148 INFO L273 TraceCheckUtils]: 5: Hoare triple {7156#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume !(#memory_int[main_p2] <= 0); {7136#false} is VALID [2019-02-27 13:00:22,149 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:00:22,149 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 13:00:22,194 INFO L273 TraceCheckUtils]: 5: Hoare triple {7140#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {7136#false} is VALID [2019-02-27 13:00:22,195 INFO L273 TraceCheckUtils]: 4: Hoare triple {7140#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {7140#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 13:00:22,196 INFO L273 TraceCheckUtils]: 3: Hoare triple {7169#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {7140#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 13:00:22,197 INFO L273 TraceCheckUtils]: 2: Hoare triple {7173#(<= (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]; {7169#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} is VALID [2019-02-27 13:00:22,198 INFO L273 TraceCheckUtils]: 1: Hoare triple {7177#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {7173#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1)} is VALID [2019-02-27 13:00:22,200 INFO L273 TraceCheckUtils]: 0: Hoare triple {7135#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {7177#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1)} is VALID [2019-02-27 13:00:22,201 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 4 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:00:22,221 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 13:00:22,222 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-02-27 13:00:22,222 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 13:00:22,222 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-02-27 13:00:22,222 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 13:00:22,222 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-02-27 13:00:22,242 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:00:22,242 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-02-27 13:00:22,242 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-02-27 13:00:22,243 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=64, Invalid=92, Unknown=0, NotChecked=0, Total=156 [2019-02-27 13:00:22,243 INFO L87 Difference]: Start difference. First operand 71 states and 307 transitions. Second operand 10 states. [2019-02-27 13:00:24,387 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:00:24,387 INFO L93 Difference]: Finished difference Result 97 states and 346 transitions. [2019-02-27 13:00:24,387 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-02-27 13:00:24,387 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-02-27 13:00:24,387 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 13:00:24,387 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-27 13:00:24,388 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 56 transitions. [2019-02-27 13:00:24,389 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-27 13:00:24,390 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 56 transitions. [2019-02-27 13:00:24,390 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 56 transitions. [2019-02-27 13:00:24,471 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 56 edges. 56 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:00:24,473 INFO L225 Difference]: With dead ends: 97 [2019-02-27 13:00:24,473 INFO L226 Difference]: Without dead ends: 96 [2019-02-27 13:00:24,474 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 3 SyntacticMatches, 1 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 52 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=92, Invalid=148, Unknown=0, NotChecked=0, Total=240 [2019-02-27 13:00:24,474 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 96 states. [2019-02-27 13:00:25,212 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 96 to 71. [2019-02-27 13:00:25,212 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 13:00:25,212 INFO L82 GeneralOperation]: Start isEquivalent. First operand 96 states. Second operand 71 states. [2019-02-27 13:00:25,213 INFO L74 IsIncluded]: Start isIncluded. First operand 96 states. Second operand 71 states. [2019-02-27 13:00:25,213 INFO L87 Difference]: Start difference. First operand 96 states. Second operand 71 states. [2019-02-27 13:00:25,218 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:00:25,219 INFO L93 Difference]: Finished difference Result 96 states and 344 transitions. [2019-02-27 13:00:25,219 INFO L276 IsEmpty]: Start isEmpty. Operand 96 states and 344 transitions. [2019-02-27 13:00:25,219 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:00:25,219 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:00:25,219 INFO L74 IsIncluded]: Start isIncluded. First operand 71 states. Second operand 96 states. [2019-02-27 13:00:25,220 INFO L87 Difference]: Start difference. First operand 71 states. Second operand 96 states. [2019-02-27 13:00:25,224 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:00:25,224 INFO L93 Difference]: Finished difference Result 96 states and 344 transitions. [2019-02-27 13:00:25,224 INFO L276 IsEmpty]: Start isEmpty. Operand 96 states and 344 transitions. [2019-02-27 13:00:25,225 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:00:25,225 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:00:25,225 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 13:00:25,225 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 13:00:25,225 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 71 states. [2019-02-27 13:00:25,229 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 71 states to 71 states and 307 transitions. [2019-02-27 13:00:25,230 INFO L78 Accepts]: Start accepts. Automaton has 71 states and 307 transitions. Word has length 6 [2019-02-27 13:00:25,230 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 13:00:25,230 INFO L480 AbstractCegarLoop]: Abstraction has 71 states and 307 transitions. [2019-02-27 13:00:25,230 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-02-27 13:00:25,230 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 307 transitions. [2019-02-27 13:00:25,230 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-02-27 13:00:25,231 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 13:00:25,231 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-02-27 13:00:25,231 INFO L423 AbstractCegarLoop]: === Iteration 29 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 13:00:25,231 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:00:25,231 INFO L82 PathProgramCache]: Analyzing trace with hash 902472858, now seen corresponding path program 1 times [2019-02-27 13:00:25,231 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 13:00:25,232 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:00:25,232 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:00:25,232 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:00:25,232 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 13:00:25,237 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:00:25,714 INFO L273 TraceCheckUtils]: 0: Hoare triple {7668#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {7670#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-02-27 13:00:25,715 INFO L273 TraceCheckUtils]: 1: Hoare triple {7670#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {7671#(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-02-27 13:00:25,720 INFO L273 TraceCheckUtils]: 2: Hoare triple {7671#(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]; {7671#(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-02-27 13:00:25,721 INFO L273 TraceCheckUtils]: 3: Hoare triple {7671#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {7672#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-02-27 13:00:25,722 INFO L273 TraceCheckUtils]: 4: Hoare triple {7672#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} assume #memory_int[main_p1] >= 0; {7673#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 13:00:25,722 INFO L273 TraceCheckUtils]: 5: Hoare triple {7673#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {7669#false} is VALID [2019-02-27 13:00:25,722 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-02-27 13:00:25,723 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:00:25,723 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 13:00:25,723 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-02-27 13:00:25,723 INFO L207 CegarAbsIntRunner]: [0], [6], [14], [16], [20], [21] [2019-02-27 13:00:25,731 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 13:00:25,731 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 13:00:25,748 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 13:00:25,748 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 3. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-02-27 13:00:25,748 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:00:25,748 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 13:00:25,748 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:00:25,749 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-02-27 13:00:25,758 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:00:25,758 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 13:00:25,763 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:00:25,764 INFO L256 TraceCheckSpWp]: Trace formula consists of 23 conjuncts, 8 conjunts are in the unsatisfiable core [2019-02-27 13:00:25,766 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:00:25,767 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 13:00:25,785 INFO L467 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 15 treesize of output 18 [2019-02-27 13:00:25,798 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:25,799 INFO L467 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 18 treesize of output 24 [2019-02-27 13:00:25,810 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:25,811 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:25,812 INFO L467 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 20 treesize of output 34 [2019-02-27 13:00:25,827 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:25,829 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:25,830 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:25,831 INFO L467 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 22 treesize of output 45 [2019-02-27 13:00:25,835 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:25,897 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:00:25,909 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:00:25,920 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:00:25,934 INFO L301 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:00:25,935 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-02-27 13:00:25,939 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:25,939 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_143|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (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_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:00:25,939 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:00:25,995 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:25,997 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:25,998 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:25,999 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:26,001 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:26,002 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:26,004 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:26,005 INFO L467 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-02-27 13:00:26,009 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:26,041 INFO L301 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-02-27 13:00:26,042 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-02-27 13:00:26,074 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:26,074 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_144|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_144| ULTIMATE.start_main_p4))) (and (= 0 (select |v_#memory_int_144| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_144| ULTIMATE.start_main_p1) 0) (= |#memory_int| (store |v_#memory_int_144| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= 0 (select |v_#memory_int_144| ULTIMATE.start_main_p2)) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:00:26,075 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 13:00:26,133 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:26,135 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:26,136 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:26,137 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:26,139 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:26,140 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:26,141 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:26,143 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:26,144 INFO L467 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 47 [2019-02-27 13:00:26,147 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:26,197 INFO L301 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-02-27 13:00:26,197 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-02-27 13:00:26,277 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:26,278 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_145|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_145| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= |#memory_int| (store |v_#memory_int_145| ULTIMATE.start_main_p1 (+ .cse0 1))) (= 0 (select |v_#memory_int_145| ULTIMATE.start_main_p3)) (= 0 (select |v_#memory_int_145| ULTIMATE.start_main_p2)) (= (+ (select |v_#memory_int_145| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-02-27 13:00:26,278 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:00:26,340 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:26,342 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:26,343 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:26,344 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:26,346 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:26,347 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:26,348 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:26,349 INFO L158 IndexEqualityManager]: detected equality via solver [2019-02-27 13:00:26,350 INFO L467 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 47 [2019-02-27 13:00:26,353 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:26,387 INFO L301 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-02-27 13:00:26,388 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-02-27 13:00:26,400 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:26,400 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_146|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_146| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_146| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= (select |v_#memory_int_146| ULTIMATE.start_main_p1) 1) (= 0 (select |v_#memory_int_146| ULTIMATE.start_main_p2)) (= 0 (+ (select |v_#memory_int_146| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-02-27 13:00:26,400 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:00:26,453 INFO L273 TraceCheckUtils]: 0: Hoare triple {7668#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {7677#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 13:00:26,455 INFO L273 TraceCheckUtils]: 1: Hoare triple {7677#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {7681#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 13:00:26,458 INFO L273 TraceCheckUtils]: 2: Hoare triple {7681#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {7685#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:00:26,460 INFO L273 TraceCheckUtils]: 3: Hoare triple {7685#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {7689#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-02-27 13:00:26,461 INFO L273 TraceCheckUtils]: 4: Hoare triple {7689#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume #memory_int[main_p1] >= 0; {7689#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-02-27 13:00:26,462 INFO L273 TraceCheckUtils]: 5: Hoare triple {7689#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume !(#memory_int[main_p2] <= 0); {7669#false} is VALID [2019-02-27 13:00:26,463 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:00:26,463 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 13:00:26,538 INFO L273 TraceCheckUtils]: 5: Hoare triple {7696#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {7669#false} is VALID [2019-02-27 13:00:26,539 INFO L273 TraceCheckUtils]: 4: Hoare triple {7696#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {7696#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 13:00:26,540 INFO L273 TraceCheckUtils]: 3: Hoare triple {7703#(<= (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]; {7696#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 13:00:26,541 INFO L273 TraceCheckUtils]: 2: Hoare triple {7707#(<= (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]; {7703#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 13:00:26,544 INFO L273 TraceCheckUtils]: 1: Hoare triple {7711#(<= (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]; {7707#(<= (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-02-27 13:00:26,545 INFO L273 TraceCheckUtils]: 0: Hoare triple {7668#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {7711#(<= (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-02-27 13:00:26,546 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 1 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:00:26,565 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 13:00:26,566 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-02-27 13:00:26,566 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 13:00:26,566 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-02-27 13:00:26,566 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 13:00:26,566 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-02-27 13:00:26,586 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:00:26,587 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-02-27 13:00:26,587 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-02-27 13:00:26,587 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=65, Invalid=117, Unknown=0, NotChecked=0, Total=182 [2019-02-27 13:00:26,587 INFO L87 Difference]: Start difference. First operand 71 states and 307 transitions. Second operand 10 states. [2019-02-27 13:00:28,458 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:00:28,458 INFO L93 Difference]: Finished difference Result 102 states and 389 transitions. [2019-02-27 13:00:28,458 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-02-27 13:00:28,458 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-02-27 13:00:28,458 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 13:00:28,458 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-27 13:00:28,459 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 47 transitions. [2019-02-27 13:00:28,459 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-27 13:00:28,459 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 47 transitions. [2019-02-27 13:00:28,460 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 47 transitions. [2019-02-27 13:00:28,532 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 47 edges. 47 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:00:28,534 INFO L225 Difference]: With dead ends: 102 [2019-02-27 13:00:28,535 INFO L226 Difference]: Without dead ends: 101 [2019-02-27 13:00:28,535 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-02-27 13:00:28,535 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 101 states. [2019-02-27 13:00:29,462 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 101 to 81. [2019-02-27 13:00:29,462 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 13:00:29,462 INFO L82 GeneralOperation]: Start isEquivalent. First operand 101 states. Second operand 81 states. [2019-02-27 13:00:29,462 INFO L74 IsIncluded]: Start isIncluded. First operand 101 states. Second operand 81 states. [2019-02-27 13:00:29,462 INFO L87 Difference]: Start difference. First operand 101 states. Second operand 81 states. [2019-02-27 13:00:29,466 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:00:29,466 INFO L93 Difference]: Finished difference Result 101 states and 386 transitions. [2019-02-27 13:00:29,466 INFO L276 IsEmpty]: Start isEmpty. Operand 101 states and 386 transitions. [2019-02-27 13:00:29,467 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:00:29,467 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:00:29,467 INFO L74 IsIncluded]: Start isIncluded. First operand 81 states. Second operand 101 states. [2019-02-27 13:00:29,467 INFO L87 Difference]: Start difference. First operand 81 states. Second operand 101 states. [2019-02-27 13:00:29,469 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:00:29,469 INFO L93 Difference]: Finished difference Result 101 states and 386 transitions. [2019-02-27 13:00:29,469 INFO L276 IsEmpty]: Start isEmpty. Operand 101 states and 386 transitions. [2019-02-27 13:00:29,470 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:00:29,470 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:00:29,470 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 13:00:29,470 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 13:00:29,470 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 81 states. [2019-02-27 13:00:29,473 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 81 states to 81 states and 357 transitions. [2019-02-27 13:00:29,473 INFO L78 Accepts]: Start accepts. Automaton has 81 states and 357 transitions. Word has length 6 [2019-02-27 13:00:29,473 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 13:00:29,473 INFO L480 AbstractCegarLoop]: Abstraction has 81 states and 357 transitions. [2019-02-27 13:00:29,473 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-02-27 13:00:29,473 INFO L276 IsEmpty]: Start isEmpty. Operand 81 states and 357 transitions. [2019-02-27 13:00:29,474 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-02-27 13:00:29,474 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 13:00:29,474 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-02-27 13:00:29,474 INFO L423 AbstractCegarLoop]: === Iteration 30 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 13:00:29,474 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:00:29,474 INFO L82 PathProgramCache]: Analyzing trace with hash 902592022, now seen corresponding path program 1 times [2019-02-27 13:00:29,475 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 13:00:29,475 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:00:29,475 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:00:29,475 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:00:29,476 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 13:00:29,479 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:00:29,635 INFO L273 TraceCheckUtils]: 0: Hoare triple {8246#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {8248#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-02-27 13:00:29,636 INFO L273 TraceCheckUtils]: 1: Hoare triple {8248#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {8249#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-02-27 13:00:29,638 INFO L273 TraceCheckUtils]: 2: Hoare triple {8249#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {8250#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-02-27 13:00:29,638 INFO L273 TraceCheckUtils]: 3: Hoare triple {8250#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {8251#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-02-27 13:00:29,639 INFO L273 TraceCheckUtils]: 4: Hoare triple {8251#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume #memory_int[main_p1] >= 0; {8251#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-02-27 13:00:29,639 INFO L273 TraceCheckUtils]: 5: Hoare triple {8251#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume !(#memory_int[main_p2] <= 0); {8247#false} is VALID [2019-02-27 13:00:29,640 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:00:29,640 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:00:29,640 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 13:00:29,640 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-02-27 13:00:29,641 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [16], [20], [21] [2019-02-27 13:00:29,643 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 13:00:29,643 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 13:00:29,651 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 13:00:29,652 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 3. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-02-27 13:00:29,652 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:00:29,652 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 13:00:29,653 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:00:29,653 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-02-27 13:00:29,663 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:00:29,663 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 13:00:29,668 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:00:29,669 INFO L256 TraceCheckSpWp]: Trace formula consists of 23 conjuncts, 7 conjunts are in the unsatisfiable core [2019-02-27 13:00:29,679 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:00:29,679 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 13:00:29,694 INFO L467 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 15 treesize of output 18 [2019-02-27 13:00:29,707 INFO L467 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 18 treesize of output 20 [2019-02-27 13:00:29,720 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:29,721 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 26 [2019-02-27 13:00:29,734 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:29,736 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:29,737 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 33 [2019-02-27 13:00:29,739 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:29,753 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:00:29,761 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:00:29,770 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:00:29,782 INFO L301 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-02-27 13:00:29,783 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:22, output treesize:27 [2019-02-27 13:00:29,787 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:29,787 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_150|, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (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_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:00:29,787 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:00:29,949 WARN L181 SmtUtils]: Spent 150.00 ms on a formula simplification. DAG size of input: 18 DAG size of output: 14 [2019-02-27 13:00:29,972 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:29,973 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:29,974 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:29,976 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:29,977 INFO L467 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-02-27 13:00:29,979 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:29,998 INFO L301 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-02-27 13:00:29,998 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:22 [2019-02-27 13:00:32,013 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:32,013 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_151|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_151| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= (select |v_#memory_int_151| ULTIMATE.start_main_p2) 0) (= 0 (select |v_#memory_int_151| ULTIMATE.start_main_p3)) (= |#memory_int| (store |v_#memory_int_151| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-02-27 13:00:32,013 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:00:32,064 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:32,066 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:32,067 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:32,068 INFO L158 IndexEqualityManager]: detected equality via solver [2019-02-27 13:00:32,069 INFO L467 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 30 [2019-02-27 13:00:32,071 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:32,090 INFO L301 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-02-27 13:00:32,090 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:34, output treesize:24 [2019-02-27 13:00:32,100 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:32,100 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_152|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_152| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_152| ULTIMATE.start_main_p4) 1)) (= |#memory_int| (store |v_#memory_int_152| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= .cse0 0) (= 0 (select |v_#memory_int_152| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-02-27 13:00:32,101 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:00:32,148 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:32,149 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:32,150 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:32,152 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:32,153 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:32,154 INFO L467 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 30 treesize of output 32 [2019-02-27 13:00:32,156 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:32,176 INFO L301 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-02-27 13:00:32,177 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:36, output treesize:26 [2019-02-27 13:00:32,183 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:32,184 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_153|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_153| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |v_#memory_int_153| ULTIMATE.start_main_p4) 1) 0) (= |#memory_int| (store |v_#memory_int_153| ULTIMATE.start_main_p3 (+ .cse0 1))) (= .cse0 0) (= (+ (select |v_#memory_int_153| ULTIMATE.start_main_p2) 1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-02-27 13:00:32,184 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-02-27 13:00:32,221 INFO L273 TraceCheckUtils]: 0: Hoare triple {8246#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {8255#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:00:32,222 INFO L273 TraceCheckUtils]: 1: Hoare triple {8255#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {8259#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:00:32,226 INFO L273 TraceCheckUtils]: 2: Hoare triple {8259#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {8263#(and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:00:32,227 INFO L273 TraceCheckUtils]: 3: Hoare triple {8263#(and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {8267#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-02-27 13:00:32,228 INFO L273 TraceCheckUtils]: 4: Hoare triple {8267#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume #memory_int[main_p1] >= 0; {8267#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-02-27 13:00:32,228 INFO L273 TraceCheckUtils]: 5: Hoare triple {8267#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume !(#memory_int[main_p2] <= 0); {8247#false} is VALID [2019-02-27 13:00:32,229 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:00:32,229 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 13:00:32,292 INFO L273 TraceCheckUtils]: 5: Hoare triple {8274#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {8247#false} is VALID [2019-02-27 13:00:32,296 INFO L273 TraceCheckUtils]: 4: Hoare triple {8274#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {8274#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 13:00:32,309 INFO L273 TraceCheckUtils]: 3: Hoare triple {8281#(<= (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]; {8274#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 13:00:32,310 INFO L273 TraceCheckUtils]: 2: Hoare triple {8285#(<= (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]; {8281#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 13:00:32,311 INFO L273 TraceCheckUtils]: 1: Hoare triple {8289#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {8285#(<= (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-02-27 13:00:32,312 INFO L273 TraceCheckUtils]: 0: Hoare triple {8246#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {8289#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 13:00:32,313 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 5 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:00:32,332 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 13:00:32,332 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-02-27 13:00:32,332 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 13:00:32,332 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-02-27 13:00:32,333 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 13:00:32,333 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-02-27 13:00:32,351 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:00:32,351 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-02-27 13:00:32,351 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-02-27 13:00:32,352 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=71, Invalid=111, Unknown=0, NotChecked=0, Total=182 [2019-02-27 13:00:32,352 INFO L87 Difference]: Start difference. First operand 81 states and 357 transitions. Second operand 10 states. [2019-02-27 13:00:34,189 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:00:34,190 INFO L93 Difference]: Finished difference Result 108 states and 386 transitions. [2019-02-27 13:00:34,190 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-02-27 13:00:34,190 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-02-27 13:00:34,190 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 13:00:34,190 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-27 13:00:34,191 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 57 transitions. [2019-02-27 13:00:34,191 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-27 13:00:34,191 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 57 transitions. [2019-02-27 13:00:34,192 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 57 transitions. [2019-02-27 13:00:34,329 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 57 edges. 57 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:00:34,331 INFO L225 Difference]: With dead ends: 108 [2019-02-27 13:00:34,331 INFO L226 Difference]: Without dead ends: 107 [2019-02-27 13:00:34,332 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 16 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 59 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=89, Invalid=151, Unknown=0, NotChecked=0, Total=240 [2019-02-27 13:00:34,332 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 107 states. [2019-02-27 13:00:35,187 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 107 to 77. [2019-02-27 13:00:35,188 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 13:00:35,188 INFO L82 GeneralOperation]: Start isEquivalent. First operand 107 states. Second operand 77 states. [2019-02-27 13:00:35,188 INFO L74 IsIncluded]: Start isIncluded. First operand 107 states. Second operand 77 states. [2019-02-27 13:00:35,188 INFO L87 Difference]: Start difference. First operand 107 states. Second operand 77 states. [2019-02-27 13:00:35,192 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:00:35,192 INFO L93 Difference]: Finished difference Result 107 states and 383 transitions. [2019-02-27 13:00:35,192 INFO L276 IsEmpty]: Start isEmpty. Operand 107 states and 383 transitions. [2019-02-27 13:00:35,193 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:00:35,193 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:00:35,193 INFO L74 IsIncluded]: Start isIncluded. First operand 77 states. Second operand 107 states. [2019-02-27 13:00:35,193 INFO L87 Difference]: Start difference. First operand 77 states. Second operand 107 states. [2019-02-27 13:00:35,196 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:00:35,197 INFO L93 Difference]: Finished difference Result 107 states and 383 transitions. [2019-02-27 13:00:35,197 INFO L276 IsEmpty]: Start isEmpty. Operand 107 states and 383 transitions. [2019-02-27 13:00:35,197 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:00:35,197 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:00:35,197 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 13:00:35,198 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 13:00:35,198 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 77 states. [2019-02-27 13:00:35,200 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 77 states to 77 states and 337 transitions. [2019-02-27 13:00:35,200 INFO L78 Accepts]: Start accepts. Automaton has 77 states and 337 transitions. Word has length 6 [2019-02-27 13:00:35,201 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 13:00:35,201 INFO L480 AbstractCegarLoop]: Abstraction has 77 states and 337 transitions. [2019-02-27 13:00:35,201 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-02-27 13:00:35,201 INFO L276 IsEmpty]: Start isEmpty. Operand 77 states and 337 transitions. [2019-02-27 13:00:35,201 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-02-27 13:00:35,201 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 13:00:35,201 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-02-27 13:00:35,202 INFO L423 AbstractCegarLoop]: === Iteration 31 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 13:00:35,202 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:00:35,202 INFO L82 PathProgramCache]: Analyzing trace with hash 902591586, now seen corresponding path program 1 times [2019-02-27 13:00:35,202 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 13:00:35,203 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:00:35,203 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:00:35,203 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:00:35,203 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 13:00:35,207 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:00:35,811 INFO L273 TraceCheckUtils]: 0: Hoare triple {8830#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {8832#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-02-27 13:00:35,812 INFO L273 TraceCheckUtils]: 1: Hoare triple {8832#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {8833#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-02-27 13:00:35,813 INFO L273 TraceCheckUtils]: 2: Hoare triple {8833#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {8834#(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-02-27 13:00:35,814 INFO L273 TraceCheckUtils]: 3: Hoare triple {8834#(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]; {8835#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-02-27 13:00:35,815 INFO L273 TraceCheckUtils]: 4: Hoare triple {8835#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {8836#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-27 13:00:35,816 INFO L273 TraceCheckUtils]: 5: Hoare triple {8836#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {8831#false} is VALID [2019-02-27 13:00:35,816 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:00:35,817 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:00:35,817 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 13:00:35,817 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-02-27 13:00:35,817 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [14], [16], [19] [2019-02-27 13:00:35,818 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 13:00:35,818 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 13:00:35,831 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 13:00:35,831 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 3. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 4 fixpoints after 4 different actions. Largest state had 0 variables. [2019-02-27 13:00:35,831 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:00:35,831 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 13:00:35,831 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:00:35,832 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-02-27 13:00:35,840 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:00:35,840 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 13:00:35,847 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:00:35,847 INFO L256 TraceCheckSpWp]: Trace formula consists of 23 conjuncts, 9 conjunts are in the unsatisfiable core [2019-02-27 13:00:35,851 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:00:35,851 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 13:00:35,876 INFO L467 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 15 treesize of output 18 [2019-02-27 13:00:35,884 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:35,885 INFO L467 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 18 treesize of output 24 [2019-02-27 13:00:35,903 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:35,905 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:35,906 INFO L467 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 20 treesize of output 34 [2019-02-27 13:00:35,934 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:35,936 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:35,938 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:35,938 INFO L467 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 22 treesize of output 45 [2019-02-27 13:00:35,940 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:35,969 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:00:35,982 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:00:35,994 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:00:36,009 INFO L301 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:00:36,010 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-02-27 13:00:36,014 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:36,015 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_157|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_157| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:00:36,015 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:00:36,065 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:36,067 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:36,068 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:36,069 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:36,071 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:36,072 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:36,073 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:36,074 INFO L467 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-02-27 13:00:36,077 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:36,104 INFO L301 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-02-27 13:00:36,104 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-02-27 13:00:38,114 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:38,115 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_158|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_158| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_158| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= (select |v_#memory_int_158| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_158| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_158| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= .cse0 0))) [2019-02-27 13:00:38,115 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 13:00:38,171 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:38,173 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:38,174 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:38,176 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:38,177 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:38,178 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:38,179 INFO L158 IndexEqualityManager]: detected equality via solver [2019-02-27 13:00:38,180 INFO L467 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 47 [2019-02-27 13:00:38,183 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:38,212 INFO L301 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-02-27 13:00:38,212 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-02-27 13:00:38,247 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:38,247 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_159|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_159| ULTIMATE.start_main_p2))) (and (= 0 .cse0) (= 0 (+ (select |v_#memory_int_159| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_159| ULTIMATE.start_main_p1)) (= |#memory_int| (store |v_#memory_int_159| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= 0 (select |v_#memory_int_159| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:00:38,248 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 13:00:38,318 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:38,320 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:38,321 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:38,322 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:38,324 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:38,325 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:38,326 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:38,327 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:38,328 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 49 [2019-02-27 13:00:38,333 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:38,365 INFO L301 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-02-27 13:00:38,365 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:44, output treesize:34 [2019-02-27 13:00:40,691 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:40,691 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_160|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_160| ULTIMATE.start_main_p3))) (and (= 0 (+ (select |v_#memory_int_160| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |v_#memory_int_160| ULTIMATE.start_main_p2) 1) 0) (= |#memory_int| (store |v_#memory_int_160| ULTIMATE.start_main_p3 (+ .cse0 1))) (= (select |v_#memory_int_160| ULTIMATE.start_main_p1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= .cse0 0))) [2019-02-27 13:00:40,691 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-02-27 13:00:40,890 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:40,891 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:40,893 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:40,894 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:40,895 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:40,896 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:40,898 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:40,899 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:40,899 INFO L158 IndexEqualityManager]: detected equality via solver [2019-02-27 13:00:40,900 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 49 [2019-02-27 13:00:40,910 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:40,950 INFO L301 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-02-27 13:00:40,950 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:44, output treesize:34 [2019-02-27 13:00:40,956 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:40,956 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_161|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_161| ULTIMATE.start_main_p1))) (and (= (+ (select |v_#memory_int_161| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_161| ULTIMATE.start_main_p3) 1) (= 0 .cse0) (= (store |v_#memory_int_161| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |v_#memory_int_161| ULTIMATE.start_main_p2) 1) 0))) [2019-02-27 13:00:40,956 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-02-27 13:00:40,991 INFO L273 TraceCheckUtils]: 0: Hoare triple {8830#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {8840#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 13:00:40,993 INFO L273 TraceCheckUtils]: 1: Hoare triple {8840#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {8844#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 13:00:40,995 INFO L273 TraceCheckUtils]: 2: Hoare triple {8844#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {8848#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-02-27 13:00:41,000 INFO L273 TraceCheckUtils]: 3: Hoare triple {8848#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {8852#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-02-27 13:00:41,002 INFO L273 TraceCheckUtils]: 4: Hoare triple {8852#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {8856#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-02-27 13:00:41,004 INFO L273 TraceCheckUtils]: 5: Hoare triple {8856#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume !(#memory_int[main_p1] >= 0); {8831#false} is VALID [2019-02-27 13:00:41,004 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:00:41,005 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 13:00:41,147 INFO L273 TraceCheckUtils]: 5: Hoare triple {8836#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {8831#false} is VALID [2019-02-27 13:00:41,148 INFO L273 TraceCheckUtils]: 4: Hoare triple {8863#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {8836#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-27 13:00:41,149 INFO L273 TraceCheckUtils]: 3: Hoare triple {8867#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {8863#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} is VALID [2019-02-27 13:00:41,151 INFO L273 TraceCheckUtils]: 2: Hoare triple {8871#(<= 0 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {8867#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1))} is VALID [2019-02-27 13:00:41,153 INFO L273 TraceCheckUtils]: 1: Hoare triple {8875#(<= 0 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {8871#(<= 0 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1))} is VALID [2019-02-27 13:00:41,155 INFO L273 TraceCheckUtils]: 0: Hoare triple {8830#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {8875#(<= 0 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1))} is VALID [2019-02-27 13:00:41,156 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 4 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:00:41,176 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 13:00:41,176 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5, 5] total 14 [2019-02-27 13:00:41,176 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 13:00:41,176 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-02-27 13:00:41,176 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 13:00:41,176 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-02-27 13:00:41,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-02-27 13:00:41,194 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-02-27 13:00:41,195 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-02-27 13:00:41,195 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=93, Invalid=147, Unknown=0, NotChecked=0, Total=240 [2019-02-27 13:00:41,195 INFO L87 Difference]: Start difference. First operand 77 states and 337 transitions. Second operand 12 states. [2019-02-27 13:00:43,961 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:00:43,961 INFO L93 Difference]: Finished difference Result 120 states and 459 transitions. [2019-02-27 13:00:43,961 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-02-27 13:00:43,961 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-02-27 13:00:43,961 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 13:00:43,962 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-02-27 13:00:43,962 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 63 transitions. [2019-02-27 13:00:43,962 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-02-27 13:00:43,963 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 63 transitions. [2019-02-27 13:00:43,963 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 63 transitions. [2019-02-27 13:00:44,311 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 63 edges. 63 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:00:44,313 INFO L225 Difference]: With dead ends: 120 [2019-02-27 13:00:44,313 INFO L226 Difference]: Without dead ends: 119 [2019-02-27 13:00:44,314 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 1 SyntacticMatches, 0 SemanticMatches, 17 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 86 ImplicationChecksByTransitivity, 0.8s TimeCoverageRelationStatistics Valid=129, Invalid=213, Unknown=0, NotChecked=0, Total=342 [2019-02-27 13:00:44,314 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 119 states. [2019-02-27 13:00:45,107 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 119 to 82. [2019-02-27 13:00:45,108 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 13:00:45,108 INFO L82 GeneralOperation]: Start isEquivalent. First operand 119 states. Second operand 82 states. [2019-02-27 13:00:45,108 INFO L74 IsIncluded]: Start isIncluded. First operand 119 states. Second operand 82 states. [2019-02-27 13:00:45,108 INFO L87 Difference]: Start difference. First operand 119 states. Second operand 82 states. [2019-02-27 13:00:45,112 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:00:45,112 INFO L93 Difference]: Finished difference Result 119 states and 455 transitions. [2019-02-27 13:00:45,112 INFO L276 IsEmpty]: Start isEmpty. Operand 119 states and 455 transitions. [2019-02-27 13:00:45,113 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:00:45,113 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:00:45,113 INFO L74 IsIncluded]: Start isIncluded. First operand 82 states. Second operand 119 states. [2019-02-27 13:00:45,113 INFO L87 Difference]: Start difference. First operand 82 states. Second operand 119 states. [2019-02-27 13:00:45,116 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:00:45,117 INFO L93 Difference]: Finished difference Result 119 states and 455 transitions. [2019-02-27 13:00:45,117 INFO L276 IsEmpty]: Start isEmpty. Operand 119 states and 455 transitions. [2019-02-27 13:00:45,117 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:00:45,117 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:00:45,117 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 13:00:45,117 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 13:00:45,118 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 82 states. [2019-02-27 13:00:45,120 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 82 states to 82 states and 362 transitions. [2019-02-27 13:00:45,120 INFO L78 Accepts]: Start accepts. Automaton has 82 states and 362 transitions. Word has length 6 [2019-02-27 13:00:45,120 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 13:00:45,120 INFO L480 AbstractCegarLoop]: Abstraction has 82 states and 362 transitions. [2019-02-27 13:00:45,120 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-02-27 13:00:45,120 INFO L276 IsEmpty]: Start isEmpty. Operand 82 states and 362 transitions. [2019-02-27 13:00:45,121 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-02-27 13:00:45,121 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 13:00:45,121 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-02-27 13:00:45,121 INFO L423 AbstractCegarLoop]: === Iteration 32 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 13:00:45,121 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:00:45,122 INFO L82 PathProgramCache]: Analyzing trace with hash 902703186, now seen corresponding path program 2 times [2019-02-27 13:00:45,122 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 13:00:45,122 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:00:45,122 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:00:45,123 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:00:45,123 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 13:00:45,126 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:00:45,680 WARN L181 SmtUtils]: Spent 187.00 ms on a formula simplification. DAG size of input: 41 DAG size of output: 21 [2019-02-27 13:00:45,817 INFO L273 TraceCheckUtils]: 0: Hoare triple {9479#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {9481#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-02-27 13:00:45,819 INFO L273 TraceCheckUtils]: 1: Hoare triple {9481#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {9482#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-02-27 13:00:45,820 INFO L273 TraceCheckUtils]: 2: Hoare triple {9482#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {9483#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} is VALID [2019-02-27 13:00:45,821 INFO L273 TraceCheckUtils]: 3: Hoare triple {9483#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {9484#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} is VALID [2019-02-27 13:00:45,822 INFO L273 TraceCheckUtils]: 4: Hoare triple {9484#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {9485#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-27 13:00:45,822 INFO L273 TraceCheckUtils]: 5: Hoare triple {9485#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {9480#false} is VALID [2019-02-27 13:00:45,823 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:00:45,823 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:00:45,823 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 13:00:45,823 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-02-27 13:00:45,824 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-02-27 13:00:45,824 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:00:45,824 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-02-27 13:00:45,836 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-02-27 13:00:45,836 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-02-27 13:00:45,844 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-02-27 13:00:45,844 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-02-27 13:00:45,844 INFO L256 TraceCheckSpWp]: Trace formula consists of 23 conjuncts, 9 conjunts are in the unsatisfiable core [2019-02-27 13:00:45,847 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:00:45,848 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 13:00:45,883 INFO L467 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 15 treesize of output 18 [2019-02-27 13:00:45,893 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:45,894 INFO L467 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 18 treesize of output 24 [2019-02-27 13:00:45,909 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:45,911 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:45,912 INFO L467 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 20 treesize of output 34 [2019-02-27 13:00:45,935 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:45,937 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:45,939 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:45,940 INFO L467 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 22 treesize of output 45 [2019-02-27 13:00:45,944 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:45,973 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:00:45,987 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:00:45,999 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:00:46,017 INFO L301 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:00:46,017 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-02-27 13:00:46,021 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:46,021 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_166|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_166| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:00:46,021 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:00:46,108 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:46,110 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:46,112 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:46,114 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:46,116 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:46,118 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:46,120 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:46,121 INFO L467 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-02-27 13:00:46,124 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:46,152 INFO L301 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-02-27 13:00:46,152 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-02-27 13:00:48,230 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:48,231 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_167|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_167| ULTIMATE.start_main_p4))) (and (= (select |v_#memory_int_167| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_167| ULTIMATE.start_main_p1) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (store |v_#memory_int_167| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_167| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:00:48,231 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 13:00:48,311 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:48,312 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:48,314 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:48,315 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:48,317 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:48,318 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:48,319 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:48,320 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:48,321 INFO L467 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 47 [2019-02-27 13:00:48,324 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:48,354 INFO L301 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-02-27 13:00:48,354 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-02-27 13:00:48,365 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:48,366 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_168|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_168| ULTIMATE.start_main_p3))) (and (= (+ (select |v_#memory_int_168| ULTIMATE.start_main_p4) 1) 0) (= (select |v_#memory_int_168| ULTIMATE.start_main_p1) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_168| ULTIMATE.start_main_p3 (+ .cse0 1))) (= (select |v_#memory_int_168| ULTIMATE.start_main_p2) 0) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:00:48,366 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 13:00:48,417 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:48,419 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:48,420 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:48,421 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:48,422 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:48,424 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:48,425 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:48,426 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:48,427 INFO L158 IndexEqualityManager]: detected equality via solver [2019-02-27 13:00:48,427 INFO L467 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 47 [2019-02-27 13:00:48,430 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:48,460 INFO L301 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-02-27 13:00:48,460 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-02-27 13:00:48,465 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:48,466 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_169|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_169| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_169| ULTIMATE.start_main_p3) 1) (= (+ (select |v_#memory_int_169| ULTIMATE.start_main_p4) 1) 0) (= .cse0 0) (= (select |v_#memory_int_169| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (store |v_#memory_int_169| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:00:48,466 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 13:00:48,519 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:48,520 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:48,522 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:48,523 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:48,524 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:48,526 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:48,526 INFO L158 IndexEqualityManager]: detected equality via solver [2019-02-27 13:00:48,527 INFO L467 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 47 [2019-02-27 13:00:48,530 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:48,559 INFO L301 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-02-27 13:00:48,560 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-02-27 13:00:50,705 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:50,705 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_170|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_170| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (select |v_#memory_int_170| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |v_#memory_int_170| ULTIMATE.start_main_p4) 1)) (= |#memory_int| (store |v_#memory_int_170| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= (select |v_#memory_int_170| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:00:50,705 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 13:00:50,764 INFO L273 TraceCheckUtils]: 0: Hoare triple {9479#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {9489#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 13:00:50,766 INFO L273 TraceCheckUtils]: 1: Hoare triple {9489#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {9493#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 13:00:50,769 INFO L273 TraceCheckUtils]: 2: Hoare triple {9493#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {9497#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 13:00:50,771 INFO L273 TraceCheckUtils]: 3: Hoare triple {9497#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {9501#(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 (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 13:00:50,773 INFO L273 TraceCheckUtils]: 4: Hoare triple {9501#(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 (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {9505#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 1))} is VALID [2019-02-27 13:00:50,773 INFO L273 TraceCheckUtils]: 5: Hoare triple {9505#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 1))} assume !(#memory_int[main_p1] >= 0); {9480#false} is VALID [2019-02-27 13:00:50,774 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:00:50,774 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 13:00:50,891 INFO L273 TraceCheckUtils]: 5: Hoare triple {9509#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {9480#false} is VALID [2019-02-27 13:00:50,892 INFO L273 TraceCheckUtils]: 4: Hoare triple {9513#(<= 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]; {9509#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-27 13:00:50,894 INFO L273 TraceCheckUtils]: 3: Hoare triple {9517#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {9513#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-27 13:00:50,895 INFO L273 TraceCheckUtils]: 2: Hoare triple {9521#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {9517#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-27 13:00:50,898 INFO L273 TraceCheckUtils]: 1: Hoare triple {9525#(<= 0 (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {9521#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-27 13:00:50,900 INFO L273 TraceCheckUtils]: 0: Hoare triple {9479#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {9525#(<= 0 (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-27 13:00:50,901 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 6 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:00:50,920 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 13:00:50,920 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5, 5] total 15 [2019-02-27 13:00:50,920 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 13:00:50,921 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-02-27 13:00:50,921 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 13:00:50,921 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-02-27 13:00:50,940 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:00:50,940 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-02-27 13:00:50,941 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-02-27 13:00:50,941 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=102, Invalid=170, Unknown=0, NotChecked=0, Total=272 [2019-02-27 13:00:50,941 INFO L87 Difference]: Start difference. First operand 82 states and 362 transitions. Second operand 12 states. [2019-02-27 13:00:53,866 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:00:53,866 INFO L93 Difference]: Finished difference Result 146 states and 556 transitions. [2019-02-27 13:00:53,866 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-02-27 13:00:53,866 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-02-27 13:00:53,866 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 13:00:53,866 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-02-27 13:00:53,867 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 67 transitions. [2019-02-27 13:00:53,867 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-02-27 13:00:53,867 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 67 transitions. [2019-02-27 13:00:53,868 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 67 transitions. [2019-02-27 13:00:53,973 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 67 edges. 67 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:00:53,976 INFO L225 Difference]: With dead ends: 146 [2019-02-27 13:00:53,976 INFO L226 Difference]: Without dead ends: 145 [2019-02-27 13:00:53,976 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 18 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 100 ImplicationChecksByTransitivity, 0.9s TimeCoverageRelationStatistics Valid=134, Invalid=246, Unknown=0, NotChecked=0, Total=380 [2019-02-27 13:00:53,977 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 145 states. [2019-02-27 13:00:54,939 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 145 to 98. [2019-02-27 13:00:54,939 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 13:00:54,940 INFO L82 GeneralOperation]: Start isEquivalent. First operand 145 states. Second operand 98 states. [2019-02-27 13:00:54,940 INFO L74 IsIncluded]: Start isIncluded. First operand 145 states. Second operand 98 states. [2019-02-27 13:00:54,940 INFO L87 Difference]: Start difference. First operand 145 states. Second operand 98 states. [2019-02-27 13:00:54,944 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:00:54,944 INFO L93 Difference]: Finished difference Result 145 states and 549 transitions. [2019-02-27 13:00:54,944 INFO L276 IsEmpty]: Start isEmpty. Operand 145 states and 549 transitions. [2019-02-27 13:00:54,944 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:00:54,944 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:00:54,944 INFO L74 IsIncluded]: Start isIncluded. First operand 98 states. Second operand 145 states. [2019-02-27 13:00:54,945 INFO L87 Difference]: Start difference. First operand 98 states. Second operand 145 states. [2019-02-27 13:00:54,948 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:00:54,948 INFO L93 Difference]: Finished difference Result 145 states and 549 transitions. [2019-02-27 13:00:54,948 INFO L276 IsEmpty]: Start isEmpty. Operand 145 states and 549 transitions. [2019-02-27 13:00:54,948 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:00:54,948 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:00:54,948 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 13:00:54,949 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 13:00:54,949 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 98 states. [2019-02-27 13:00:54,951 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 98 states to 98 states and 442 transitions. [2019-02-27 13:00:54,951 INFO L78 Accepts]: Start accepts. Automaton has 98 states and 442 transitions. Word has length 6 [2019-02-27 13:00:54,951 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 13:00:54,951 INFO L480 AbstractCegarLoop]: Abstraction has 98 states and 442 transitions. [2019-02-27 13:00:54,951 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-02-27 13:00:54,951 INFO L276 IsEmpty]: Start isEmpty. Operand 98 states and 442 transitions. [2019-02-27 13:00:54,951 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-02-27 13:00:54,951 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 13:00:54,951 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-02-27 13:00:54,952 INFO L423 AbstractCegarLoop]: === Iteration 33 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 13:00:54,952 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:00:54,952 INFO L82 PathProgramCache]: Analyzing trace with hash 893362642, now seen corresponding path program 1 times [2019-02-27 13:00:54,952 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 13:00:54,952 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:00:54,952 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-02-27 13:00:54,953 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:00:54,953 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 13:00:54,957 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:00:55,115 INFO L273 TraceCheckUtils]: 0: Hoare triple {10256#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {10258#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-02-27 13:00:55,117 INFO L273 TraceCheckUtils]: 1: Hoare triple {10258#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {10258#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-02-27 13:00:55,118 INFO L273 TraceCheckUtils]: 2: Hoare triple {10258#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {10259#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-02-27 13:00:55,118 INFO L273 TraceCheckUtils]: 3: Hoare triple {10259#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p1] >= 0; {10259#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-02-27 13:00:55,119 INFO L273 TraceCheckUtils]: 4: Hoare triple {10259#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p2] <= 0; {10259#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-02-27 13:00:55,119 INFO L273 TraceCheckUtils]: 5: Hoare triple {10259#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume !(#memory_int[main_p3] >= 0); {10257#false} is VALID [2019-02-27 13:00:55,120 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-02-27 13:00:55,120 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:00:55,120 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 13:00:55,120 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-02-27 13:00:55,121 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [20], [22], [23] [2019-02-27 13:00:55,122 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 13:00:55,122 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 13:00:55,134 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 13:00:55,135 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 3. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-02-27 13:00:55,135 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:00:55,135 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 13:00:55,135 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:00:55,135 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-02-27 13:00:55,145 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:00:55,146 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 13:00:55,149 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:00:55,150 INFO L256 TraceCheckSpWp]: Trace formula consists of 23 conjuncts, 7 conjunts are in the unsatisfiable core [2019-02-27 13:00:55,152 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:00:55,152 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 13:00:55,227 INFO L467 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 15 treesize of output 18 [2019-02-27 13:00:55,233 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:55,235 INFO L467 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 18 treesize of output 24 [2019-02-27 13:00:55,246 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:55,247 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:55,248 INFO L467 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 20 treesize of output 34 [2019-02-27 13:00:55,261 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:55,262 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:55,264 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:55,265 INFO L467 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 22 treesize of output 45 [2019-02-27 13:00:55,267 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:55,285 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:00:55,297 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:00:55,306 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:00:55,323 INFO L301 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-02-27 13:00:55,324 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-02-27 13:00:55,329 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:55,329 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_175|, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (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) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:00:55,329 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:00:55,378 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:55,379 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:55,381 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:55,382 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:55,383 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:55,385 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:55,386 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:55,387 INFO L467 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-02-27 13:00:55,390 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:55,420 INFO L301 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-02-27 13:00:55,421 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-02-27 13:00:55,437 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:55,437 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_176|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_176| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= 0 (select |v_#memory_int_176| ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_176| ULTIMATE.start_main_p2)) (= (store |v_#memory_int_176| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= 0 (select |v_#memory_int_176| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-02-27 13:00:55,437 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:00:55,488 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:55,489 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:55,491 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:55,492 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:55,493 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:55,494 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:55,496 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:55,497 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:55,498 INFO L467 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 45 [2019-02-27 13:00:55,501 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:55,531 INFO L301 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-02-27 13:00:55,531 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-02-27 13:00:55,547 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:55,547 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_177|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_177| ULTIMATE.start_main_p2))) (and (= 1 (select |v_#memory_int_177| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_177| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= 0 .cse0) (= 0 (select |v_#memory_int_177| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 (select |v_#memory_int_177| ULTIMATE.start_main_p4)))) [2019-02-27 13:00:55,547 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:00:55,614 INFO L273 TraceCheckUtils]: 0: Hoare triple {10256#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {10263#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 13:00:55,615 INFO L273 TraceCheckUtils]: 1: Hoare triple {10263#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {10267#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:00:55,617 INFO L273 TraceCheckUtils]: 2: Hoare triple {10267#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {10271#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-02-27 13:00:55,619 INFO L273 TraceCheckUtils]: 3: Hoare triple {10271#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p1] >= 0; {10271#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-02-27 13:00:55,620 INFO L273 TraceCheckUtils]: 4: Hoare triple {10271#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p2] <= 0; {10271#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-02-27 13:00:55,620 INFO L273 TraceCheckUtils]: 5: Hoare triple {10271#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume !(#memory_int[main_p3] >= 0); {10257#false} is VALID [2019-02-27 13:00:55,621 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:00:55,621 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 13:00:55,662 INFO L273 TraceCheckUtils]: 5: Hoare triple {10281#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {10257#false} is VALID [2019-02-27 13:00:55,662 INFO L273 TraceCheckUtils]: 4: Hoare triple {10281#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {10281#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:00:55,663 INFO L273 TraceCheckUtils]: 3: Hoare triple {10281#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {10281#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:00:55,664 INFO L273 TraceCheckUtils]: 2: Hoare triple {10291#(<= 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]; {10281#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:00:55,666 INFO L273 TraceCheckUtils]: 1: Hoare triple {10295#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {10291#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:00:55,668 INFO L273 TraceCheckUtils]: 0: Hoare triple {10256#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {10295#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:00:55,668 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:00:55,688 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 13:00:55,689 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 3, 3] total 8 [2019-02-27 13:00:55,689 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 13:00:55,689 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 6 [2019-02-27 13:00:55,689 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 13:00:55,689 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states. [2019-02-27 13:00:55,707 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:00:55,707 INFO L459 AbstractCegarLoop]: Interpolant automaton has 7 states [2019-02-27 13:00:55,707 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2019-02-27 13:00:55,707 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=35, Invalid=55, Unknown=0, NotChecked=0, Total=90 [2019-02-27 13:00:55,708 INFO L87 Difference]: Start difference. First operand 98 states and 442 transitions. Second operand 7 states. [2019-02-27 13:00:57,254 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:00:57,254 INFO L93 Difference]: Finished difference Result 111 states and 462 transitions. [2019-02-27 13:00:57,254 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-02-27 13:00:57,254 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 6 [2019-02-27 13:00:57,254 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 13:00:57,255 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2019-02-27 13:00:57,255 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 38 transitions. [2019-02-27 13:00:57,255 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2019-02-27 13:00:57,255 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 38 transitions. [2019-02-27 13:00:57,255 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 38 transitions. [2019-02-27 13:00:57,309 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 38 edges. 38 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:00:57,312 INFO L225 Difference]: With dead ends: 111 [2019-02-27 13:00:57,312 INFO L226 Difference]: Without dead ends: 110 [2019-02-27 13:00:57,312 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 17 GetRequests, 5 SyntacticMatches, 2 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 24 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=51, Invalid=81, Unknown=0, NotChecked=0, Total=132 [2019-02-27 13:00:57,312 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 110 states. [2019-02-27 13:00:58,252 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 110 to 100. [2019-02-27 13:00:58,253 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 13:00:58,253 INFO L82 GeneralOperation]: Start isEquivalent. First operand 110 states. Second operand 100 states. [2019-02-27 13:00:58,253 INFO L74 IsIncluded]: Start isIncluded. First operand 110 states. Second operand 100 states. [2019-02-27 13:00:58,253 INFO L87 Difference]: Start difference. First operand 110 states. Second operand 100 states. [2019-02-27 13:00:58,256 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:00:58,256 INFO L93 Difference]: Finished difference Result 110 states and 460 transitions. [2019-02-27 13:00:58,257 INFO L276 IsEmpty]: Start isEmpty. Operand 110 states and 460 transitions. [2019-02-27 13:00:58,257 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:00:58,257 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:00:58,257 INFO L74 IsIncluded]: Start isIncluded. First operand 100 states. Second operand 110 states. [2019-02-27 13:00:58,257 INFO L87 Difference]: Start difference. First operand 100 states. Second operand 110 states. [2019-02-27 13:00:58,259 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:00:58,260 INFO L93 Difference]: Finished difference Result 110 states and 460 transitions. [2019-02-27 13:00:58,260 INFO L276 IsEmpty]: Start isEmpty. Operand 110 states and 460 transitions. [2019-02-27 13:00:58,260 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:00:58,260 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:00:58,260 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 13:00:58,260 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 13:00:58,260 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 100 states. [2019-02-27 13:00:58,262 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 100 states to 100 states and 452 transitions. [2019-02-27 13:00:58,262 INFO L78 Accepts]: Start accepts. Automaton has 100 states and 452 transitions. Word has length 6 [2019-02-27 13:00:58,262 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 13:00:58,263 INFO L480 AbstractCegarLoop]: Abstraction has 100 states and 452 transitions. [2019-02-27 13:00:58,263 INFO L481 AbstractCegarLoop]: Interpolant automaton has 7 states. [2019-02-27 13:00:58,263 INFO L276 IsEmpty]: Start isEmpty. Operand 100 states and 452 transitions. [2019-02-27 13:00:58,263 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-02-27 13:00:58,263 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 13:00:58,263 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-02-27 13:00:58,263 INFO L423 AbstractCegarLoop]: === Iteration 34 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 13:00:58,263 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:00:58,264 INFO L82 PathProgramCache]: Analyzing trace with hash 893472132, now seen corresponding path program 1 times [2019-02-27 13:00:58,264 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 13:00:58,264 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:00:58,264 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:00:58,264 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:00:58,265 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 13:00:58,269 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:00:58,592 INFO L273 TraceCheckUtils]: 0: Hoare triple {10909#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {10911#(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-02-27 13:00:58,593 INFO L273 TraceCheckUtils]: 1: Hoare triple {10911#(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]; {10911#(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-02-27 13:00:58,594 INFO L273 TraceCheckUtils]: 2: Hoare triple {10911#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {10912#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-02-27 13:00:58,595 INFO L273 TraceCheckUtils]: 3: Hoare triple {10912#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {10913#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-02-27 13:00:58,596 INFO L273 TraceCheckUtils]: 4: Hoare triple {10913#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= (select |#memory_int| ULTIMATE.start_main_p2) 0))} assume #memory_int[main_p1] >= 0; {10914#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 13:00:58,596 INFO L273 TraceCheckUtils]: 5: Hoare triple {10914#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {10910#false} is VALID [2019-02-27 13:00:58,597 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-02-27 13:00:58,597 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:00:58,597 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 13:00:58,598 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-02-27 13:00:58,598 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [14], [20], [21] [2019-02-27 13:00:58,600 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 13:00:58,600 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 13:00:58,615 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 13:00:58,616 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 3. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-02-27 13:00:58,616 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:00:58,616 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 13:00:58,616 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:00:58,616 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-02-27 13:00:58,624 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:00:58,625 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 13:00:58,632 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:00:58,632 INFO L256 TraceCheckSpWp]: Trace formula consists of 23 conjuncts, 8 conjunts are in the unsatisfiable core [2019-02-27 13:00:58,635 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:00:58,635 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 13:00:58,668 INFO L467 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 15 treesize of output 18 [2019-02-27 13:00:58,675 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:58,676 INFO L467 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 18 treesize of output 24 [2019-02-27 13:00:58,686 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:58,688 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:58,688 INFO L467 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 20 treesize of output 34 [2019-02-27 13:00:58,703 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:58,704 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:58,706 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:58,707 INFO L467 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 22 treesize of output 45 [2019-02-27 13:00:58,711 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:58,730 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:00:58,742 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:00:58,751 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:00:58,767 INFO L301 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-02-27 13:00:58,768 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-02-27 13:00:58,774 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:58,774 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_180|, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_180| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:00:58,774 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:00:58,826 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:58,828 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:58,829 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:58,830 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:58,832 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:58,833 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:58,834 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:58,835 INFO L467 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-02-27 13:00:58,871 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:58,898 INFO L301 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-02-27 13:00:58,899 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-02-27 13:00:58,995 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:58,995 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_181|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_181| ULTIMATE.start_main_p1))) (and (= 0 (select |v_#memory_int_181| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_181| ULTIMATE.start_main_p2)) (= (select |v_#memory_int_181| ULTIMATE.start_main_p4) 0) (= |#memory_int| (store |v_#memory_int_181| ULTIMATE.start_main_p1 (+ .cse0 1))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 .cse0))) [2019-02-27 13:00:58,996 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:00:59,049 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:59,051 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:59,052 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:59,053 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:59,055 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:59,056 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:59,057 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:59,058 INFO L158 IndexEqualityManager]: detected equality via solver [2019-02-27 13:00:59,061 INFO L467 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-02-27 13:00:59,063 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:59,099 INFO L301 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-02-27 13:00:59,099 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-02-27 13:00:59,143 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:59,144 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_182|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_182| ULTIMATE.start_main_p3))) (and (= (select |v_#memory_int_182| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_182| ULTIMATE.start_main_p1) 1) (= 0 (select |v_#memory_int_182| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_182| ULTIMATE.start_main_p3 (+ .cse0 1))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-02-27 13:00:59,144 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:00:59,202 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:59,203 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:59,205 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:59,206 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:59,207 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:59,208 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:59,209 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:59,211 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:00:59,211 INFO L467 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 45 [2019-02-27 13:00:59,214 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:00:59,246 INFO L301 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-02-27 13:00:59,247 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-02-27 13:00:59,263 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:00:59,264 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_183|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_183| ULTIMATE.start_main_p2))) (and (= (store |v_#memory_int_183| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |v_#memory_int_183| ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_183| ULTIMATE.start_main_p4)) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 1 (select |v_#memory_int_183| ULTIMATE.start_main_p3)))) [2019-02-27 13:00:59,264 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:00:59,314 INFO L273 TraceCheckUtils]: 0: Hoare triple {10909#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {10918#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 13:00:59,315 INFO L273 TraceCheckUtils]: 1: Hoare triple {10918#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {10922#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:00:59,317 INFO L273 TraceCheckUtils]: 2: Hoare triple {10922#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {10926#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-02-27 13:00:59,320 INFO L273 TraceCheckUtils]: 3: Hoare triple {10926#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {10930#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))} is VALID [2019-02-27 13:00:59,321 INFO L273 TraceCheckUtils]: 4: Hoare triple {10930#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))} assume #memory_int[main_p1] >= 0; {10930#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))} is VALID [2019-02-27 13:00:59,322 INFO L273 TraceCheckUtils]: 5: Hoare triple {10930#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))} assume !(#memory_int[main_p2] <= 0); {10910#false} is VALID [2019-02-27 13:00:59,322 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:00:59,323 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 13:00:59,370 INFO L273 TraceCheckUtils]: 5: Hoare triple {10914#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {10910#false} is VALID [2019-02-27 13:00:59,371 INFO L273 TraceCheckUtils]: 4: Hoare triple {10914#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {10914#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 13:00:59,372 INFO L273 TraceCheckUtils]: 3: Hoare triple {10943#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {10914#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 13:00:59,373 INFO L273 TraceCheckUtils]: 2: Hoare triple {10947#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {10943#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} is VALID [2019-02-27 13:00:59,374 INFO L273 TraceCheckUtils]: 1: Hoare triple {10951#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {10947#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1)} is VALID [2019-02-27 13:00:59,376 INFO L273 TraceCheckUtils]: 0: Hoare triple {10909#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {10951#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1)} is VALID [2019-02-27 13:00:59,377 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 2 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:00:59,396 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 13:00:59,396 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-02-27 13:00:59,396 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 13:00:59,397 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-02-27 13:00:59,397 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 13:00:59,397 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-02-27 13:00:59,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-02-27 13:00:59,418 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-02-27 13:00:59,418 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-02-27 13:00:59,418 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=61, Invalid=95, Unknown=0, NotChecked=0, Total=156 [2019-02-27 13:00:59,419 INFO L87 Difference]: Start difference. First operand 100 states and 452 transitions. Second operand 10 states. [2019-02-27 13:01:01,625 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:01:01,625 INFO L93 Difference]: Finished difference Result 153 states and 620 transitions. [2019-02-27 13:01:01,625 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-02-27 13:01:01,625 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-02-27 13:01:01,625 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 13:01:01,626 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-27 13:01:01,626 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 57 transitions. [2019-02-27 13:01:01,626 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-27 13:01:01,626 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 57 transitions. [2019-02-27 13:01:01,626 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 57 transitions. [2019-02-27 13:01:01,715 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 57 edges. 57 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:01:01,718 INFO L225 Difference]: With dead ends: 153 [2019-02-27 13:01:01,718 INFO L226 Difference]: Without dead ends: 152 [2019-02-27 13:01:01,718 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 3 SyntacticMatches, 1 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 45 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=89, Invalid=151, Unknown=0, NotChecked=0, Total=240 [2019-02-27 13:01:01,719 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 152 states. [2019-02-27 13:01:02,939 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 152 to 127. [2019-02-27 13:01:02,939 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 13:01:02,939 INFO L82 GeneralOperation]: Start isEquivalent. First operand 152 states. Second operand 127 states. [2019-02-27 13:01:02,940 INFO L74 IsIncluded]: Start isIncluded. First operand 152 states. Second operand 127 states. [2019-02-27 13:01:02,940 INFO L87 Difference]: Start difference. First operand 152 states. Second operand 127 states. [2019-02-27 13:01:02,944 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:01:02,944 INFO L93 Difference]: Finished difference Result 152 states and 617 transitions. [2019-02-27 13:01:02,944 INFO L276 IsEmpty]: Start isEmpty. Operand 152 states and 617 transitions. [2019-02-27 13:01:02,945 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:01:02,945 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:01:02,945 INFO L74 IsIncluded]: Start isIncluded. First operand 127 states. Second operand 152 states. [2019-02-27 13:01:02,945 INFO L87 Difference]: Start difference. First operand 127 states. Second operand 152 states. [2019-02-27 13:01:02,949 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:01:02,949 INFO L93 Difference]: Finished difference Result 152 states and 617 transitions. [2019-02-27 13:01:02,950 INFO L276 IsEmpty]: Start isEmpty. Operand 152 states and 617 transitions. [2019-02-27 13:01:02,950 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:01:02,950 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:01:02,950 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 13:01:02,950 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 13:01:02,951 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 127 states. [2019-02-27 13:01:02,954 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 127 states to 127 states and 589 transitions. [2019-02-27 13:01:02,954 INFO L78 Accepts]: Start accepts. Automaton has 127 states and 589 transitions. Word has length 6 [2019-02-27 13:01:02,954 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 13:01:02,954 INFO L480 AbstractCegarLoop]: Abstraction has 127 states and 589 transitions. [2019-02-27 13:01:02,955 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-02-27 13:01:02,955 INFO L276 IsEmpty]: Start isEmpty. Operand 127 states and 589 transitions. [2019-02-27 13:01:02,955 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-02-27 13:01:02,955 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 13:01:02,955 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-02-27 13:01:02,955 INFO L423 AbstractCegarLoop]: === Iteration 35 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 13:01:02,956 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:01:02,956 INFO L82 PathProgramCache]: Analyzing trace with hash 897235472, now seen corresponding path program 1 times [2019-02-27 13:01:02,956 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 13:01:02,956 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:01:02,957 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:01:02,957 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:01:02,957 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 13:01:02,961 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:01:03,100 INFO L273 TraceCheckUtils]: 0: Hoare triple {11776#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {11778#(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-02-27 13:01:03,101 INFO L273 TraceCheckUtils]: 1: Hoare triple {11778#(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]; {11778#(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-02-27 13:01:03,102 INFO L273 TraceCheckUtils]: 2: Hoare triple {11778#(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]; {11779#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-02-27 13:01:03,102 INFO L273 TraceCheckUtils]: 3: Hoare triple {11779#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p1] >= 0; {11779#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-02-27 13:01:03,103 INFO L273 TraceCheckUtils]: 4: Hoare triple {11779#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p2] <= 0; {11780#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-02-27 13:01:03,104 INFO L273 TraceCheckUtils]: 5: Hoare triple {11780#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume !(#memory_int[main_p3] >= 0); {11777#false} is VALID [2019-02-27 13:01:03,104 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-02-27 13:01:03,104 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:01:03,104 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 13:01:03,105 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-02-27 13:01:03,105 INFO L207 CegarAbsIntRunner]: [0], [10], [16], [20], [22], [23] [2019-02-27 13:01:03,109 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 13:01:03,109 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 13:01:03,118 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 13:01:03,118 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 3. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-02-27 13:01:03,118 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:01:03,118 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 13:01:03,118 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:01:03,119 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-02-27 13:01:03,127 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:01:03,128 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 13:01:03,132 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:01:03,132 INFO L256 TraceCheckSpWp]: Trace formula consists of 23 conjuncts, 6 conjunts are in the unsatisfiable core [2019-02-27 13:01:03,136 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:01:03,136 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 13:01:03,149 INFO L467 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 15 treesize of output 18 [2019-02-27 13:01:03,156 INFO L467 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 18 treesize of output 20 [2019-02-27 13:01:03,208 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:03,209 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 26 [2019-02-27 13:01:03,223 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:03,224 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:03,225 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 33 [2019-02-27 13:01:03,228 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 13:01:03,241 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:01:03,251 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:01:03,261 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:01:03,275 INFO L301 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-02-27 13:01:03,276 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:22, output treesize:27 [2019-02-27 13:01:03,280 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:01:03,280 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_187|, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_187| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:01:03,281 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:01:03,331 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:03,332 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:03,334 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:03,335 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:03,336 INFO L467 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-02-27 13:01:03,338 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:01:03,354 INFO L301 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-02-27 13:01:03,354 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:22 [2019-02-27 13:01:05,370 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:01:05,371 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_188|, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_188| ULTIMATE.start_main_p2))) (and (= (store |v_#memory_int_188| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_188| ULTIMATE.start_main_p3)) (= 0 .cse0) (= 0 (select |v_#memory_int_188| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-02-27 13:01:05,371 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:01:05,448 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:05,450 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:05,451 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:05,452 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:05,453 INFO L158 IndexEqualityManager]: detected equality via solver [2019-02-27 13:01:05,453 INFO L467 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 30 [2019-02-27 13:01:05,456 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:01:05,474 INFO L301 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-02-27 13:01:05,475 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:34, output treesize:24 [2019-02-27 13:01:05,491 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:01:05,491 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_189|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_189| ULTIMATE.start_main_p4))) (and (= 0 (+ (select |v_#memory_int_189| ULTIMATE.start_main_p2) 1)) (= 0 (select |v_#memory_int_189| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_189| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-02-27 13:01:05,491 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 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) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:01:05,556 INFO L273 TraceCheckUtils]: 0: Hoare triple {11776#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {11784#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:01:05,558 INFO L273 TraceCheckUtils]: 1: Hoare triple {11784#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {11788#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:01:05,559 INFO L273 TraceCheckUtils]: 2: Hoare triple {11788#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (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]; {11792#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-02-27 13:01:05,560 INFO L273 TraceCheckUtils]: 3: Hoare triple {11792#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p1] >= 0; {11792#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-02-27 13:01:05,560 INFO L273 TraceCheckUtils]: 4: Hoare triple {11792#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p2] <= 0; {11792#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-02-27 13:01:05,561 INFO L273 TraceCheckUtils]: 5: Hoare triple {11792#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume !(#memory_int[main_p3] >= 0); {11777#false} is VALID [2019-02-27 13:01:05,561 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:01:05,561 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 13:01:05,613 INFO L273 TraceCheckUtils]: 5: Hoare triple {11802#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {11777#false} is VALID [2019-02-27 13:01:05,614 INFO L273 TraceCheckUtils]: 4: Hoare triple {11802#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {11802#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:01:05,615 INFO L273 TraceCheckUtils]: 3: Hoare triple {11802#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {11802#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:01:05,616 INFO L273 TraceCheckUtils]: 2: Hoare triple {11812#(<= 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]; {11802#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:01:05,617 INFO L273 TraceCheckUtils]: 1: Hoare triple {11816#(<= 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]; {11812#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:01:05,619 INFO L273 TraceCheckUtils]: 0: Hoare triple {11776#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {11816#(<= 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-02-27 13:01:05,620 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:01:05,639 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 13:01:05,639 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-02-27 13:01:05,640 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 13:01:05,640 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-02-27 13:01:05,640 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 13:01:05,640 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-02-27 13:01:05,657 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:01:05,658 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-02-27 13:01:05,658 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-02-27 13:01:05,658 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=41, Invalid=69, Unknown=0, NotChecked=0, Total=110 [2019-02-27 13:01:05,658 INFO L87 Difference]: Start difference. First operand 127 states and 589 transitions. Second operand 8 states. [2019-02-27 13:01:07,603 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:01:07,603 INFO L93 Difference]: Finished difference Result 143 states and 607 transitions. [2019-02-27 13:01:07,603 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-02-27 13:01:07,603 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-02-27 13:01:07,603 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 13:01:07,604 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-27 13:01:07,604 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 42 transitions. [2019-02-27 13:01:07,604 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-27 13:01:07,604 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 42 transitions. [2019-02-27 13:01:07,604 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 42 transitions. [2019-02-27 13:01:07,661 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 42 edges. 42 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:01:07,665 INFO L225 Difference]: With dead ends: 143 [2019-02-27 13:01:07,665 INFO L226 Difference]: Without dead ends: 138 [2019-02-27 13:01:07,665 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 16 GetRequests, 4 SyntacticMatches, 1 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 30 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=59, Invalid=97, Unknown=0, NotChecked=0, Total=156 [2019-02-27 13:01:07,666 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 138 states. [2019-02-27 13:01:08,954 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 138 to 127. [2019-02-27 13:01:08,955 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 13:01:08,955 INFO L82 GeneralOperation]: Start isEquivalent. First operand 138 states. Second operand 127 states. [2019-02-27 13:01:08,955 INFO L74 IsIncluded]: Start isIncluded. First operand 138 states. Second operand 127 states. [2019-02-27 13:01:08,955 INFO L87 Difference]: Start difference. First operand 138 states. Second operand 127 states. [2019-02-27 13:01:08,959 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:01:08,959 INFO L93 Difference]: Finished difference Result 138 states and 601 transitions. [2019-02-27 13:01:08,959 INFO L276 IsEmpty]: Start isEmpty. Operand 138 states and 601 transitions. [2019-02-27 13:01:08,960 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:01:08,960 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:01:08,960 INFO L74 IsIncluded]: Start isIncluded. First operand 127 states. Second operand 138 states. [2019-02-27 13:01:08,960 INFO L87 Difference]: Start difference. First operand 127 states. Second operand 138 states. [2019-02-27 13:01:08,965 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:01:08,965 INFO L93 Difference]: Finished difference Result 138 states and 601 transitions. [2019-02-27 13:01:08,965 INFO L276 IsEmpty]: Start isEmpty. Operand 138 states and 601 transitions. [2019-02-27 13:01:08,965 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:01:08,965 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:01:08,965 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 13:01:08,965 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 13:01:08,966 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 127 states. [2019-02-27 13:01:08,968 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 127 states to 127 states and 588 transitions. [2019-02-27 13:01:08,969 INFO L78 Accepts]: Start accepts. Automaton has 127 states and 588 transitions. Word has length 6 [2019-02-27 13:01:08,969 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 13:01:08,969 INFO L480 AbstractCegarLoop]: Abstraction has 127 states and 588 transitions. [2019-02-27 13:01:08,969 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-02-27 13:01:08,969 INFO L276 IsEmpty]: Start isEmpty. Operand 127 states and 588 transitions. [2019-02-27 13:01:08,969 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-02-27 13:01:08,969 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 13:01:08,969 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-02-27 13:01:08,970 INFO L423 AbstractCegarLoop]: === Iteration 36 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 13:01:08,970 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:01:08,970 INFO L82 PathProgramCache]: Analyzing trace with hash 896931732, now seen corresponding path program 2 times [2019-02-27 13:01:08,970 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 13:01:08,970 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:01:08,971 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:01:08,971 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:01:08,971 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 13:01:08,975 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:01:09,256 INFO L273 TraceCheckUtils]: 0: Hoare triple {12600#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {12602#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-02-27 13:01:09,258 INFO L273 TraceCheckUtils]: 1: Hoare triple {12602#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {12603#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-02-27 13:01:09,259 INFO L273 TraceCheckUtils]: 2: Hoare triple {12603#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {12603#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-02-27 13:01:09,260 INFO L273 TraceCheckUtils]: 3: Hoare triple {12603#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {12604#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-02-27 13:01:09,261 INFO L273 TraceCheckUtils]: 4: Hoare triple {12604#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= (select |#memory_int| ULTIMATE.start_main_p2) 0))} assume #memory_int[main_p1] >= 0; {12605#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 13:01:09,261 INFO L273 TraceCheckUtils]: 5: Hoare triple {12605#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {12601#false} is VALID [2019-02-27 13:01:09,262 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-02-27 13:01:09,262 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:01:09,262 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 13:01:09,262 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-02-27 13:01:09,262 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-02-27 13:01:09,262 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:01:09,263 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-02-27 13:01:09,274 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-02-27 13:01:09,275 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-02-27 13:01:09,281 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-02-27 13:01:09,281 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-02-27 13:01:09,281 INFO L256 TraceCheckSpWp]: Trace formula consists of 23 conjuncts, 8 conjunts are in the unsatisfiable core [2019-02-27 13:01:09,284 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:01:09,285 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 13:01:09,308 INFO L467 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 15 treesize of output 18 [2019-02-27 13:01:09,316 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:09,316 INFO L467 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 18 treesize of output 24 [2019-02-27 13:01:09,327 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:09,328 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:09,329 INFO L467 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 20 treesize of output 34 [2019-02-27 13:01:09,343 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:09,344 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:09,345 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:09,346 INFO L467 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 22 treesize of output 45 [2019-02-27 13:01:09,349 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 13:01:09,370 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:01:09,381 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:01:09,389 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:01:09,407 INFO L301 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-02-27 13:01:09,408 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-02-27 13:01:09,412 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:01:09,413 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_192|, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_192| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:01:09,413 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:01:09,462 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:09,464 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:09,465 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:09,466 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:09,467 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:09,469 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:09,470 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:09,471 INFO L467 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-02-27 13:01:09,474 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:01:09,503 INFO L301 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-02-27 13:01:09,504 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-02-27 13:01:09,519 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:01:09,519 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_193|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_193| ULTIMATE.start_main_p2))) (and (= (store |v_#memory_int_193| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_193| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_193| ULTIMATE.start_main_p1) 0) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 (select |v_#memory_int_193| ULTIMATE.start_main_p3)))) [2019-02-27 13:01:09,519 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 13:01:09,597 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:09,599 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:09,600 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:09,601 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:09,603 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:09,604 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:09,605 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:09,606 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:09,607 INFO L467 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 47 [2019-02-27 13:01:09,611 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:01:09,641 INFO L301 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-02-27 13:01:09,642 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-02-27 13:01:11,654 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:01:11,654 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_194|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_194| ULTIMATE.start_main_p1))) (and (= 0 (select |v_#memory_int_194| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= (store |v_#memory_int_194| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= 0 (+ (select |v_#memory_int_194| ULTIMATE.start_main_p2) 1)) (= (select |v_#memory_int_194| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-02-27 13:01:11,654 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-02-27 13:01:11,767 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:11,770 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:11,772 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:11,774 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:11,776 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:11,779 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:11,781 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:11,781 INFO L158 IndexEqualityManager]: detected equality via solver [2019-02-27 13:01:11,782 INFO L467 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 47 [2019-02-27 13:01:11,789 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:01:11,828 INFO L301 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-02-27 13:01:11,828 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-02-27 13:01:11,865 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:01:11,865 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_195|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_195| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_195| ULTIMATE.start_main_p4) 0) (= 1 (select |v_#memory_int_195| ULTIMATE.start_main_p1)) (= .cse0 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (store |v_#memory_int_195| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 (+ (select |v_#memory_int_195| ULTIMATE.start_main_p2) 1)))) [2019-02-27 13:01:11,865 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-02-27 13:01:11,963 INFO L273 TraceCheckUtils]: 0: Hoare triple {12600#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {12609#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 13:01:11,965 INFO L273 TraceCheckUtils]: 1: Hoare triple {12609#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {12613#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 13:01:11,967 INFO L273 TraceCheckUtils]: 2: Hoare triple {12613#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {12617#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-02-27 13:01:11,969 INFO L273 TraceCheckUtils]: 3: Hoare triple {12617#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {12621#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-02-27 13:01:11,970 INFO L273 TraceCheckUtils]: 4: Hoare triple {12621#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume #memory_int[main_p1] >= 0; {12621#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-02-27 13:01:11,970 INFO L273 TraceCheckUtils]: 5: Hoare triple {12621#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume !(#memory_int[main_p2] <= 0); {12601#false} is VALID [2019-02-27 13:01:11,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-02-27 13:01:11,971 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 13:01:12,033 INFO L273 TraceCheckUtils]: 5: Hoare triple {12605#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {12601#false} is VALID [2019-02-27 13:01:12,034 INFO L273 TraceCheckUtils]: 4: Hoare triple {12605#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {12605#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 13:01:12,035 INFO L273 TraceCheckUtils]: 3: Hoare triple {12634#(<= (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]; {12605#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 13:01:12,036 INFO L273 TraceCheckUtils]: 2: Hoare triple {12638#(<= (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]; {12634#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 13:01:12,038 INFO L273 TraceCheckUtils]: 1: Hoare triple {12642#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {12638#(<= (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-02-27 13:01:12,040 INFO L273 TraceCheckUtils]: 0: Hoare triple {12600#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {12642#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 13:01:12,041 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 2 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:01:12,062 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 13:01:12,062 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-02-27 13:01:12,062 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 13:01:12,062 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-02-27 13:01:12,062 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 13:01:12,062 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-02-27 13:01:12,096 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:01:12,097 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-02-27 13:01:12,097 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-02-27 13:01:12,097 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=59, Invalid=97, Unknown=0, NotChecked=0, Total=156 [2019-02-27 13:01:12,097 INFO L87 Difference]: Start difference. First operand 127 states and 588 transitions. Second operand 10 states. [2019-02-27 13:01:14,752 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:01:14,752 INFO L93 Difference]: Finished difference Result 196 states and 812 transitions. [2019-02-27 13:01:14,752 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2019-02-27 13:01:14,752 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-02-27 13:01:14,752 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 13:01:14,752 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-27 13:01:14,753 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 66 transitions. [2019-02-27 13:01:14,753 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-27 13:01:14,753 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 66 transitions. [2019-02-27 13:01:14,753 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 66 transitions. [2019-02-27 13:01:14,854 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 66 edges. 66 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:01:14,859 INFO L225 Difference]: With dead ends: 196 [2019-02-27 13:01:14,859 INFO L226 Difference]: Without dead ends: 195 [2019-02-27 13:01:14,859 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 17 GetRequests, 3 SyntacticMatches, 1 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 40 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=77, Invalid=133, Unknown=0, NotChecked=0, Total=210 [2019-02-27 13:01:14,859 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 195 states. [2019-02-27 13:01:16,178 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 195 to 141. [2019-02-27 13:01:16,179 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 13:01:16,179 INFO L82 GeneralOperation]: Start isEquivalent. First operand 195 states. Second operand 141 states. [2019-02-27 13:01:16,179 INFO L74 IsIncluded]: Start isIncluded. First operand 195 states. Second operand 141 states. [2019-02-27 13:01:16,179 INFO L87 Difference]: Start difference. First operand 195 states. Second operand 141 states. [2019-02-27 13:01:16,185 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:01:16,186 INFO L93 Difference]: Finished difference Result 195 states and 809 transitions. [2019-02-27 13:01:16,186 INFO L276 IsEmpty]: Start isEmpty. Operand 195 states and 809 transitions. [2019-02-27 13:01:16,186 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:01:16,186 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:01:16,186 INFO L74 IsIncluded]: Start isIncluded. First operand 141 states. Second operand 195 states. [2019-02-27 13:01:16,187 INFO L87 Difference]: Start difference. First operand 141 states. Second operand 195 states. [2019-02-27 13:01:16,192 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:01:16,192 INFO L93 Difference]: Finished difference Result 195 states and 809 transitions. [2019-02-27 13:01:16,193 INFO L276 IsEmpty]: Start isEmpty. Operand 195 states and 809 transitions. [2019-02-27 13:01:16,193 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:01:16,193 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:01:16,193 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 13:01:16,194 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 13:01:16,194 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 141 states. [2019-02-27 13:01:16,198 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 141 states to 141 states and 664 transitions. [2019-02-27 13:01:16,198 INFO L78 Accepts]: Start accepts. Automaton has 141 states and 664 transitions. Word has length 6 [2019-02-27 13:01:16,198 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 13:01:16,198 INFO L480 AbstractCegarLoop]: Abstraction has 141 states and 664 transitions. [2019-02-27 13:01:16,198 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-02-27 13:01:16,198 INFO L276 IsEmpty]: Start isEmpty. Operand 141 states and 664 transitions. [2019-02-27 13:01:16,199 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-02-27 13:01:16,199 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 13:01:16,199 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-02-27 13:01:16,199 INFO L423 AbstractCegarLoop]: === Iteration 37 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 13:01:16,199 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:01:16,200 INFO L82 PathProgramCache]: Analyzing trace with hash 897162246, now seen corresponding path program 3 times [2019-02-27 13:01:16,200 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 13:01:16,200 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:01:16,200 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-02-27 13:01:16,201 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:01:16,201 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 13:01:16,205 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:01:16,456 INFO L273 TraceCheckUtils]: 0: Hoare triple {13658#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {13660#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-02-27 13:01:16,457 INFO L273 TraceCheckUtils]: 1: Hoare triple {13660#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 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]; {13661#(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_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-02-27 13:01:16,458 INFO L273 TraceCheckUtils]: 2: Hoare triple {13661#(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_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {13662#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-27 13:01:16,459 INFO L273 TraceCheckUtils]: 3: Hoare triple {13662#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {13663#(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-02-27 13:01:16,460 INFO L273 TraceCheckUtils]: 4: Hoare triple {13663#(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]; {13664#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-27 13:01:16,461 INFO L273 TraceCheckUtils]: 5: Hoare triple {13664#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {13659#false} is VALID [2019-02-27 13:01:16,461 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:01:16,461 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:01:16,462 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 13:01:16,462 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-02-27 13:01:16,462 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-02-27 13:01:16,462 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:01:16,462 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-02-27 13:01:16,472 INFO L103 rtionOrderModulation]: Keeping assertion order TERMS_WITH_SMALL_CONSTANTS_FIRST [2019-02-27 13:01:16,472 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder TERMS_WITH_SMALL_CONSTANTS_FIRST (IT: FPandBP) [2019-02-27 13:01:16,477 INFO L249 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2019-02-27 13:01:16,477 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-02-27 13:01:16,478 INFO L256 TraceCheckSpWp]: Trace formula consists of 23 conjuncts, 9 conjunts are in the unsatisfiable core [2019-02-27 13:01:16,481 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:01:16,482 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 13:01:16,503 INFO L467 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 15 treesize of output 18 [2019-02-27 13:01:16,511 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:16,512 INFO L467 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 18 treesize of output 24 [2019-02-27 13:01:16,524 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:16,526 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:16,527 INFO L467 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 20 treesize of output 34 [2019-02-27 13:01:16,542 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:16,544 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:16,545 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:16,546 INFO L467 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 22 treesize of output 45 [2019-02-27 13:01:16,560 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 13:01:16,579 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:01:16,597 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:01:16,608 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:01:16,629 INFO L301 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:01:16,629 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-02-27 13:01:16,634 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:01:16,634 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_199|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_199| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:01:16,634 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:01:16,716 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:16,718 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:16,720 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:16,722 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:16,724 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:16,726 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:16,728 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:16,729 INFO L467 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-02-27 13:01:16,737 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:01:16,777 INFO L301 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-02-27 13:01:16,777 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-02-27 13:01:18,796 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:01:18,796 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_200|, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_200| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_200| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_200| ULTIMATE.start_main_p1) 0) (= .cse0 0) (= (store |v_#memory_int_200| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_200| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:01:18,796 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:01:18,856 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:18,857 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:18,857 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:18,859 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:18,860 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:18,861 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:18,863 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:18,864 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:18,865 INFO L467 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 47 [2019-02-27 13:01:18,868 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:01:18,900 INFO L301 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-02-27 13:01:18,900 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-02-27 13:01:20,906 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:01:20,907 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_201|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_201| ULTIMATE.start_main_p3))) (and (= .cse0 0) (= |#memory_int| (store |v_#memory_int_201| ULTIMATE.start_main_p3 (+ .cse0 1))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_201| ULTIMATE.start_main_p1)) (= (select |v_#memory_int_201| ULTIMATE.start_main_p4) 0) (= (+ (select |v_#memory_int_201| ULTIMATE.start_main_p2) 1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:01:20,907 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:01:20,958 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:20,959 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:20,961 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:20,962 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:20,963 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:20,965 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:20,966 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:20,967 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:20,967 INFO L158 IndexEqualityManager]: detected equality via solver [2019-02-27 13:01:20,968 INFO L467 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 47 [2019-02-27 13:01:20,971 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:01:21,004 INFO L301 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-02-27 13:01:21,004 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-02-27 13:01:21,010 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:01:21,010 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_202|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_202| ULTIMATE.start_main_p1))) (and (= 0 .cse0) (= (select |v_#memory_int_202| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |v_#memory_int_202| ULTIMATE.start_main_p3)) (= (+ (select |v_#memory_int_202| ULTIMATE.start_main_p2) 1) 0) (= (store |v_#memory_int_202| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:01:21,010 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:01:21,063 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:21,065 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:21,066 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:21,068 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:21,069 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:21,071 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:21,072 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:21,073 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:21,074 INFO L158 IndexEqualityManager]: detected equality via solver [2019-02-27 13:01:21,075 INFO L467 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 47 [2019-02-27 13:01:21,078 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:01:21,112 INFO L301 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-02-27 13:01:21,113 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-02-27 13:01:23,128 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:01:23,129 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_203|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_203| ULTIMATE.start_main_p4))) (and (= .cse0 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |v_#memory_int_203| ULTIMATE.start_main_p3)) (= (select |v_#memory_int_203| ULTIMATE.start_main_p1) 1) (= |#memory_int| (store |v_#memory_int_203| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 (+ (select |v_#memory_int_203| ULTIMATE.start_main_p2) 1)))) [2019-02-27 13:01:23,129 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-02-27 13:01:23,160 INFO L273 TraceCheckUtils]: 0: Hoare triple {13658#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {13668#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 13:01:23,162 INFO L273 TraceCheckUtils]: 1: Hoare triple {13668#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {13672#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:01:23,165 INFO L273 TraceCheckUtils]: 2: Hoare triple {13672#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {13676#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:01:23,168 INFO L273 TraceCheckUtils]: 3: Hoare triple {13676#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {13680#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:01:23,171 INFO L273 TraceCheckUtils]: 4: Hoare triple {13680#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {13684#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-02-27 13:01:23,172 INFO L273 TraceCheckUtils]: 5: Hoare triple {13684#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume !(#memory_int[main_p1] >= 0); {13659#false} is VALID [2019-02-27 13:01:23,173 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:01:23,173 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 13:01:23,256 INFO L273 TraceCheckUtils]: 5: Hoare triple {13664#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {13659#false} is VALID [2019-02-27 13:01:23,258 INFO L273 TraceCheckUtils]: 4: Hoare triple {13691#(<= 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]; {13664#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-27 13:01:23,259 INFO L273 TraceCheckUtils]: 3: Hoare triple {13695#(<= 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]; {13691#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-27 13:01:23,261 INFO L273 TraceCheckUtils]: 2: Hoare triple {13699#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {13695#(<= 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-02-27 13:01:23,268 INFO L273 TraceCheckUtils]: 1: Hoare triple {13703#(<= 0 (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {13699#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-27 13:01:23,270 INFO L273 TraceCheckUtils]: 0: Hoare triple {13658#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {13703#(<= 0 (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-27 13:01:23,271 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 6 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:01:23,290 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 13:01:23,291 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5, 5] total 14 [2019-02-27 13:01:23,291 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 13:01:23,291 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-02-27 13:01:23,291 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 13:01:23,291 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-02-27 13:01:23,309 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:01:23,309 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-02-27 13:01:23,309 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-02-27 13:01:23,309 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=98, Invalid=142, Unknown=0, NotChecked=0, Total=240 [2019-02-27 13:01:23,309 INFO L87 Difference]: Start difference. First operand 141 states and 664 transitions. Second operand 12 states. [2019-02-27 13:01:26,403 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:01:26,404 INFO L93 Difference]: Finished difference Result 205 states and 871 transitions. [2019-02-27 13:01:26,404 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2019-02-27 13:01:26,404 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-02-27 13:01:26,404 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 13:01:26,404 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-02-27 13:01:26,405 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 66 transitions. [2019-02-27 13:01:26,405 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-02-27 13:01:26,405 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 66 transitions. [2019-02-27 13:01:26,406 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 66 transitions. [2019-02-27 13:01:26,556 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 66 edges. 66 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:01:26,561 INFO L225 Difference]: With dead ends: 205 [2019-02-27 13:01:26,562 INFO L226 Difference]: Without dead ends: 197 [2019-02-27 13:01:26,562 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 1 SyntacticMatches, 0 SemanticMatches, 17 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 90 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=131, Invalid=211, Unknown=0, NotChecked=0, Total=342 [2019-02-27 13:01:26,563 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 197 states. [2019-02-27 13:01:28,458 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 197 to 149. [2019-02-27 13:01:28,459 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 13:01:28,459 INFO L82 GeneralOperation]: Start isEquivalent. First operand 197 states. Second operand 149 states. [2019-02-27 13:01:28,459 INFO L74 IsIncluded]: Start isIncluded. First operand 197 states. Second operand 149 states. [2019-02-27 13:01:28,459 INFO L87 Difference]: Start difference. First operand 197 states. Second operand 149 states. [2019-02-27 13:01:28,465 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:01:28,465 INFO L93 Difference]: Finished difference Result 197 states and 852 transitions. [2019-02-27 13:01:28,465 INFO L276 IsEmpty]: Start isEmpty. Operand 197 states and 852 transitions. [2019-02-27 13:01:28,465 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:01:28,465 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:01:28,465 INFO L74 IsIncluded]: Start isIncluded. First operand 149 states. Second operand 197 states. [2019-02-27 13:01:28,466 INFO L87 Difference]: Start difference. First operand 149 states. Second operand 197 states. [2019-02-27 13:01:28,471 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:01:28,471 INFO L93 Difference]: Finished difference Result 197 states and 852 transitions. [2019-02-27 13:01:28,471 INFO L276 IsEmpty]: Start isEmpty. Operand 197 states and 852 transitions. [2019-02-27 13:01:28,471 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:01:28,471 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:01:28,472 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 13:01:28,472 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 13:01:28,472 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 149 states. [2019-02-27 13:01:28,475 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 149 states to 149 states and 702 transitions. [2019-02-27 13:01:28,475 INFO L78 Accepts]: Start accepts. Automaton has 149 states and 702 transitions. Word has length 6 [2019-02-27 13:01:28,475 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 13:01:28,475 INFO L480 AbstractCegarLoop]: Abstraction has 149 states and 702 transitions. [2019-02-27 13:01:28,475 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-02-27 13:01:28,475 INFO L276 IsEmpty]: Start isEmpty. Operand 149 states and 702 transitions. [2019-02-27 13:01:28,475 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-02-27 13:01:28,475 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 13:01:28,476 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-02-27 13:01:28,476 INFO L423 AbstractCegarLoop]: === Iteration 38 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 13:01:28,476 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:01:28,476 INFO L82 PathProgramCache]: Analyzing trace with hash 900929556, now seen corresponding path program 1 times [2019-02-27 13:01:28,476 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 13:01:28,476 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:01:28,477 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-02-27 13:01:28,477 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:01:28,477 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 13:01:28,479 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:01:28,778 INFO L273 TraceCheckUtils]: 0: Hoare triple {14760#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {14762#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-02-27 13:01:28,779 INFO L273 TraceCheckUtils]: 1: Hoare triple {14762#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {14763#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)))} is VALID [2019-02-27 13:01:28,780 INFO L273 TraceCheckUtils]: 2: Hoare triple {14763#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {14764#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:01:28,781 INFO L273 TraceCheckUtils]: 3: Hoare triple {14764#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {14764#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:01:28,782 INFO L273 TraceCheckUtils]: 4: Hoare triple {14764#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {14764#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:01:28,782 INFO L273 TraceCheckUtils]: 5: Hoare triple {14764#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {14761#false} is VALID [2019-02-27 13:01:28,783 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:01:28,783 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:01:28,783 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 13:01:28,783 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-02-27 13:01:28,783 INFO L207 CegarAbsIntRunner]: [0], [14], [16], [20], [22], [23] [2019-02-27 13:01:28,784 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 13:01:28,785 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 13:01:28,801 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 13:01:28,801 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 3. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-02-27 13:01:28,801 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:01:28,801 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 13:01:28,801 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:01:28,801 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-02-27 13:01:28,810 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:01:28,810 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 13:01:28,829 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:01:28,829 INFO L256 TraceCheckSpWp]: Trace formula consists of 23 conjuncts, 5 conjunts are in the unsatisfiable core [2019-02-27 13:01:28,845 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:01:28,845 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 13:01:28,871 INFO L467 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 15 treesize of output 18 [2019-02-27 13:01:28,878 INFO L467 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 18 treesize of output 20 [2019-02-27 13:01:28,886 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-02-27 13:01:28,900 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:28,901 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 1 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 25 [2019-02-27 13:01:28,903 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 13:01:28,915 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:01:28,923 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:01:28,932 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:01:28,942 INFO L301 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-02-27 13:01:28,943 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:19, output treesize:24 [2019-02-27 13:01:28,946 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:01:28,947 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_208|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (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))) [2019-02-27 13:01:28,947 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:01:28,990 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:28,991 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:28,992 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 15 [2019-02-27 13:01:28,994 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:01:29,003 INFO L301 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:01:29,003 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:24, output treesize:14 [2019-02-27 13:01:29,011 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:01:29,011 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_209|]. (let ((.cse0 (select |v_#memory_int_209| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_209| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= 0 (select |v_#memory_int_209| ULTIMATE.start_main_p4)) (= 0 .cse0))) [2019-02-27 13:01:29,011 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:01:29,042 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:29,043 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:29,044 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:29,045 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 4 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 15 [2019-02-27 13:01:29,047 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:01:29,057 INFO L301 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-02-27 13:01:29,058 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:24, output treesize:14 [2019-02-27 13:01:31,107 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:01:31,108 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_210|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_210| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= |#memory_int| (store |v_#memory_int_210| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= (select |v_#memory_int_210| ULTIMATE.start_main_p3) 1))) [2019-02-27 13:01:31,108 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) [2019-02-27 13:01:31,152 INFO L273 TraceCheckUtils]: 0: Hoare triple {14760#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {14768#(and (< 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-02-27 13:01:31,153 INFO L273 TraceCheckUtils]: 1: Hoare triple {14768#(and (< 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_p3 := #memory_int[main_p3] + 1]; {14772#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:01:31,155 INFO L273 TraceCheckUtils]: 2: Hoare triple {14772#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {14776#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))))} is VALID [2019-02-27 13:01:31,160 INFO L273 TraceCheckUtils]: 3: Hoare triple {14776#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))))} assume #memory_int[main_p1] >= 0; {14776#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))))} is VALID [2019-02-27 13:01:31,161 INFO L273 TraceCheckUtils]: 4: Hoare triple {14776#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))))} assume #memory_int[main_p2] <= 0; {14776#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))))} is VALID [2019-02-27 13:01:31,161 INFO L273 TraceCheckUtils]: 5: Hoare triple {14776#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))))} assume !(#memory_int[main_p3] >= 0); {14761#false} is VALID [2019-02-27 13:01:31,161 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:01:31,162 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 13:01:31,201 INFO L273 TraceCheckUtils]: 5: Hoare triple {14786#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {14761#false} is VALID [2019-02-27 13:01:31,202 INFO L273 TraceCheckUtils]: 4: Hoare triple {14786#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {14786#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:01:31,202 INFO L273 TraceCheckUtils]: 3: Hoare triple {14786#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {14786#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:01:31,204 INFO L273 TraceCheckUtils]: 2: Hoare triple {14796#(<= 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]; {14786#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:01:31,205 INFO L273 TraceCheckUtils]: 1: Hoare triple {14800#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {14796#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:01:31,207 INFO L273 TraceCheckUtils]: 0: Hoare triple {14760#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {14800#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:01:31,207 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:01:31,227 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 13:01:31,227 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-02-27 13:01:31,227 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 13:01:31,227 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-02-27 13:01:31,227 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 13:01:31,227 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-02-27 13:01:31,241 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:01:31,241 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-02-27 13:01:31,241 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-02-27 13:01:31,242 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-02-27 13:01:31,242 INFO L87 Difference]: Start difference. First operand 149 states and 702 transitions. Second operand 8 states. [2019-02-27 13:01:33,405 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:01:33,405 INFO L93 Difference]: Finished difference Result 165 states and 720 transitions. [2019-02-27 13:01:33,405 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-02-27 13:01:33,405 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-02-27 13:01:33,405 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 13:01:33,405 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-27 13:01:33,406 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 46 transitions. [2019-02-27 13:01:33,406 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-27 13:01:33,406 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 46 transitions. [2019-02-27 13:01:33,406 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 46 transitions. [2019-02-27 13:01:33,461 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 46 edges. 46 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:01:33,465 INFO L225 Difference]: With dead ends: 165 [2019-02-27 13:01:33,465 INFO L226 Difference]: Without dead ends: 164 [2019-02-27 13:01:33,465 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 4 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 28 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=53, Invalid=79, Unknown=0, NotChecked=0, Total=132 [2019-02-27 13:01:33,466 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 164 states. [2019-02-27 13:01:34,936 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 164 to 149. [2019-02-27 13:01:34,936 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 13:01:34,937 INFO L82 GeneralOperation]: Start isEquivalent. First operand 164 states. Second operand 149 states. [2019-02-27 13:01:34,937 INFO L74 IsIncluded]: Start isIncluded. First operand 164 states. Second operand 149 states. [2019-02-27 13:01:34,937 INFO L87 Difference]: Start difference. First operand 164 states. Second operand 149 states. [2019-02-27 13:01:34,942 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:01:34,942 INFO L93 Difference]: Finished difference Result 164 states and 718 transitions. [2019-02-27 13:01:34,943 INFO L276 IsEmpty]: Start isEmpty. Operand 164 states and 718 transitions. [2019-02-27 13:01:34,943 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:01:34,943 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:01:34,943 INFO L74 IsIncluded]: Start isIncluded. First operand 149 states. Second operand 164 states. [2019-02-27 13:01:34,943 INFO L87 Difference]: Start difference. First operand 149 states. Second operand 164 states. [2019-02-27 13:01:34,948 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:01:34,949 INFO L93 Difference]: Finished difference Result 164 states and 718 transitions. [2019-02-27 13:01:34,949 INFO L276 IsEmpty]: Start isEmpty. Operand 164 states and 718 transitions. [2019-02-27 13:01:34,949 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:01:34,949 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:01:34,949 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 13:01:34,950 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 13:01:34,950 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 149 states. [2019-02-27 13:01:34,954 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 149 states to 149 states and 702 transitions. [2019-02-27 13:01:34,954 INFO L78 Accepts]: Start accepts. Automaton has 149 states and 702 transitions. Word has length 6 [2019-02-27 13:01:34,954 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 13:01:34,954 INFO L480 AbstractCegarLoop]: Abstraction has 149 states and 702 transitions. [2019-02-27 13:01:34,955 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-02-27 13:01:34,955 INFO L276 IsEmpty]: Start isEmpty. Operand 149 states and 702 transitions. [2019-02-27 13:01:34,955 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-02-27 13:01:34,955 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 13:01:34,955 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-02-27 13:01:34,955 INFO L423 AbstractCegarLoop]: === Iteration 39 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 13:01:34,956 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:01:34,956 INFO L82 PathProgramCache]: Analyzing trace with hash 900750810, now seen corresponding path program 1 times [2019-02-27 13:01:34,956 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 13:01:34,956 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:01:34,957 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:01:34,957 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:01:34,957 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 13:01:34,960 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:01:35,064 INFO L273 TraceCheckUtils]: 0: Hoare triple {15722#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {15724#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-02-27 13:01:35,066 INFO L273 TraceCheckUtils]: 1: Hoare triple {15724#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {15725#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} is VALID [2019-02-27 13:01:35,067 INFO L273 TraceCheckUtils]: 2: Hoare triple {15725#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= 1 (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]; {15726#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:01:35,067 INFO L273 TraceCheckUtils]: 3: Hoare triple {15726#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {15726#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:01:35,068 INFO L273 TraceCheckUtils]: 4: Hoare triple {15726#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {15726#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:01:35,068 INFO L273 TraceCheckUtils]: 5: Hoare triple {15726#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {15723#false} is VALID [2019-02-27 13:01:35,069 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:01:35,069 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:01:35,069 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 13:01:35,069 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-02-27 13:01:35,069 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [20], [22], [23] [2019-02-27 13:01:35,070 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 13:01:35,070 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 13:01:35,080 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 13:01:35,081 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 3. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-02-27 13:01:35,081 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:01:35,081 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 13:01:35,081 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:01:35,081 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-02-27 13:01:35,091 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:01:35,091 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 13:01:35,095 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:01:35,096 INFO L256 TraceCheckSpWp]: Trace formula consists of 23 conjuncts, 6 conjunts are in the unsatisfiable core [2019-02-27 13:01:35,100 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:01:35,101 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 13:01:35,123 INFO L467 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 15 treesize of output 18 [2019-02-27 13:01:35,131 INFO L467 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 18 treesize of output 20 [2019-02-27 13:01:35,143 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:35,144 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 26 [2019-02-27 13:01:35,158 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:35,159 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:35,160 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 33 [2019-02-27 13:01:35,163 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 13:01:35,178 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:01:35,188 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:01:35,197 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:01:35,212 INFO L301 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-02-27 13:01:35,213 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:22, output treesize:27 [2019-02-27 13:01:35,219 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:01:35,219 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_213|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_213| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:01:35,219 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:01:35,271 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:35,273 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:35,274 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:35,275 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:35,276 INFO L467 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-02-27 13:01:35,278 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:01:35,297 INFO L301 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-02-27 13:01:35,297 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:22 [2019-02-27 13:01:35,302 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:01:35,303 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_214|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_214| ULTIMATE.start_main_p3))) (and (= (store |v_#memory_int_214| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_214| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_214| ULTIMATE.start_main_p4) 0) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-02-27 13:01:35,303 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:01:35,342 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:35,344 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:35,345 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:35,346 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:35,347 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:35,348 INFO L467 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 28 [2019-02-27 13:01:35,350 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:01:35,368 INFO L301 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-02-27 13:01:35,368 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:32, output treesize:22 [2019-02-27 13:01:35,451 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:01:35,451 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_215|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_215| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= 0 (select |v_#memory_int_215| ULTIMATE.start_main_p4)) (= (select |v_#memory_int_215| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (store |v_#memory_int_215| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|))) [2019-02-27 13:01:35,451 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:01:35,501 INFO L273 TraceCheckUtils]: 0: Hoare triple {15722#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {15730#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:01:35,502 INFO L273 TraceCheckUtils]: 1: Hoare triple {15730#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {15734#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:01:35,504 INFO L273 TraceCheckUtils]: 2: Hoare triple {15734#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {15738#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-02-27 13:01:35,506 INFO L273 TraceCheckUtils]: 3: Hoare triple {15738#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p1] >= 0; {15738#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-02-27 13:01:35,507 INFO L273 TraceCheckUtils]: 4: Hoare triple {15738#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p2] <= 0; {15738#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-02-27 13:01:35,507 INFO L273 TraceCheckUtils]: 5: Hoare triple {15738#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume !(#memory_int[main_p3] >= 0); {15723#false} is VALID [2019-02-27 13:01:35,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-02-27 13:01:35,508 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 13:01:35,560 INFO L273 TraceCheckUtils]: 5: Hoare triple {15748#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {15723#false} is VALID [2019-02-27 13:01:35,561 INFO L273 TraceCheckUtils]: 4: Hoare triple {15748#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {15748#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:01:35,561 INFO L273 TraceCheckUtils]: 3: Hoare triple {15748#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {15748#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:01:35,563 INFO L273 TraceCheckUtils]: 2: Hoare triple {15758#(<= 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]; {15748#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:01:35,564 INFO L273 TraceCheckUtils]: 1: Hoare triple {15762#(<= 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_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {15758#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:01:35,566 INFO L273 TraceCheckUtils]: 0: Hoare triple {15722#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {15762#(<= 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_p3))} is VALID [2019-02-27 13:01:35,566 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:01:35,586 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 13:01:35,586 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-02-27 13:01:35,586 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 13:01:35,586 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-02-27 13:01:35,586 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 13:01:35,586 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-02-27 13:01:35,602 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:01:35,602 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-02-27 13:01:35,602 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-02-27 13:01:35,602 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-02-27 13:01:35,602 INFO L87 Difference]: Start difference. First operand 149 states and 702 transitions. Second operand 8 states. [2019-02-27 13:01:38,040 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:01:38,040 INFO L93 Difference]: Finished difference Result 174 states and 765 transitions. [2019-02-27 13:01:38,040 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-02-27 13:01:38,040 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-02-27 13:01:38,040 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 13:01:38,040 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-27 13:01:38,040 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 46 transitions. [2019-02-27 13:01:38,041 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-27 13:01:38,041 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 46 transitions. [2019-02-27 13:01:38,041 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 46 transitions. [2019-02-27 13:01:38,112 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 46 edges. 46 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:01:38,117 INFO L225 Difference]: With dead ends: 174 [2019-02-27 13:01:38,117 INFO L226 Difference]: Without dead ends: 173 [2019-02-27 13:01:38,117 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 15 GetRequests, 5 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 28 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=53, Invalid=79, Unknown=0, NotChecked=0, Total=132 [2019-02-27 13:01:38,117 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 173 states. [2019-02-27 13:01:39,823 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 173 to 158. [2019-02-27 13:01:39,824 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 13:01:39,824 INFO L82 GeneralOperation]: Start isEquivalent. First operand 173 states. Second operand 158 states. [2019-02-27 13:01:39,824 INFO L74 IsIncluded]: Start isIncluded. First operand 173 states. Second operand 158 states. [2019-02-27 13:01:39,824 INFO L87 Difference]: Start difference. First operand 173 states. Second operand 158 states. [2019-02-27 13:01:39,830 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:01:39,830 INFO L93 Difference]: Finished difference Result 173 states and 763 transitions. [2019-02-27 13:01:39,830 INFO L276 IsEmpty]: Start isEmpty. Operand 173 states and 763 transitions. [2019-02-27 13:01:39,830 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:01:39,830 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:01:39,830 INFO L74 IsIncluded]: Start isIncluded. First operand 158 states. Second operand 173 states. [2019-02-27 13:01:39,830 INFO L87 Difference]: Start difference. First operand 158 states. Second operand 173 states. [2019-02-27 13:01:39,834 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:01:39,835 INFO L93 Difference]: Finished difference Result 173 states and 763 transitions. [2019-02-27 13:01:39,835 INFO L276 IsEmpty]: Start isEmpty. Operand 173 states and 763 transitions. [2019-02-27 13:01:39,835 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:01:39,835 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:01:39,835 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 13:01:39,835 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 13:01:39,835 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 158 states. [2019-02-27 13:01:39,839 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 158 states to 158 states and 747 transitions. [2019-02-27 13:01:39,839 INFO L78 Accepts]: Start accepts. Automaton has 158 states and 747 transitions. Word has length 6 [2019-02-27 13:01:39,839 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 13:01:39,839 INFO L480 AbstractCegarLoop]: Abstraction has 158 states and 747 transitions. [2019-02-27 13:01:39,839 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-02-27 13:01:39,839 INFO L276 IsEmpty]: Start isEmpty. Operand 158 states and 747 transitions. [2019-02-27 13:01:39,840 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-02-27 13:01:39,840 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 13:01:39,840 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1] [2019-02-27 13:01:39,840 INFO L423 AbstractCegarLoop]: === Iteration 40 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 13:01:39,840 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:01:39,840 INFO L82 PathProgramCache]: Analyzing trace with hash -2078696478, now seen corresponding path program 1 times [2019-02-27 13:01:39,840 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 13:01:39,841 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:01:39,841 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:01:39,841 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:01:39,841 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 13:01:39,843 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:01:39,907 INFO L273 TraceCheckUtils]: 0: Hoare triple {16738#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {16740#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:01:39,908 INFO L273 TraceCheckUtils]: 1: Hoare triple {16740#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {16741#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-02-27 13:01:39,909 INFO L273 TraceCheckUtils]: 2: Hoare triple {16741#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {16742#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} is VALID [2019-02-27 13:01:39,909 INFO L273 TraceCheckUtils]: 3: Hoare triple {16742#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} assume #memory_int[main_p1] >= 0; {16742#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} is VALID [2019-02-27 13:01:39,910 INFO L273 TraceCheckUtils]: 4: Hoare triple {16742#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} assume #memory_int[main_p2] <= 0; {16742#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} is VALID [2019-02-27 13:01:39,910 INFO L273 TraceCheckUtils]: 5: Hoare triple {16742#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} assume #memory_int[main_p3] >= 0; {16742#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} is VALID [2019-02-27 13:01:39,911 INFO L273 TraceCheckUtils]: 6: Hoare triple {16742#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} assume !(#memory_int[main_p4] <= 0); {16739#false} is VALID [2019-02-27 13:01:39,912 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:01:39,912 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:01:39,912 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 13:01:39,912 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-02-27 13:01:39,912 INFO L207 CegarAbsIntRunner]: [0], [16], [20], [22], [24], [25] [2019-02-27 13:01:39,914 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 13:01:39,914 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 13:01:39,947 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 13:01:39,947 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 3. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-02-27 13:01:39,948 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:01:39,948 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 13:01:39,948 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:01:39,948 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-02-27 13:01:39,956 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:01:39,957 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 13:01:39,961 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:01:39,961 INFO L256 TraceCheckSpWp]: Trace formula consists of 24 conjuncts, 4 conjunts are in the unsatisfiable core [2019-02-27 13:01:39,963 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:01:39,963 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 13:01:39,973 INFO L467 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 15 treesize of output 18 [2019-02-27 13:01:39,982 INFO L467 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 18 treesize of output 20 [2019-02-27 13:01:40,000 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-02-27 13:01:40,013 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 0 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 21 [2019-02-27 13:01:40,016 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 13:01:40,025 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:01:40,033 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:01:40,043 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:01:40,051 INFO L301 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-02-27 13:01:40,052 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 4 variables, input treesize:15, output treesize:21 [2019-02-27 13:01:40,055 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:01:40,055 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_218|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (= |#memory_int| (store (store (store (store |v_#memory_int_218| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) [2019-02-27 13:01:40,055 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:01:40,069 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:40,070 INFO L467 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 0 new quantified variables, introduced 0 case distinctions, treesize of input 16 treesize of output 5 [2019-02-27 13:01:40,100 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:01:40,135 INFO L301 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:01:40,135 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:16, output treesize:5 [2019-02-27 13:01:40,146 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:01:40,146 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_219|]. (let ((.cse0 (select |v_#memory_int_219| ULTIMATE.start_main_p4))) (and (= |#memory_int| (store |v_#memory_int_219| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= 0 .cse0))) [2019-02-27 13:01:40,146 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ []. (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) [2019-02-27 13:01:40,244 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:40,245 INFO L467 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 0 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 5 [2019-02-27 13:01:40,247 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:01:40,249 INFO L301 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:01:40,249 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:18, output treesize:5 [2019-02-27 13:01:40,258 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:01:40,259 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_220|]. (let ((.cse0 (select |v_#memory_int_220| ULTIMATE.start_main_p4))) (and (= (store |v_#memory_int_220| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= 0 (+ .cse0 1)))) [2019-02-27 13:01:40,259 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ []. (= (select |#memory_int| ULTIMATE.start_main_p4) (- 2)) [2019-02-27 13:01:40,273 INFO L273 TraceCheckUtils]: 0: Hoare triple {16738#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {16740#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:01:40,274 INFO L273 TraceCheckUtils]: 1: Hoare triple {16740#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {16749#(= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-02-27 13:01:40,275 INFO L273 TraceCheckUtils]: 2: Hoare triple {16749#(= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {16753#(= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} is VALID [2019-02-27 13:01:40,276 INFO L273 TraceCheckUtils]: 3: Hoare triple {16753#(= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} assume #memory_int[main_p1] >= 0; {16753#(= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} is VALID [2019-02-27 13:01:40,277 INFO L273 TraceCheckUtils]: 4: Hoare triple {16753#(= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} assume #memory_int[main_p2] <= 0; {16753#(= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} is VALID [2019-02-27 13:01:40,277 INFO L273 TraceCheckUtils]: 5: Hoare triple {16753#(= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} assume #memory_int[main_p3] >= 0; {16753#(= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} is VALID [2019-02-27 13:01:40,278 INFO L273 TraceCheckUtils]: 6: Hoare triple {16753#(= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} assume !(#memory_int[main_p4] <= 0); {16739#false} is VALID [2019-02-27 13:01:40,278 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:01:40,278 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 13:01:40,313 INFO L273 TraceCheckUtils]: 6: Hoare triple {16766#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {16739#false} is VALID [2019-02-27 13:01:40,314 INFO L273 TraceCheckUtils]: 5: Hoare triple {16766#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {16766#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:01:40,314 INFO L273 TraceCheckUtils]: 4: Hoare triple {16766#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {16766#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:01:40,315 INFO L273 TraceCheckUtils]: 3: Hoare triple {16766#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {16766#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:01:40,316 INFO L273 TraceCheckUtils]: 2: Hoare triple {16779#(<= (select |#memory_int| ULTIMATE.start_main_p4) 1)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {16766#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:01:40,317 INFO L273 TraceCheckUtils]: 1: Hoare triple {16783#(<= (select |#memory_int| ULTIMATE.start_main_p4) 2)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {16779#(<= (select |#memory_int| ULTIMATE.start_main_p4) 1)} is VALID [2019-02-27 13:01:40,318 INFO L273 TraceCheckUtils]: 0: Hoare triple {16738#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {16783#(<= (select |#memory_int| ULTIMATE.start_main_p4) 2)} is VALID [2019-02-27 13:01:40,319 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 3 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:01:40,337 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-02-27 13:01:40,337 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [3] imperfect sequences [3, 3] total 8 [2019-02-27 13:01:40,338 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-02-27 13:01:40,338 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 7 [2019-02-27 13:01:40,338 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 13:01:40,338 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states. [2019-02-27 13:01:40,347 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 7 edges. 7 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:01:40,347 INFO L459 AbstractCegarLoop]: Interpolant automaton has 5 states [2019-02-27 13:01:40,347 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2019-02-27 13:01:40,347 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=39, Invalid=51, Unknown=0, NotChecked=0, Total=90 [2019-02-27 13:01:40,348 INFO L87 Difference]: Start difference. First operand 158 states and 747 transitions. Second operand 5 states. [2019-02-27 13:01:45,114 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:01:45,114 INFO L93 Difference]: Finished difference Result 357 states and 1628 transitions. [2019-02-27 13:01:45,114 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-02-27 13:01:45,114 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 7 [2019-02-27 13:01:45,115 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 13:01:45,115 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2019-02-27 13:01:45,115 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 45 transitions. [2019-02-27 13:01:45,115 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2019-02-27 13:01:45,115 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 45 transitions. [2019-02-27 13:01:45,115 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 45 transitions. [2019-02-27 13:01:45,164 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 45 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:01:45,173 INFO L225 Difference]: With dead ends: 357 [2019-02-27 13:01:45,174 INFO L226 Difference]: Without dead ends: 353 [2019-02-27 13:01:45,174 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 15 GetRequests, 6 SyntacticMatches, 1 SemanticMatches, 8 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 18 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=39, Invalid=51, Unknown=0, NotChecked=0, Total=90 [2019-02-27 13:01:45,174 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 353 states. [2019-02-27 13:01:50,476 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 353 to 329. [2019-02-27 13:01:50,476 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 13:01:50,476 INFO L82 GeneralOperation]: Start isEquivalent. First operand 353 states. Second operand 329 states. [2019-02-27 13:01:50,476 INFO L74 IsIncluded]: Start isIncluded. First operand 353 states. Second operand 329 states. [2019-02-27 13:01:50,476 INFO L87 Difference]: Start difference. First operand 353 states. Second operand 329 states. [2019-02-27 13:01:50,488 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:01:50,488 INFO L93 Difference]: Finished difference Result 353 states and 1611 transitions. [2019-02-27 13:01:50,488 INFO L276 IsEmpty]: Start isEmpty. Operand 353 states and 1611 transitions. [2019-02-27 13:01:50,488 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:01:50,488 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:01:50,489 INFO L74 IsIncluded]: Start isIncluded. First operand 329 states. Second operand 353 states. [2019-02-27 13:01:50,489 INFO L87 Difference]: Start difference. First operand 329 states. Second operand 353 states. [2019-02-27 13:01:50,497 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:01:50,498 INFO L93 Difference]: Finished difference Result 353 states and 1611 transitions. [2019-02-27 13:01:50,498 INFO L276 IsEmpty]: Start isEmpty. Operand 353 states and 1611 transitions. [2019-02-27 13:01:50,498 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:01:50,498 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:01:50,498 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 13:01:50,498 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 13:01:50,499 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 329 states. [2019-02-27 13:01:50,507 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 329 states to 329 states and 1593 transitions. [2019-02-27 13:01:50,507 INFO L78 Accepts]: Start accepts. Automaton has 329 states and 1593 transitions. Word has length 7 [2019-02-27 13:01:50,507 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 13:01:50,507 INFO L480 AbstractCegarLoop]: Abstraction has 329 states and 1593 transitions. [2019-02-27 13:01:50,507 INFO L481 AbstractCegarLoop]: Interpolant automaton has 5 states. [2019-02-27 13:01:50,508 INFO L276 IsEmpty]: Start isEmpty. Operand 329 states and 1593 transitions. [2019-02-27 13:01:50,508 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-02-27 13:01:50,508 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 13:01:50,508 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-02-27 13:01:50,508 INFO L423 AbstractCegarLoop]: === Iteration 41 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 13:01:50,508 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:01:50,509 INFO L82 PathProgramCache]: Analyzing trace with hash -2087931688, now seen corresponding path program 1 times [2019-02-27 13:01:50,509 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 13:01:50,509 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:01:50,509 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:01:50,509 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:01:50,509 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 13:01:50,512 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:01:50,649 INFO L273 TraceCheckUtils]: 0: Hoare triple {18806#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {18808#(and (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-27 13:01:50,650 INFO L273 TraceCheckUtils]: 1: Hoare triple {18808#(and (= (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]; {18809#(and (not (= ULTIMATE.start_main_p1 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) 0))} is VALID [2019-02-27 13:01:50,651 INFO L273 TraceCheckUtils]: 2: Hoare triple {18809#(and (not (= ULTIMATE.start_main_p1 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) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {18810#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-02-27 13:01:50,652 INFO L273 TraceCheckUtils]: 3: Hoare triple {18810#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p1] >= 0; {18810#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-02-27 13:01:50,652 INFO L273 TraceCheckUtils]: 4: Hoare triple {18810#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p2] <= 0; {18810#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-02-27 13:01:50,653 INFO L273 TraceCheckUtils]: 5: Hoare triple {18810#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p3] >= 0; {18810#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-02-27 13:01:50,654 INFO L273 TraceCheckUtils]: 6: Hoare triple {18810#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume !(#memory_int[main_p4] <= 0); {18807#false} is VALID [2019-02-27 13:01:50,654 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:01:50,654 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:01:50,654 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 13:01:50,655 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-02-27 13:01:50,655 INFO L207 CegarAbsIntRunner]: [0], [6], [16], [20], [22], [24], [25] [2019-02-27 13:01:50,657 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 13:01:50,657 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 13:01:50,667 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 13:01:50,667 INFO L272 AbstractInterpreter]: Visited 7 different actions 7 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 3. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-02-27 13:01:50,668 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:01:50,668 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 13:01:50,668 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:01:50,669 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-02-27 13:01:50,678 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:01:50,678 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 13:01:50,682 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:01:50,682 INFO L256 TraceCheckSpWp]: Trace formula consists of 24 conjuncts, 7 conjunts are in the unsatisfiable core [2019-02-27 13:01:50,684 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:01:50,685 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 13:01:50,708 INFO L467 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 15 treesize of output 18 [2019-02-27 13:01:50,718 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:50,719 INFO L467 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 18 treesize of output 24 [2019-02-27 13:01:50,732 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:50,734 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:50,734 INFO L467 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 20 treesize of output 34 [2019-02-27 13:01:50,751 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:50,753 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:50,754 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:50,755 INFO L467 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 22 treesize of output 45 [2019-02-27 13:01:50,760 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 13:01:50,780 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:01:50,793 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:01:50,803 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:01:50,822 INFO L301 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-02-27 13:01:50,822 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-02-27 13:01:50,829 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:01:50,829 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_223|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_223| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:01:50,829 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:01:50,889 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:50,890 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:50,891 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:50,893 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:50,894 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:50,896 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:50,897 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:50,898 INFO L467 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-02-27 13:01:50,903 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:01:50,931 INFO L301 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-02-27 13:01:50,931 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-02-27 13:01:50,937 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:01:50,937 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_224|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_224| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_224| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_224| ULTIMATE.start_main_p1) 0) (= 0 .cse0) (= |#memory_int| (store |v_#memory_int_224| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= 0 (select |v_#memory_int_224| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:01:50,937 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 13:01:50,995 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:50,996 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:50,998 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:50,999 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:51,000 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:51,002 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:51,003 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:51,004 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:01:51,005 INFO L467 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 47 [2019-02-27 13:01:51,011 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:01:51,043 INFO L301 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-02-27 13:01:51,043 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-02-27 13:01:51,265 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:01:51,265 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_225|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_225| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_225| ULTIMATE.start_main_p1 (+ .cse0 1))) (= (+ (select |v_#memory_int_225| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |v_#memory_int_225| ULTIMATE.start_main_p2)) (= (select |v_#memory_int_225| ULTIMATE.start_main_p3) 0) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:01:51,265 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:01:51,512 INFO L273 TraceCheckUtils]: 0: Hoare triple {18806#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {18814#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:01:51,514 INFO L273 TraceCheckUtils]: 1: Hoare triple {18814#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {18818#(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_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-27 13:01:51,517 INFO L273 TraceCheckUtils]: 2: Hoare triple {18818#(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_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {18822#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-27 13:01:51,518 INFO L273 TraceCheckUtils]: 3: Hoare triple {18822#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume #memory_int[main_p1] >= 0; {18822#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-27 13:01:51,519 INFO L273 TraceCheckUtils]: 4: Hoare triple {18822#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume #memory_int[main_p2] <= 0; {18822#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-27 13:01:51,520 INFO L273 TraceCheckUtils]: 5: Hoare triple {18822#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume #memory_int[main_p3] >= 0; {18822#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-27 13:01:51,520 INFO L273 TraceCheckUtils]: 6: Hoare triple {18822#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p4] <= 0); {18807#false} is VALID [2019-02-27 13:01:51,520 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:01:51,521 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 13:01:51,570 INFO L273 TraceCheckUtils]: 6: Hoare triple {18835#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {18807#false} is VALID [2019-02-27 13:01:51,571 INFO L273 TraceCheckUtils]: 5: Hoare triple {18835#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {18835#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:01:51,571 INFO L273 TraceCheckUtils]: 4: Hoare triple {18835#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {18835#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:01:51,571 INFO L273 TraceCheckUtils]: 3: Hoare triple {18835#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {18835#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:01:51,572 INFO L273 TraceCheckUtils]: 2: Hoare triple {18848#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {18835#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:01:51,573 INFO L273 TraceCheckUtils]: 1: Hoare triple {18852#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {18848#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:01:51,575 INFO L273 TraceCheckUtils]: 0: Hoare triple {18806#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {18852#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:01:51,576 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:01:51,595 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 13:01:51,595 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-02-27 13:01:51,595 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 13:01:51,595 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 7 [2019-02-27 13:01:51,595 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 13:01:51,595 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-02-27 13:01:51,616 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:01:51,616 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-02-27 13:01:51,617 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-02-27 13:01:51,617 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-02-27 13:01:51,617 INFO L87 Difference]: Start difference. First operand 329 states and 1593 transitions. Second operand 8 states. [2019-02-27 13:01:58,637 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:01:58,637 INFO L93 Difference]: Finished difference Result 348 states and 1627 transitions. [2019-02-27 13:01:58,637 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-02-27 13:01:58,637 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 7 [2019-02-27 13:01:58,637 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 13:01:58,637 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-27 13:01:58,637 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 45 transitions. [2019-02-27 13:01:58,638 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-27 13:01:58,638 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 45 transitions. [2019-02-27 13:01:58,638 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 45 transitions. [2019-02-27 13:01:58,702 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 45 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:01:58,711 INFO L225 Difference]: With dead ends: 348 [2019-02-27 13:01:58,711 INFO L226 Difference]: Without dead ends: 338 [2019-02-27 13:01:58,711 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 17 GetRequests, 7 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 28 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=53, Invalid=79, Unknown=0, NotChecked=0, Total=132 [2019-02-27 13:01:58,712 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 338 states. [2019-02-27 13:02:06,903 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 338 to 333. [2019-02-27 13:02:06,903 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 13:02:06,903 INFO L82 GeneralOperation]: Start isEquivalent. First operand 338 states. Second operand 333 states. [2019-02-27 13:02:06,903 INFO L74 IsIncluded]: Start isIncluded. First operand 338 states. Second operand 333 states. [2019-02-27 13:02:06,904 INFO L87 Difference]: Start difference. First operand 338 states. Second operand 333 states. [2019-02-27 13:02:06,914 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:02:06,915 INFO L93 Difference]: Finished difference Result 338 states and 1608 transitions. [2019-02-27 13:02:06,915 INFO L276 IsEmpty]: Start isEmpty. Operand 338 states and 1608 transitions. [2019-02-27 13:02:06,915 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:02:06,915 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:02:06,915 INFO L74 IsIncluded]: Start isIncluded. First operand 333 states. Second operand 338 states. [2019-02-27 13:02:06,915 INFO L87 Difference]: Start difference. First operand 333 states. Second operand 338 states. [2019-02-27 13:02:06,928 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:02:06,928 INFO L93 Difference]: Finished difference Result 338 states and 1608 transitions. [2019-02-27 13:02:06,928 INFO L276 IsEmpty]: Start isEmpty. Operand 338 states and 1608 transitions. [2019-02-27 13:02:06,929 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:02:06,929 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:02:06,929 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 13:02:06,929 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 13:02:06,929 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 333 states. [2019-02-27 13:02:06,937 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 333 states to 333 states and 1604 transitions. [2019-02-27 13:02:06,937 INFO L78 Accepts]: Start accepts. Automaton has 333 states and 1604 transitions. Word has length 7 [2019-02-27 13:02:06,937 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 13:02:06,938 INFO L480 AbstractCegarLoop]: Abstraction has 333 states and 1604 transitions. [2019-02-27 13:02:06,938 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-02-27 13:02:06,938 INFO L276 IsEmpty]: Start isEmpty. Operand 333 states and 1604 transitions. [2019-02-27 13:02:06,938 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-02-27 13:02:06,938 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 13:02:06,938 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-02-27 13:02:06,938 INFO L423 AbstractCegarLoop]: === Iteration 42 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 13:02:06,939 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:02:06,939 INFO L82 PathProgramCache]: Analyzing trace with hash -2088231584, now seen corresponding path program 1 times [2019-02-27 13:02:06,939 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 13:02:06,939 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:02:06,939 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:02:06,939 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:02:06,940 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 13:02:06,942 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:02:07,589 WARN L181 SmtUtils]: Spent 236.00 ms on a formula simplification. DAG size of input: 39 DAG size of output: 21 [2019-02-27 13:02:07,769 INFO L273 TraceCheckUtils]: 0: Hoare triple {20850#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {20852#(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_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-02-27 13:02:07,770 INFO L273 TraceCheckUtils]: 1: Hoare triple {20852#(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_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {20853#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-02-27 13:02:07,770 INFO L273 TraceCheckUtils]: 2: Hoare triple {20853#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {20853#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-02-27 13:02:07,774 INFO L273 TraceCheckUtils]: 3: Hoare triple {20853#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {20854#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-02-27 13:02:07,774 INFO L273 TraceCheckUtils]: 4: Hoare triple {20854#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p1] >= 0; {20854#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-02-27 13:02:07,774 INFO L273 TraceCheckUtils]: 5: Hoare triple {20854#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p2] <= 0; {20855#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-02-27 13:02:07,775 INFO L273 TraceCheckUtils]: 6: Hoare triple {20855#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume !(#memory_int[main_p3] >= 0); {20851#false} is VALID [2019-02-27 13:02:07,775 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-02-27 13:02:07,775 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:02:07,776 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 13:02:07,776 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-02-27 13:02:07,776 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [16], [20], [22], [23] [2019-02-27 13:02:07,777 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 13:02:07,777 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 13:02:07,794 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 13:02:07,794 INFO L272 AbstractInterpreter]: Visited 7 different actions 7 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 3. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-02-27 13:02:07,794 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:02:07,794 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 13:02:07,794 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:02:07,794 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-02-27 13:02:07,803 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:02:07,803 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 13:02:07,809 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:02:07,810 INFO L256 TraceCheckSpWp]: Trace formula consists of 24 conjuncts, 8 conjunts are in the unsatisfiable core [2019-02-27 13:02:07,812 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:02:07,812 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 13:02:07,846 INFO L467 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 15 treesize of output 18 [2019-02-27 13:02:07,866 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:07,866 INFO L467 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 18 treesize of output 24 [2019-02-27 13:02:07,887 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:07,889 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:07,890 INFO L467 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 20 treesize of output 34 [2019-02-27 13:02:07,918 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:07,920 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:07,922 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:07,923 INFO L467 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 22 treesize of output 45 [2019-02-27 13:02:07,934 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 13:02:07,961 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:02:07,977 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:02:07,990 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:02:08,014 INFO L301 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:02:08,014 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-02-27 13:02:08,019 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:02:08,020 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_228|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_228| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:02:08,020 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:02:08,113 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:08,114 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:08,115 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:08,116 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:08,118 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:08,119 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:08,120 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:08,121 INFO L467 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-02-27 13:02:08,129 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:02:08,162 INFO L301 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-02-27 13:02:08,163 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-02-27 13:02:10,179 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:02:10,179 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_229|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_229| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= (select |v_#memory_int_229| ULTIMATE.start_main_p2) 0) (= (store |v_#memory_int_229| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= 0 (select |v_#memory_int_229| ULTIMATE.start_main_p3)) (= (select |v_#memory_int_229| ULTIMATE.start_main_p1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:02:10,179 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 13:02:10,368 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:10,370 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:10,371 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:10,372 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:10,374 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:10,375 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:10,377 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:10,378 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:10,379 INFO L467 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 47 [2019-02-27 13:02:10,387 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:02:10,420 INFO L301 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-02-27 13:02:10,420 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-02-27 13:02:10,447 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:02:10,448 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_230|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_230| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_230| ULTIMATE.start_main_p4) 1)) (= 0 .cse0) (= |#memory_int| (store |v_#memory_int_230| ULTIMATE.start_main_p1 (+ .cse0 1))) (= (select |v_#memory_int_230| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_230| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-02-27 13:02:10,448 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:02:10,543 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:10,544 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:10,546 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:10,547 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:10,549 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:10,550 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:10,551 INFO L158 IndexEqualityManager]: detected equality via solver [2019-02-27 13:02:10,551 INFO L467 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 47 [2019-02-27 13:02:10,557 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:02:10,587 INFO L301 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-02-27 13:02:10,587 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-02-27 13:02:10,599 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:02:10,599 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_231|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_231| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |v_#memory_int_231| ULTIMATE.start_main_p4) 1) 0) (= |#memory_int| (store |v_#memory_int_231| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= (select |v_#memory_int_231| ULTIMATE.start_main_p1) 1) (= (select |v_#memory_int_231| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-02-27 13:02:10,599 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:02:10,702 INFO L273 TraceCheckUtils]: 0: Hoare triple {20850#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {20859#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 13:02:10,703 INFO L273 TraceCheckUtils]: 1: Hoare triple {20859#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {20863#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 13:02:10,705 INFO L273 TraceCheckUtils]: 2: Hoare triple {20863#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {20867#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:02:10,707 INFO L273 TraceCheckUtils]: 3: Hoare triple {20867#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {20871#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-02-27 13:02:10,708 INFO L273 TraceCheckUtils]: 4: Hoare triple {20871#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p1] >= 0; {20871#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-02-27 13:02:10,709 INFO L273 TraceCheckUtils]: 5: Hoare triple {20871#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p2] <= 0; {20871#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-02-27 13:02:10,710 INFO L273 TraceCheckUtils]: 6: Hoare triple {20871#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume !(#memory_int[main_p3] >= 0); {20851#false} is VALID [2019-02-27 13:02:10,711 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:02:10,711 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 13:02:10,802 INFO L273 TraceCheckUtils]: 6: Hoare triple {20881#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {20851#false} is VALID [2019-02-27 13:02:10,803 INFO L273 TraceCheckUtils]: 5: Hoare triple {20881#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {20881#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:02:10,803 INFO L273 TraceCheckUtils]: 4: Hoare triple {20881#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {20881#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:02:10,804 INFO L273 TraceCheckUtils]: 3: Hoare triple {20891#(<= 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]; {20881#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:02:10,806 INFO L273 TraceCheckUtils]: 2: Hoare triple {20895#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {20891#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:02:10,809 INFO L273 TraceCheckUtils]: 1: Hoare triple {20899#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {20895#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:02:10,810 INFO L273 TraceCheckUtils]: 0: Hoare triple {20850#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {20899#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:02:10,810 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 1 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:02:10,828 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 13:02:10,829 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-02-27 13:02:10,829 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 13:02:10,829 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-02-27 13:02:10,829 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 13:02:10,829 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-02-27 13:02:10,851 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:02:10,852 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-02-27 13:02:10,852 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-02-27 13:02:10,852 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=66, Invalid=116, Unknown=0, NotChecked=0, Total=182 [2019-02-27 13:02:10,852 INFO L87 Difference]: Start difference. First operand 333 states and 1604 transitions. Second operand 10 states. [2019-02-27 13:02:20,851 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:02:20,851 INFO L93 Difference]: Finished difference Result 348 states and 1634 transitions. [2019-02-27 13:02:20,851 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-02-27 13:02:20,851 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-02-27 13:02:20,851 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 13:02:20,851 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-27 13:02:20,851 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 40 transitions. [2019-02-27 13:02:20,851 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-27 13:02:20,852 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 40 transitions. [2019-02-27 13:02:20,852 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 40 transitions. [2019-02-27 13:02:20,921 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 40 edges. 40 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:02:20,930 INFO L225 Difference]: With dead ends: 348 [2019-02-27 13:02:20,930 INFO L226 Difference]: Without dead ends: 343 [2019-02-27 13:02:20,931 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 21 GetRequests, 4 SyntacticMatches, 2 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 63 ImplicationChecksByTransitivity, 1.0s TimeCoverageRelationStatistics Valid=99, Invalid=173, Unknown=0, NotChecked=0, Total=272 [2019-02-27 13:02:20,931 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 343 states. [2019-02-27 13:02:30,549 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 343 to 334. [2019-02-27 13:02:30,549 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 13:02:30,549 INFO L82 GeneralOperation]: Start isEquivalent. First operand 343 states. Second operand 334 states. [2019-02-27 13:02:30,549 INFO L74 IsIncluded]: Start isIncluded. First operand 343 states. Second operand 334 states. [2019-02-27 13:02:30,549 INFO L87 Difference]: Start difference. First operand 343 states. Second operand 334 states. [2019-02-27 13:02:30,560 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:02:30,560 INFO L93 Difference]: Finished difference Result 343 states and 1623 transitions. [2019-02-27 13:02:30,560 INFO L276 IsEmpty]: Start isEmpty. Operand 343 states and 1623 transitions. [2019-02-27 13:02:30,560 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:02:30,561 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:02:30,561 INFO L74 IsIncluded]: Start isIncluded. First operand 334 states. Second operand 343 states. [2019-02-27 13:02:30,561 INFO L87 Difference]: Start difference. First operand 334 states. Second operand 343 states. [2019-02-27 13:02:30,570 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:02:30,570 INFO L93 Difference]: Finished difference Result 343 states and 1623 transitions. [2019-02-27 13:02:30,570 INFO L276 IsEmpty]: Start isEmpty. Operand 343 states and 1623 transitions. [2019-02-27 13:02:30,571 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:02:30,571 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:02:30,571 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 13:02:30,571 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 13:02:30,571 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 334 states. [2019-02-27 13:02:30,580 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 334 states to 334 states and 1603 transitions. [2019-02-27 13:02:30,580 INFO L78 Accepts]: Start accepts. Automaton has 334 states and 1603 transitions. Word has length 7 [2019-02-27 13:02:30,580 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 13:02:30,580 INFO L480 AbstractCegarLoop]: Abstraction has 334 states and 1603 transitions. [2019-02-27 13:02:30,580 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-02-27 13:02:30,580 INFO L276 IsEmpty]: Start isEmpty. Operand 334 states and 1603 transitions. [2019-02-27 13:02:30,581 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-02-27 13:02:30,581 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 13:02:30,581 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-02-27 13:02:30,581 INFO L423 AbstractCegarLoop]: === Iteration 43 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 13:02:30,581 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:02:30,581 INFO L82 PathProgramCache]: Analyzing trace with hash -2088122094, now seen corresponding path program 1 times [2019-02-27 13:02:30,581 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 13:02:30,582 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:02:30,582 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:02:30,582 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:02:30,582 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 13:02:30,586 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:02:30,983 INFO L273 TraceCheckUtils]: 0: Hoare triple {22917#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {22919#(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_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-02-27 13:02:30,985 INFO L273 TraceCheckUtils]: 1: Hoare triple {22919#(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_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {22920#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-02-27 13:02:30,986 INFO L273 TraceCheckUtils]: 2: Hoare triple {22920#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {22920#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-02-27 13:02:30,987 INFO L273 TraceCheckUtils]: 3: Hoare triple {22920#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {22921#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-02-27 13:02:30,988 INFO L273 TraceCheckUtils]: 4: Hoare triple {22921#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {22922#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (<= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-02-27 13:02:30,988 INFO L273 TraceCheckUtils]: 5: Hoare triple {22922#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (<= (select |#memory_int| ULTIMATE.start_main_p2) 0))} assume #memory_int[main_p1] >= 0; {22923#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 13:02:30,989 INFO L273 TraceCheckUtils]: 6: Hoare triple {22923#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {22918#false} is VALID [2019-02-27 13:02:30,989 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 9 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-02-27 13:02:30,990 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:02:30,990 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 13:02:30,990 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-02-27 13:02:30,990 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [14], [16], [20], [21] [2019-02-27 13:02:30,993 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 13:02:30,993 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 13:02:31,004 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 13:02:31,004 INFO L272 AbstractInterpreter]: Visited 7 different actions 7 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 3. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 4 fixpoints after 4 different actions. Largest state had 0 variables. [2019-02-27 13:02:31,004 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:02:31,004 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 13:02:31,004 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:02:31,004 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-02-27 13:02:31,014 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:02:31,014 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 13:02:31,019 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:02:31,020 INFO L256 TraceCheckSpWp]: Trace formula consists of 24 conjuncts, 9 conjunts are in the unsatisfiable core [2019-02-27 13:02:31,026 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:02:31,026 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 13:02:31,054 INFO L467 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 15 treesize of output 18 [2019-02-27 13:02:31,065 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:31,066 INFO L467 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 18 treesize of output 24 [2019-02-27 13:02:31,081 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:31,082 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:31,083 INFO L467 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 20 treesize of output 34 [2019-02-27 13:02:31,107 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:31,109 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:31,110 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:31,111 INFO L467 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 22 treesize of output 45 [2019-02-27 13:02:31,117 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 13:02:31,137 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:02:31,149 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:02:31,160 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:02:31,176 INFO L301 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:02:31,177 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-02-27 13:02:31,183 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:02:31,183 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_235|]. (and (= (store (store (store (store |v_#memory_int_235| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:02:31,183 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:02:31,254 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:31,255 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:31,256 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:31,258 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:31,259 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:31,260 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:31,261 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:31,262 INFO L467 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-02-27 13:02:31,269 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:02:31,300 INFO L301 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-02-27 13:02:31,300 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-02-27 13:02:33,335 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:02:33,336 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_236|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_236| ULTIMATE.start_main_p4))) (and (= .cse0 0) (= (store |v_#memory_int_236| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_236| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_236| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_236| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:02:33,336 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 13:02:33,440 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:33,442 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:33,444 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:33,446 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:33,448 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:33,450 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:33,451 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:33,453 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:33,454 INFO L467 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 47 [2019-02-27 13:02:33,463 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:02:33,504 INFO L301 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-02-27 13:02:33,504 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-02-27 13:02:33,582 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:02:33,583 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_237|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_237| ULTIMATE.start_main_p1))) (and (= 0 (+ (select |v_#memory_int_237| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_237| ULTIMATE.start_main_p1 (+ .cse0 1))) (= 0 .cse0) (= 0 (select |v_#memory_int_237| ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_237| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-02-27 13:02:33,583 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:02:33,704 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:33,706 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:33,708 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:33,710 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:33,712 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:33,715 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:33,717 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:33,719 INFO L158 IndexEqualityManager]: detected equality via solver [2019-02-27 13:02:33,719 INFO L467 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 47 [2019-02-27 13:02:33,729 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:02:33,785 INFO L301 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-02-27 13:02:33,785 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-02-27 13:02:35,795 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:02:35,796 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_238|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_238| ULTIMATE.start_main_p3))) (and (= 0 .cse0) (= 0 (select |v_#memory_int_238| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |v_#memory_int_238| ULTIMATE.start_main_p1)) (= (store |v_#memory_int_238| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= 0 (+ (select |v_#memory_int_238| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-02-27 13:02:35,796 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:02:35,883 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:35,884 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:35,886 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:35,887 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:35,888 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:35,890 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:02:35,890 INFO L158 IndexEqualityManager]: detected equality via solver [2019-02-27 13:02:35,891 INFO L467 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 47 [2019-02-27 13:02:35,899 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:02:35,936 INFO L301 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-02-27 13:02:35,936 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-02-27 13:02:35,947 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:02:35,947 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_239|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_239| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_239| ULTIMATE.start_main_p3) 1) (= 0 (+ (select |v_#memory_int_239| ULTIMATE.start_main_p4) 1)) (= 1 (select |v_#memory_int_239| ULTIMATE.start_main_p1)) (= .cse0 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= |#memory_int| (store |v_#memory_int_239| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))))) [2019-02-27 13:02:35,948 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:02:36,020 INFO L273 TraceCheckUtils]: 0: Hoare triple {22917#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {22927#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 13:02:36,022 INFO L273 TraceCheckUtils]: 1: Hoare triple {22927#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {22931#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 13:02:36,024 INFO L273 TraceCheckUtils]: 2: Hoare triple {22931#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {22935#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:02:36,027 INFO L273 TraceCheckUtils]: 3: Hoare triple {22935#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {22939#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-02-27 13:02:36,029 INFO L273 TraceCheckUtils]: 4: Hoare triple {22939#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {22943#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-02-27 13:02:36,030 INFO L273 TraceCheckUtils]: 5: Hoare triple {22943#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume #memory_int[main_p1] >= 0; {22943#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-02-27 13:02:36,031 INFO L273 TraceCheckUtils]: 6: Hoare triple {22943#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume !(#memory_int[main_p2] <= 0); {22918#false} is VALID [2019-02-27 13:02:36,032 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:02:36,032 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 13:02:36,148 INFO L273 TraceCheckUtils]: 6: Hoare triple {22923#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {22918#false} is VALID [2019-02-27 13:02:36,149 INFO L273 TraceCheckUtils]: 5: Hoare triple {22923#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {22923#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 13:02:36,149 INFO L273 TraceCheckUtils]: 4: Hoare triple {22956#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {22923#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 13:02:36,150 INFO L273 TraceCheckUtils]: 3: Hoare triple {22960#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {22956#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} is VALID [2019-02-27 13:02:36,151 INFO L273 TraceCheckUtils]: 2: Hoare triple {22964#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {22960#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1)} is VALID [2019-02-27 13:02:36,153 INFO L273 TraceCheckUtils]: 1: Hoare triple {22968#(<= (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) 1)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {22964#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1)} is VALID [2019-02-27 13:02:36,156 INFO L273 TraceCheckUtils]: 0: Hoare triple {22917#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {22968#(<= (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) 1)} is VALID [2019-02-27 13:02:36,156 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 3 proven. 7 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:02:36,177 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 13:02:36,177 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5, 5] total 14 [2019-02-27 13:02:36,177 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 13:02:36,177 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 7 [2019-02-27 13:02:36,177 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 13:02:36,178 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-02-27 13:02:36,200 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:02:36,200 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-02-27 13:02:36,201 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-02-27 13:02:36,201 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=91, Invalid=149, Unknown=0, NotChecked=0, Total=240 [2019-02-27 13:02:36,201 INFO L87 Difference]: Start difference. First operand 334 states and 1603 transitions. Second operand 12 states. [2019-02-27 13:02:49,912 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:02:49,913 INFO L93 Difference]: Finished difference Result 457 states and 2102 transitions. [2019-02-27 13:02:49,913 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2019-02-27 13:02:49,913 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 7 [2019-02-27 13:02:49,913 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 13:02:49,913 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-02-27 13:02:49,913 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 62 transitions. [2019-02-27 13:02:49,914 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-02-27 13:02:49,914 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 62 transitions. [2019-02-27 13:02:49,914 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 62 transitions. [2019-02-27 13:02:50,019 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 62 edges. 62 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:02:50,033 INFO L225 Difference]: With dead ends: 457 [2019-02-27 13:02:50,034 INFO L226 Difference]: Without dead ends: 456 [2019-02-27 13:02:50,034 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 22 GetRequests, 3 SyntacticMatches, 1 SemanticMatches, 18 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 82 ImplicationChecksByTransitivity, 0.8s TimeCoverageRelationStatistics Valid=136, Invalid=244, Unknown=0, NotChecked=0, Total=380 [2019-02-27 13:02:50,034 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 456 states. [2019-02-27 13:02:59,487 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 456 to 329. [2019-02-27 13:02:59,488 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 13:02:59,488 INFO L82 GeneralOperation]: Start isEquivalent. First operand 456 states. Second operand 329 states. [2019-02-27 13:02:59,488 INFO L74 IsIncluded]: Start isIncluded. First operand 456 states. Second operand 329 states. [2019-02-27 13:02:59,488 INFO L87 Difference]: Start difference. First operand 456 states. Second operand 329 states. [2019-02-27 13:02:59,505 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:02:59,505 INFO L93 Difference]: Finished difference Result 456 states and 2098 transitions. [2019-02-27 13:02:59,505 INFO L276 IsEmpty]: Start isEmpty. Operand 456 states and 2098 transitions. [2019-02-27 13:02:59,506 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:02:59,506 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:02:59,507 INFO L74 IsIncluded]: Start isIncluded. First operand 329 states. Second operand 456 states. [2019-02-27 13:02:59,507 INFO L87 Difference]: Start difference. First operand 329 states. Second operand 456 states. [2019-02-27 13:02:59,528 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:02:59,528 INFO L93 Difference]: Finished difference Result 456 states and 2098 transitions. [2019-02-27 13:02:59,528 INFO L276 IsEmpty]: Start isEmpty. Operand 456 states and 2098 transitions. [2019-02-27 13:02:59,529 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:02:59,529 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:02:59,529 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 13:02:59,530 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 13:02:59,530 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 329 states. [2019-02-27 13:02:59,541 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 329 states to 329 states and 1582 transitions. [2019-02-27 13:02:59,542 INFO L78 Accepts]: Start accepts. Automaton has 329 states and 1582 transitions. Word has length 7 [2019-02-27 13:02:59,542 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 13:02:59,542 INFO L480 AbstractCegarLoop]: Abstraction has 329 states and 1582 transitions. [2019-02-27 13:02:59,542 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-02-27 13:02:59,542 INFO L276 IsEmpty]: Start isEmpty. Operand 329 states and 1582 transitions. [2019-02-27 13:02:59,543 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-02-27 13:02:59,543 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 13:02:59,543 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-02-27 13:02:59,543 INFO L423 AbstractCegarLoop]: === Iteration 44 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 13:02:59,543 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:02:59,544 INFO L82 PathProgramCache]: Analyzing trace with hash -2084662494, now seen corresponding path program 2 times [2019-02-27 13:02:59,544 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 13:02:59,544 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:02:59,544 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:02:59,544 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:02:59,545 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 13:02:59,548 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:02:59,936 INFO L273 TraceCheckUtils]: 0: Hoare triple {25401#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {25403#(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-02-27 13:02:59,937 INFO L273 TraceCheckUtils]: 1: Hoare triple {25403#(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]; {25404#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-02-27 13:02:59,938 INFO L273 TraceCheckUtils]: 2: Hoare triple {25404#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {25405#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-02-27 13:02:59,939 INFO L273 TraceCheckUtils]: 3: Hoare triple {25405#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {25405#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-02-27 13:02:59,940 INFO L273 TraceCheckUtils]: 4: Hoare triple {25405#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {25406#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-02-27 13:02:59,940 INFO L273 TraceCheckUtils]: 5: Hoare triple {25406#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume #memory_int[main_p1] >= 0; {25406#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-02-27 13:02:59,940 INFO L273 TraceCheckUtils]: 6: Hoare triple {25406#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume !(#memory_int[main_p2] <= 0); {25402#false} is VALID [2019-02-27 13:02:59,941 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 9 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-02-27 13:02:59,941 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:02:59,941 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 13:02:59,942 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-02-27 13:02:59,942 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-02-27 13:02:59,942 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:02:59,942 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-02-27 13:02:59,951 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-02-27 13:02:59,951 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-02-27 13:02:59,961 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-02-27 13:02:59,962 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-02-27 13:02:59,962 INFO L256 TraceCheckSpWp]: Trace formula consists of 24 conjuncts, 9 conjunts are in the unsatisfiable core [2019-02-27 13:02:59,968 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:02:59,968 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 13:02:59,999 INFO L467 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 15 treesize of output 18 [2019-02-27 13:03:00,008 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:00,009 INFO L467 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 18 treesize of output 24 [2019-02-27 13:03:00,025 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:00,026 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:00,027 INFO L467 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 20 treesize of output 34 [2019-02-27 13:03:00,047 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:00,048 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:00,050 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:00,051 INFO L467 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 22 treesize of output 45 [2019-02-27 13:03:00,061 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 13:03:00,080 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:03:00,092 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:03:00,103 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:03:00,119 INFO L301 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:03:00,119 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-02-27 13:03:00,125 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:03:00,125 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_244|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (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_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:03:00,125 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:03:00,200 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:00,201 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:00,202 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:00,203 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:00,204 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:00,205 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:00,207 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:00,208 INFO L467 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-02-27 13:03:00,215 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:03:00,246 INFO L301 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-02-27 13:03:00,247 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-02-27 13:03:02,261 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:03:02,261 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_245|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_245| ULTIMATE.start_main_p4))) (and (= 0 .cse0) (= (store |v_#memory_int_245| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_245| ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_245| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_245| ULTIMATE.start_main_p3) 0))) [2019-02-27 13:03:02,261 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 13:03:02,350 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:02,351 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:02,353 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:02,354 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:02,355 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:02,357 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:02,357 INFO L158 IndexEqualityManager]: detected equality via solver [2019-02-27 13:03:02,358 INFO L467 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 47 [2019-02-27 13:03:02,364 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:03:02,394 INFO L301 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-02-27 13:03:02,394 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:42, output treesize:32 [2019-02-27 13:03:02,407 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:03:02,407 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_246|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_246| ULTIMATE.start_main_p2))) (and (= 0 (+ (select |v_#memory_int_246| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_246| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= 0 .cse0) (= (select |v_#memory_int_246| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_246| ULTIMATE.start_main_p1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:03:02,407 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 13:03:02,483 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:02,485 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:02,486 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:02,487 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:02,488 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:02,490 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:02,491 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:02,492 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:02,493 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 49 [2019-02-27 13:03:02,500 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:03:02,530 INFO L301 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-02-27 13:03:02,530 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:44, output treesize:34 [2019-02-27 13:03:02,555 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:03:02,556 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_247|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_247| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_247| ULTIMATE.start_main_p2) 1)) (= .cse0 0) (= (+ (select |v_#memory_int_247| ULTIMATE.start_main_p4) 1) 0) (= (store |v_#memory_int_247| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= (select |v_#memory_int_247| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-02-27 13:03:02,556 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-02-27 13:03:02,629 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:02,630 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:02,632 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:02,633 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:02,634 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:02,635 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:02,637 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:02,637 INFO L158 IndexEqualityManager]: detected equality via solver [2019-02-27 13:03:02,638 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 49 [2019-02-27 13:03:02,645 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:03:02,679 INFO L301 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-02-27 13:03:02,680 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:44, output treesize:34 [2019-02-27 13:03:02,691 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:03:02,692 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_248|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_248| ULTIMATE.start_main_p3))) (and (= (+ (select |v_#memory_int_248| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= (store |v_#memory_int_248| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= (+ (select |v_#memory_int_248| ULTIMATE.start_main_p2) 1) 0) (= 1 (select |v_#memory_int_248| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-02-27 13:03:02,692 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-02-27 13:03:02,762 INFO L273 TraceCheckUtils]: 0: Hoare triple {25401#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {25410#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 13:03:02,764 INFO L273 TraceCheckUtils]: 1: Hoare triple {25410#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {25414#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 13:03:02,766 INFO L273 TraceCheckUtils]: 2: Hoare triple {25414#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {25418#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 13:03:02,768 INFO L273 TraceCheckUtils]: 3: Hoare triple {25418#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {25422#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-02-27 13:03:02,770 INFO L273 TraceCheckUtils]: 4: Hoare triple {25422#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {25426#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-02-27 13:03:02,771 INFO L273 TraceCheckUtils]: 5: Hoare triple {25426#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume #memory_int[main_p1] >= 0; {25426#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-02-27 13:03:02,772 INFO L273 TraceCheckUtils]: 6: Hoare triple {25426#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume !(#memory_int[main_p2] <= 0); {25402#false} is VALID [2019-02-27 13:03:02,773 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:03:02,773 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 13:03:02,906 INFO L273 TraceCheckUtils]: 6: Hoare triple {25433#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {25402#false} is VALID [2019-02-27 13:03:02,907 INFO L273 TraceCheckUtils]: 5: Hoare triple {25433#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {25433#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 13:03:02,908 INFO L273 TraceCheckUtils]: 4: Hoare triple {25440#(<= (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]; {25433#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 13:03:02,909 INFO L273 TraceCheckUtils]: 3: Hoare triple {25444#(<= (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]; {25440#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 13:03:02,911 INFO L273 TraceCheckUtils]: 2: Hoare triple {25448#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {25444#(<= (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-02-27 13:03:02,914 INFO L273 TraceCheckUtils]: 1: Hoare triple {25452#(<= (select (store (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_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_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 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {25448#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 13:03:02,916 INFO L273 TraceCheckUtils]: 0: Hoare triple {25401#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {25452#(<= (select (store (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_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_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 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-02-27 13:03:02,917 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 5 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:03:02,938 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 13:03:02,938 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 5, 5] total 14 [2019-02-27 13:03:02,938 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 13:03:02,938 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 7 [2019-02-27 13:03:02,939 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 13:03:02,939 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states. [2019-02-27 13:03:02,963 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:03:02,963 INFO L459 AbstractCegarLoop]: Interpolant automaton has 11 states [2019-02-27 13:03:02,963 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2019-02-27 13:03:02,963 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=89, Invalid=151, Unknown=0, NotChecked=0, Total=240 [2019-02-27 13:03:02,964 INFO L87 Difference]: Start difference. First operand 329 states and 1582 transitions. Second operand 11 states. [2019-02-27 13:03:13,483 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:03:13,483 INFO L93 Difference]: Finished difference Result 346 states and 1608 transitions. [2019-02-27 13:03:13,483 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-02-27 13:03:13,484 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 7 [2019-02-27 13:03:13,484 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 13:03:13,484 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2019-02-27 13:03:13,484 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 47 transitions. [2019-02-27 13:03:13,484 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2019-02-27 13:03:13,484 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 47 transitions. [2019-02-27 13:03:13,484 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 47 transitions. [2019-02-27 13:03:13,573 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 47 edges. 47 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:03:13,583 INFO L225 Difference]: With dead ends: 346 [2019-02-27 13:03:13,583 INFO L226 Difference]: Without dead ends: 345 [2019-02-27 13:03:13,583 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 21 GetRequests, 3 SyntacticMatches, 1 SemanticMatches, 17 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 90 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=119, Invalid=223, Unknown=0, NotChecked=0, Total=342 [2019-02-27 13:03:13,584 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 345 states. [2019-02-27 13:03:19,737 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 345 to 213. [2019-02-27 13:03:19,737 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 13:03:19,737 INFO L82 GeneralOperation]: Start isEquivalent. First operand 345 states. Second operand 213 states. [2019-02-27 13:03:19,737 INFO L74 IsIncluded]: Start isIncluded. First operand 345 states. Second operand 213 states. [2019-02-27 13:03:19,737 INFO L87 Difference]: Start difference. First operand 345 states. Second operand 213 states. [2019-02-27 13:03:19,749 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:03:19,749 INFO L93 Difference]: Finished difference Result 345 states and 1604 transitions. [2019-02-27 13:03:19,749 INFO L276 IsEmpty]: Start isEmpty. Operand 345 states and 1604 transitions. [2019-02-27 13:03:19,750 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:03:19,750 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:03:19,750 INFO L74 IsIncluded]: Start isIncluded. First operand 213 states. Second operand 345 states. [2019-02-27 13:03:19,750 INFO L87 Difference]: Start difference. First operand 213 states. Second operand 345 states. [2019-02-27 13:03:19,759 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:03:19,759 INFO L93 Difference]: Finished difference Result 345 states and 1604 transitions. [2019-02-27 13:03:19,759 INFO L276 IsEmpty]: Start isEmpty. Operand 345 states and 1604 transitions. [2019-02-27 13:03:19,760 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:03:19,760 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:03:19,760 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 13:03:19,760 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 13:03:19,760 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 213 states. [2019-02-27 13:03:19,765 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 213 states to 213 states and 1003 transitions. [2019-02-27 13:03:19,765 INFO L78 Accepts]: Start accepts. Automaton has 213 states and 1003 transitions. Word has length 7 [2019-02-27 13:03:19,765 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 13:03:19,765 INFO L480 AbstractCegarLoop]: Abstraction has 213 states and 1003 transitions. [2019-02-27 13:03:19,765 INFO L481 AbstractCegarLoop]: Interpolant automaton has 11 states. [2019-02-27 13:03:19,765 INFO L276 IsEmpty]: Start isEmpty. Operand 213 states and 1003 transitions. [2019-02-27 13:03:19,765 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-02-27 13:03:19,766 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 13:03:19,766 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-02-27 13:03:19,766 INFO L423 AbstractCegarLoop]: === Iteration 45 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 13:03:19,766 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:03:19,766 INFO L82 PathProgramCache]: Analyzing trace with hash -2084418336, now seen corresponding path program 1 times [2019-02-27 13:03:19,766 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 13:03:19,767 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:03:19,767 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-02-27 13:03:19,767 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:03:19,767 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 13:03:19,771 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:03:19,983 INFO L273 TraceCheckUtils]: 0: Hoare triple {27229#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {27231#(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_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)))} is VALID [2019-02-27 13:03:19,984 INFO L273 TraceCheckUtils]: 1: Hoare triple {27231#(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_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {27232#(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-02-27 13:03:19,985 INFO L273 TraceCheckUtils]: 2: Hoare triple {27232#(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]; {27232#(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-02-27 13:03:19,986 INFO L273 TraceCheckUtils]: 3: Hoare triple {27232#(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_p3 := #memory_int[main_p3] + 1]; {27233#(and (<= 0 (select |#memory_int| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)))} is VALID [2019-02-27 13:03:19,987 INFO L273 TraceCheckUtils]: 4: Hoare triple {27233#(and (<= 0 (select |#memory_int| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)))} assume #memory_int[main_p1] >= 0; {27233#(and (<= 0 (select |#memory_int| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)))} is VALID [2019-02-27 13:03:19,988 INFO L273 TraceCheckUtils]: 5: Hoare triple {27233#(and (<= 0 (select |#memory_int| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)))} assume #memory_int[main_p2] <= 0; {27234#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:03:19,989 INFO L273 TraceCheckUtils]: 6: Hoare triple {27234#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {27230#false} is VALID [2019-02-27 13:03:19,990 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-02-27 13:03:19,990 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:03:19,990 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 13:03:19,990 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-02-27 13:03:19,991 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [16], [20], [22], [23] [2019-02-27 13:03:19,992 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 13:03:19,992 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 13:03:20,004 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 13:03:20,004 INFO L272 AbstractInterpreter]: Visited 7 different actions 7 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 3. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-02-27 13:03:20,004 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:03:20,005 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 13:03:20,005 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:03:20,005 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-02-27 13:03:20,015 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:03:20,015 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 13:03:20,020 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:03:20,020 INFO L256 TraceCheckSpWp]: Trace formula consists of 24 conjuncts, 7 conjunts are in the unsatisfiable core [2019-02-27 13:03:20,023 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:03:20,023 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 13:03:20,046 INFO L467 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 15 treesize of output 18 [2019-02-27 13:03:20,056 INFO L467 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 18 treesize of output 20 [2019-02-27 13:03:20,069 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:20,070 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 26 [2019-02-27 13:03:20,088 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:20,089 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:20,090 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 33 [2019-02-27 13:03:20,099 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 13:03:20,113 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:03:20,123 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:03:20,134 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:03:20,150 INFO L301 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-02-27 13:03:20,150 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:22, output treesize:27 [2019-02-27 13:03:20,156 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:03:20,157 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_253|, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_253| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:03:20,157 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:03:20,220 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:20,221 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:20,223 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:20,224 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:20,225 INFO L467 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-02-27 13:03:20,230 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:03:20,249 INFO L301 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-02-27 13:03:20,250 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:22 [2019-02-27 13:03:22,267 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:03:22,267 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_254|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_254| ULTIMATE.start_main_p4))) (and (= (select |v_#memory_int_254| ULTIMATE.start_main_p3) 0) (= (store |v_#memory_int_254| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (select |v_#memory_int_254| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-02-27 13:03:22,267 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:03:22,329 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:22,330 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:22,331 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:22,332 INFO L158 IndexEqualityManager]: detected equality via solver [2019-02-27 13:03:22,333 INFO L467 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 30 [2019-02-27 13:03:22,344 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:03:22,365 INFO L301 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-02-27 13:03:22,365 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:34, output treesize:24 [2019-02-27 13:03:22,392 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:03:22,392 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_255|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_255| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= (store |v_#memory_int_255| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= 0 (select |v_#memory_int_255| ULTIMATE.start_main_p3)) (= (+ (select |v_#memory_int_255| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-02-27 13:03:22,392 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:03:22,447 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:22,448 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:22,450 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:22,451 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:22,452 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:22,453 INFO L467 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 30 treesize of output 32 [2019-02-27 13:03:22,458 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:03:22,478 INFO L301 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-02-27 13:03:22,478 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:36, output treesize:26 [2019-02-27 13:03:22,486 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:03:22,486 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_256|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_256| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_256| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= |#memory_int| (store |v_#memory_int_256| ULTIMATE.start_main_p3 (+ .cse0 1))) (= 0 (+ (select |v_#memory_int_256| ULTIMATE.start_main_p4) 1)) (= .cse0 0))) [2019-02-27 13:03:22,487 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:03:22,583 INFO L273 TraceCheckUtils]: 0: Hoare triple {27229#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {27238#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:03:22,584 INFO L273 TraceCheckUtils]: 1: Hoare triple {27238#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {27242#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:03:22,586 INFO L273 TraceCheckUtils]: 2: Hoare triple {27242#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {27246#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-02-27 13:03:22,588 INFO L273 TraceCheckUtils]: 3: Hoare triple {27246#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {27250#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-02-27 13:03:22,589 INFO L273 TraceCheckUtils]: 4: Hoare triple {27250#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p1] >= 0; {27250#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-02-27 13:03:22,609 INFO L273 TraceCheckUtils]: 5: Hoare triple {27250#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p2] <= 0; {27250#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-02-27 13:03:22,610 INFO L273 TraceCheckUtils]: 6: Hoare triple {27250#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume !(#memory_int[main_p3] >= 0); {27230#false} is VALID [2019-02-27 13:03:22,610 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:03:22,611 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 13:03:22,680 INFO L273 TraceCheckUtils]: 6: Hoare triple {27234#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {27230#false} is VALID [2019-02-27 13:03:22,680 INFO L273 TraceCheckUtils]: 5: Hoare triple {27234#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {27234#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:03:22,681 INFO L273 TraceCheckUtils]: 4: Hoare triple {27234#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {27234#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:03:22,682 INFO L273 TraceCheckUtils]: 3: Hoare triple {27269#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {27234#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:03:22,683 INFO L273 TraceCheckUtils]: 2: Hoare triple {27273#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {27269#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1))} is VALID [2019-02-27 13:03:22,684 INFO L273 TraceCheckUtils]: 1: Hoare triple {27277#(<= 0 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {27273#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1))} is VALID [2019-02-27 13:03:22,686 INFO L273 TraceCheckUtils]: 0: Hoare triple {27229#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {27277#(<= 0 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1))} is VALID [2019-02-27 13:03:22,687 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 2 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:03:22,707 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 13:03:22,707 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-02-27 13:03:22,708 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 13:03:22,708 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-02-27 13:03:22,708 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 13:03:22,708 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-02-27 13:03:22,727 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:03:22,728 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-02-27 13:03:22,728 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-02-27 13:03:22,728 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=63, Invalid=93, Unknown=0, NotChecked=0, Total=156 [2019-02-27 13:03:22,728 INFO L87 Difference]: Start difference. First operand 213 states and 1003 transitions. Second operand 10 states. [2019-02-27 13:03:31,389 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:03:31,389 INFO L93 Difference]: Finished difference Result 280 states and 1278 transitions. [2019-02-27 13:03:31,389 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-02-27 13:03:31,389 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-02-27 13:03:31,389 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 13:03:31,389 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-27 13:03:31,390 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 45 transitions. [2019-02-27 13:03:31,390 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-27 13:03:31,390 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 45 transitions. [2019-02-27 13:03:31,390 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 45 transitions. [2019-02-27 13:03:31,458 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 45 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:03:31,465 INFO L225 Difference]: With dead ends: 280 [2019-02-27 13:03:31,465 INFO L226 Difference]: Without dead ends: 277 [2019-02-27 13:03:31,465 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 20 GetRequests, 5 SyntacticMatches, 1 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 51 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=91, Invalid=149, Unknown=0, NotChecked=0, Total=240 [2019-02-27 13:03:31,466 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 277 states. [2019-02-27 13:03:38,948 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 277 to 242. [2019-02-27 13:03:38,948 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 13:03:38,948 INFO L82 GeneralOperation]: Start isEquivalent. First operand 277 states. Second operand 242 states. [2019-02-27 13:03:38,948 INFO L74 IsIncluded]: Start isIncluded. First operand 277 states. Second operand 242 states. [2019-02-27 13:03:38,949 INFO L87 Difference]: Start difference. First operand 277 states. Second operand 242 states. [2019-02-27 13:03:38,959 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:03:38,960 INFO L93 Difference]: Finished difference Result 277 states and 1273 transitions. [2019-02-27 13:03:38,960 INFO L276 IsEmpty]: Start isEmpty. Operand 277 states and 1273 transitions. [2019-02-27 13:03:38,961 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:03:38,961 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:03:38,961 INFO L74 IsIncluded]: Start isIncluded. First operand 242 states. Second operand 277 states. [2019-02-27 13:03:38,961 INFO L87 Difference]: Start difference. First operand 242 states. Second operand 277 states. [2019-02-27 13:03:38,971 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:03:38,971 INFO L93 Difference]: Finished difference Result 277 states and 1273 transitions. [2019-02-27 13:03:38,971 INFO L276 IsEmpty]: Start isEmpty. Operand 277 states and 1273 transitions. [2019-02-27 13:03:38,972 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:03:38,972 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:03:38,972 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 13:03:38,972 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 13:03:38,972 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 242 states. [2019-02-27 13:03:38,980 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 242 states to 242 states and 1141 transitions. [2019-02-27 13:03:38,980 INFO L78 Accepts]: Start accepts. Automaton has 242 states and 1141 transitions. Word has length 7 [2019-02-27 13:03:38,980 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 13:03:38,980 INFO L480 AbstractCegarLoop]: Abstraction has 242 states and 1141 transitions. [2019-02-27 13:03:38,980 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-02-27 13:03:38,980 INFO L276 IsEmpty]: Start isEmpty. Operand 242 states and 1141 transitions. [2019-02-27 13:03:38,981 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-02-27 13:03:38,981 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 13:03:38,981 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-02-27 13:03:38,981 INFO L423 AbstractCegarLoop]: === Iteration 46 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 13:03:38,981 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:03:38,982 INFO L82 PathProgramCache]: Analyzing trace with hash -2080543520, now seen corresponding path program 1 times [2019-02-27 13:03:38,982 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 13:03:38,982 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:03:38,982 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:03:38,983 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:03:38,983 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 13:03:38,985 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:03:39,132 INFO L273 TraceCheckUtils]: 0: Hoare triple {28849#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {28851#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:03:39,133 INFO L273 TraceCheckUtils]: 1: Hoare triple {28851#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {28852#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-02-27 13:03:39,134 INFO L273 TraceCheckUtils]: 2: Hoare triple {28852#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 1) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {28853#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:03:39,135 INFO L273 TraceCheckUtils]: 3: Hoare triple {28853#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p1] >= 0; {28853#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:03:39,135 INFO L273 TraceCheckUtils]: 4: Hoare triple {28853#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p2] <= 0; {28853#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:03:39,136 INFO L273 TraceCheckUtils]: 5: Hoare triple {28853#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p3] >= 0; {28854#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:03:39,136 INFO L273 TraceCheckUtils]: 6: Hoare triple {28854#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {28850#false} is VALID [2019-02-27 13:03:39,137 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:03:39,137 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:03:39,137 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 13:03:39,137 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-02-27 13:03:39,138 INFO L207 CegarAbsIntRunner]: [0], [14], [16], [20], [22], [24], [25] [2019-02-27 13:03:39,140 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 13:03:39,140 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 13:03:39,156 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 13:03:39,156 INFO L272 AbstractInterpreter]: Visited 7 different actions 7 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 3. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-02-27 13:03:39,156 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:03:39,156 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 13:03:39,157 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:03:39,157 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 44 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 44 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-27 13:03:39,171 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:03:39,171 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 13:03:39,175 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:03:39,175 INFO L256 TraceCheckSpWp]: Trace formula consists of 24 conjuncts, 5 conjunts are in the unsatisfiable core [2019-02-27 13:03:39,178 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:03:39,179 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 13:03:39,199 INFO L467 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 15 treesize of output 18 [2019-02-27 13:03:39,209 INFO L467 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 18 treesize of output 20 [2019-02-27 13:03:39,230 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-02-27 13:03:39,245 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:39,246 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 1 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 25 [2019-02-27 13:03:39,252 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 13:03:39,264 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:03:39,275 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:03:39,285 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:03:39,298 INFO L301 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-02-27 13:03:39,298 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:19, output treesize:24 [2019-02-27 13:03:39,303 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:03:39,303 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_260|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_260| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0))) [2019-02-27 13:03:39,304 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:03:39,348 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:39,349 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:39,350 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 15 [2019-02-27 13:03:39,353 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:03:39,362 INFO L301 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:03:39,362 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:24, output treesize:14 [2019-02-27 13:03:39,370 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:03:39,370 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_261|]. (let ((.cse0 (select |v_#memory_int_261| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_261| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= 0 (select |v_#memory_int_261| ULTIMATE.start_main_p3)) (= 0 .cse0))) [2019-02-27 13:03:39,370 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-02-27 13:03:39,409 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:39,410 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:39,411 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:03:39,412 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 4 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 17 [2019-02-27 13:03:39,416 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:03:39,426 INFO L301 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-02-27 13:03:39,426 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:26, output treesize:16 [2019-02-27 13:03:39,444 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:03:39,444 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_262|, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_262| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_262| ULTIMATE.start_main_p3 (+ .cse0 1))) (= 0 (+ (select |v_#memory_int_262| ULTIMATE.start_main_p4) 1)) (= .cse0 0))) [2019-02-27 13:03:39,444 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) [2019-02-27 13:03:39,511 INFO L273 TraceCheckUtils]: 0: Hoare triple {28849#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {28858#(and (< 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-02-27 13:03:39,512 INFO L273 TraceCheckUtils]: 1: Hoare triple {28858#(and (< 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]; {28862#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-02-27 13:03:39,513 INFO L273 TraceCheckUtils]: 2: Hoare triple {28862#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {28866#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1))))} is VALID [2019-02-27 13:03:39,514 INFO L273 TraceCheckUtils]: 3: Hoare triple {28866#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1))))} assume #memory_int[main_p1] >= 0; {28866#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1))))} is VALID [2019-02-27 13:03:39,515 INFO L273 TraceCheckUtils]: 4: Hoare triple {28866#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1))))} assume #memory_int[main_p2] <= 0; {28866#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1))))} is VALID [2019-02-27 13:03:39,516 INFO L273 TraceCheckUtils]: 5: Hoare triple {28866#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1))))} assume #memory_int[main_p3] >= 0; {28866#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1))))} is VALID [2019-02-27 13:03:39,516 INFO L273 TraceCheckUtils]: 6: Hoare triple {28866#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1))))} assume !(#memory_int[main_p4] <= 0); {28850#false} is VALID [2019-02-27 13:03:39,517 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:03:39,517 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 13:03:39,564 INFO L273 TraceCheckUtils]: 6: Hoare triple {28854#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {28850#false} is VALID [2019-02-27 13:03:39,565 INFO L273 TraceCheckUtils]: 5: Hoare triple {28854#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {28854#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:03:39,565 INFO L273 TraceCheckUtils]: 4: Hoare triple {28854#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {28854#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:03:39,566 INFO L273 TraceCheckUtils]: 3: Hoare triple {28854#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {28854#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:03:39,567 INFO L273 TraceCheckUtils]: 2: Hoare triple {28891#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {28854#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:03:39,568 INFO L273 TraceCheckUtils]: 1: Hoare triple {28895#(<= (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_p4) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {28891#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:03:39,570 INFO L273 TraceCheckUtils]: 0: Hoare triple {28849#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {28895#(<= (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_p4) 0)} is VALID [2019-02-27 13:03:39,570 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:03:39,590 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 13:03:39,591 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 3, 3] total 9 [2019-02-27 13:03:39,591 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 13:03:39,591 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 7 [2019-02-27 13:03:39,591 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 13:03:39,591 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states. [2019-02-27 13:03:39,610 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:03:39,610 INFO L459 AbstractCegarLoop]: Interpolant automaton has 9 states [2019-02-27 13:03:39,610 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2019-02-27 13:03:39,611 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=46, Invalid=64, Unknown=0, NotChecked=0, Total=110 [2019-02-27 13:03:39,611 INFO L87 Difference]: Start difference. First operand 242 states and 1141 transitions. Second operand 9 states. [2019-02-27 13:03:51,329 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:03:51,329 INFO L93 Difference]: Finished difference Result 390 states and 1798 transitions. [2019-02-27 13:03:51,329 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-02-27 13:03:51,329 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 7 [2019-02-27 13:03:51,329 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 13:03:51,329 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2019-02-27 13:03:51,330 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 55 transitions. [2019-02-27 13:03:51,330 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2019-02-27 13:03:51,330 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 55 transitions. [2019-02-27 13:03:51,330 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 55 transitions. [2019-02-27 13:03:51,397 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 55 edges. 55 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:03:51,407 INFO L225 Difference]: With dead ends: 390 [2019-02-27 13:03:51,407 INFO L226 Difference]: Without dead ends: 377 [2019-02-27 13:03:51,407 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 17 GetRequests, 7 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 26 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=54, Invalid=78, Unknown=0, NotChecked=0, Total=132 [2019-02-27 13:03:51,408 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 377 states. [2019-02-27 13:04:02,991 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 377 to 367. [2019-02-27 13:04:02,991 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 13:04:02,991 INFO L82 GeneralOperation]: Start isEquivalent. First operand 377 states. Second operand 367 states. [2019-02-27 13:04:02,991 INFO L74 IsIncluded]: Start isIncluded. First operand 377 states. Second operand 367 states. [2019-02-27 13:04:02,991 INFO L87 Difference]: Start difference. First operand 377 states. Second operand 367 states. [2019-02-27 13:04:03,002 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:04:03,002 INFO L93 Difference]: Finished difference Result 377 states and 1660 transitions. [2019-02-27 13:04:03,003 INFO L276 IsEmpty]: Start isEmpty. Operand 377 states and 1660 transitions. [2019-02-27 13:04:03,003 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:04:03,003 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:04:03,003 INFO L74 IsIncluded]: Start isIncluded. First operand 367 states. Second operand 377 states. [2019-02-27 13:04:03,003 INFO L87 Difference]: Start difference. First operand 367 states. Second operand 377 states. [2019-02-27 13:04:03,013 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:04:03,014 INFO L93 Difference]: Finished difference Result 377 states and 1660 transitions. [2019-02-27 13:04:03,014 INFO L276 IsEmpty]: Start isEmpty. Operand 377 states and 1660 transitions. [2019-02-27 13:04:03,014 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:04:03,014 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:04:03,014 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 13:04:03,014 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 13:04:03,014 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 367 states. [2019-02-27 13:04:03,023 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 367 states to 367 states and 1654 transitions. [2019-02-27 13:04:03,023 INFO L78 Accepts]: Start accepts. Automaton has 367 states and 1654 transitions. Word has length 7 [2019-02-27 13:04:03,023 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 13:04:03,023 INFO L480 AbstractCegarLoop]: Abstraction has 367 states and 1654 transitions. [2019-02-27 13:04:03,024 INFO L481 AbstractCegarLoop]: Interpolant automaton has 9 states. [2019-02-27 13:04:03,024 INFO L276 IsEmpty]: Start isEmpty. Operand 367 states and 1654 transitions. [2019-02-27 13:04:03,024 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-02-27 13:04:03,024 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 13:04:03,024 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1] [2019-02-27 13:04:03,024 INFO L423 AbstractCegarLoop]: === Iteration 47 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 13:04:03,024 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:04:03,025 INFO L82 PathProgramCache]: Analyzing trace with hash -2080966800, now seen corresponding path program 4 times [2019-02-27 13:04:03,025 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 13:04:03,025 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:04:03,025 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:04:03,026 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:04:03,026 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 13:04:03,028 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:04:03,376 INFO L273 TraceCheckUtils]: 0: Hoare triple {31123#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {31125#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-02-27 13:04:03,377 INFO L273 TraceCheckUtils]: 1: Hoare triple {31125#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {31125#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-02-27 13:04:03,378 INFO L273 TraceCheckUtils]: 2: Hoare triple {31125#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {31126#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)))} is VALID [2019-02-27 13:04:03,378 INFO L273 TraceCheckUtils]: 3: Hoare triple {31126#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {31127#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)))} is VALID [2019-02-27 13:04:03,379 INFO L273 TraceCheckUtils]: 4: Hoare triple {31127#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {31128#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-02-27 13:04:03,380 INFO L273 TraceCheckUtils]: 5: Hoare triple {31128#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {31129#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-27 13:04:03,381 INFO L273 TraceCheckUtils]: 6: Hoare triple {31129#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {31124#false} is VALID [2019-02-27 13:04:03,381 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 0 proven. 14 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-02-27 13:04:03,381 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:04:03,381 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 13:04:03,382 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-02-27 13:04:03,382 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-02-27 13:04:03,382 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:04:03,382 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 45 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 45 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-27 13:04:03,392 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:04:03,392 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 13:04:03,397 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:04:03,397 INFO L256 TraceCheckSpWp]: Trace formula consists of 24 conjuncts, 10 conjunts are in the unsatisfiable core [2019-02-27 13:04:03,404 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:04:03,405 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 13:04:03,427 INFO L467 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 15 treesize of output 18 [2019-02-27 13:04:03,440 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:03,441 INFO L467 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 18 treesize of output 24 [2019-02-27 13:04:03,454 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:03,455 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:03,456 INFO L467 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 20 treesize of output 34 [2019-02-27 13:04:03,477 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:03,479 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:03,480 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:03,481 INFO L467 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 22 treesize of output 45 [2019-02-27 13:04:03,488 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 13:04:03,508 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:04:03,520 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:04:03,532 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:04:03,547 INFO L301 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:04:03,547 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-02-27 13:04:03,552 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:04:03,553 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_265|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_265| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:04:03,553 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:04:03,637 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:03,640 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:03,641 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:03,642 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:03,643 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:03,644 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:03,645 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:03,645 INFO L467 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-02-27 13:04:03,653 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:04:03,681 INFO L301 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:04:03,681 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:40, output treesize:30 [2019-02-27 13:04:03,702 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:04:03,702 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_266|]. (let ((.cse0 (select |v_#memory_int_266| ULTIMATE.start_main_p4))) (and (= 0 (select |v_#memory_int_266| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_266| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= 0 .cse0) (= 0 (select |v_#memory_int_266| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_266| ULTIMATE.start_main_p3) 0))) [2019-02-27 13:04:03,702 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 13:04:03,780 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:03,781 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:03,783 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:03,784 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:03,785 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:03,787 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:03,788 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:03,789 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:03,790 INFO L467 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 47 [2019-02-27 13:04:03,797 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:04:03,829 INFO L301 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-02-27 13:04:03,829 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:42, output treesize:32 [2019-02-27 13:04:05,851 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:04:05,851 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_267|, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_267| ULTIMATE.start_main_p3))) (and (= 0 (+ (select |v_#memory_int_267| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (select |v_#memory_int_267| ULTIMATE.start_main_p1) 0) (= |#memory_int| (store |v_#memory_int_267| ULTIMATE.start_main_p3 (+ .cse0 1))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 (select |v_#memory_int_267| ULTIMATE.start_main_p2)))) [2019-02-27 13:04:05,851 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 13:04:05,964 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:05,966 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:05,968 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:05,970 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:05,972 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:05,974 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:05,977 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:05,980 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:05,980 INFO L158 IndexEqualityManager]: detected equality via solver [2019-02-27 13:04:05,981 INFO L467 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 47 [2019-02-27 13:04:05,988 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:04:06,019 INFO L301 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-02-27 13:04:06,020 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:42, output treesize:32 [2019-02-27 13:04:06,031 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:04:06,031 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_268|, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_268| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |v_#memory_int_268| ULTIMATE.start_main_p3)) (= (store |v_#memory_int_268| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= 0 (+ (select |v_#memory_int_268| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 .cse0) (= (select |v_#memory_int_268| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:04:06,031 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 13:04:06,109 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:06,110 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:06,111 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:06,113 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:06,114 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:06,116 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:06,117 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:06,118 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:06,119 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:06,120 INFO L467 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 45 [2019-02-27 13:04:06,127 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:04:06,163 INFO L301 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-02-27 13:04:06,164 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:30 [2019-02-27 13:04:07,016 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:04:07,016 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_269|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_269| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ .cse0 1)) (= (select |v_#memory_int_269| ULTIMATE.start_main_p3) 1) (= 1 (select |v_#memory_int_269| ULTIMATE.start_main_p1)) (= (select |v_#memory_int_269| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= |#memory_int| (store |v_#memory_int_269| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:04:07,016 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 13:04:07,101 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:07,103 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:07,104 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:07,105 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:07,106 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:07,107 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:07,108 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:07,110 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:07,111 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:07,112 INFO L467 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 47 [2019-02-27 13:04:07,118 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:04:07,151 INFO L301 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-02-27 13:04:07,152 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-02-27 13:04:07,159 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:04:07,160 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_270|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_270| ULTIMATE.start_main_p2))) (and (= (select |v_#memory_int_270| ULTIMATE.start_main_p3) 1) (= |#memory_int| (store |v_#memory_int_270| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |v_#memory_int_270| ULTIMATE.start_main_p1)) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 (+ (select |v_#memory_int_270| ULTIMATE.start_main_p4) 2)))) [2019-02-27 13:04:07,160 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) [2019-02-27 13:04:07,199 INFO L273 TraceCheckUtils]: 0: Hoare triple {31123#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {31133#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 13:04:07,201 INFO L273 TraceCheckUtils]: 1: Hoare triple {31133#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {31137#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 13:04:07,212 INFO L273 TraceCheckUtils]: 2: Hoare triple {31137#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {31141#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 13:04:07,214 INFO L273 TraceCheckUtils]: 3: Hoare triple {31141#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {31145#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 13:04:07,215 INFO L273 TraceCheckUtils]: 4: Hoare triple {31145#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {31149#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 13:04:07,217 INFO L273 TraceCheckUtils]: 5: Hoare triple {31149#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {31153#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))))} is VALID [2019-02-27 13:04:07,217 INFO L273 TraceCheckUtils]: 6: Hoare triple {31153#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))))} assume !(#memory_int[main_p1] >= 0); {31124#false} is VALID [2019-02-27 13:04:07,218 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 0 proven. 15 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:04:07,218 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 13:04:07,400 INFO L273 TraceCheckUtils]: 6: Hoare triple {31157#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {31124#false} is VALID [2019-02-27 13:04:07,402 INFO L273 TraceCheckUtils]: 5: Hoare triple {31161#(<= 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]; {31157#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-27 13:04:07,403 INFO L273 TraceCheckUtils]: 4: Hoare triple {31165#(<= 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]; {31161#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-27 13:04:07,405 INFO L273 TraceCheckUtils]: 3: Hoare triple {31169#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {31165#(<= 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-02-27 13:04:07,408 INFO L273 TraceCheckUtils]: 2: Hoare triple {31173#(<= 0 (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {31169#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-27 13:04:07,411 INFO L273 TraceCheckUtils]: 1: Hoare triple {31177#(<= 0 (select (store (store (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {31173#(<= 0 (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-27 13:04:07,413 INFO L273 TraceCheckUtils]: 0: Hoare triple {31123#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {31177#(<= 0 (select (store (store (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-27 13:04:07,414 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 6 proven. 9 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:04:07,433 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 13:04:07,434 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 6, 6] total 17 [2019-02-27 13:04:07,434 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 13:04:07,434 INFO L78 Accepts]: Start accepts. Automaton has 13 states. Word has length 7 [2019-02-27 13:04:07,434 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 13:04:07,434 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 13 states. [2019-02-27 13:04:07,459 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:04:07,460 INFO L459 AbstractCegarLoop]: Interpolant automaton has 13 states [2019-02-27 13:04:07,460 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2019-02-27 13:04:07,460 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=122, Invalid=220, Unknown=0, NotChecked=0, Total=342 [2019-02-27 13:04:07,460 INFO L87 Difference]: Start difference. First operand 367 states and 1654 transitions. Second operand 13 states. [2019-02-27 13:04:21,563 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:04:21,563 INFO L93 Difference]: Finished difference Result 375 states and 1668 transitions. [2019-02-27 13:04:21,563 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2019-02-27 13:04:21,563 INFO L78 Accepts]: Start accepts. Automaton has 13 states. Word has length 7 [2019-02-27 13:04:21,563 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 13:04:21,563 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2019-02-27 13:04:21,564 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 46 transitions. [2019-02-27 13:04:21,564 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2019-02-27 13:04:21,564 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 46 transitions. [2019-02-27 13:04:21,564 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 46 transitions. [2019-02-27 13:04:21,655 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 46 edges. 46 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:04:21,664 INFO L225 Difference]: With dead ends: 375 [2019-02-27 13:04:21,665 INFO L226 Difference]: Without dead ends: 374 [2019-02-27 13:04:21,665 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 21 GetRequests, 0 SyntacticMatches, 1 SemanticMatches, 20 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 136 ImplicationChecksByTransitivity, 0.8s TimeCoverageRelationStatistics Valid=157, Invalid=305, Unknown=0, NotChecked=0, Total=462 [2019-02-27 13:04:21,665 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 374 states. [2019-02-27 13:04:30,192 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 374 to 147. [2019-02-27 13:04:30,193 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 13:04:30,193 INFO L82 GeneralOperation]: Start isEquivalent. First operand 374 states. Second operand 147 states. [2019-02-27 13:04:30,193 INFO L74 IsIncluded]: Start isIncluded. First operand 374 states. Second operand 147 states. [2019-02-27 13:04:30,193 INFO L87 Difference]: Start difference. First operand 374 states. Second operand 147 states. [2019-02-27 13:04:30,204 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:04:30,205 INFO L93 Difference]: Finished difference Result 374 states and 1638 transitions. [2019-02-27 13:04:30,205 INFO L276 IsEmpty]: Start isEmpty. Operand 374 states and 1638 transitions. [2019-02-27 13:04:30,205 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:04:30,205 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:04:30,206 INFO L74 IsIncluded]: Start isIncluded. First operand 147 states. Second operand 374 states. [2019-02-27 13:04:30,206 INFO L87 Difference]: Start difference. First operand 147 states. Second operand 374 states. [2019-02-27 13:04:30,217 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:04:30,217 INFO L93 Difference]: Finished difference Result 374 states and 1638 transitions. [2019-02-27 13:04:30,217 INFO L276 IsEmpty]: Start isEmpty. Operand 374 states and 1638 transitions. [2019-02-27 13:04:30,218 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:04:30,218 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:04:30,218 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 13:04:30,218 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 13:04:30,218 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 147 states. [2019-02-27 13:04:30,221 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 147 states to 147 states and 607 transitions. [2019-02-27 13:04:30,222 INFO L78 Accepts]: Start accepts. Automaton has 147 states and 607 transitions. Word has length 7 [2019-02-27 13:04:30,222 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 13:04:30,222 INFO L480 AbstractCegarLoop]: Abstraction has 147 states and 607 transitions. [2019-02-27 13:04:30,222 INFO L481 AbstractCegarLoop]: Interpolant automaton has 13 states. [2019-02-27 13:04:30,222 INFO L276 IsEmpty]: Start isEmpty. Operand 147 states and 607 transitions. [2019-02-27 13:04:30,222 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-02-27 13:04:30,222 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 13:04:30,222 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-02-27 13:04:30,222 INFO L423 AbstractCegarLoop]: === Iteration 48 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 13:04:30,223 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:04:30,223 INFO L82 PathProgramCache]: Analyzing trace with hash 1924438182, now seen corresponding path program 1 times [2019-02-27 13:04:30,223 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 13:04:30,223 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:04:30,224 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:04:30,224 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:04:30,224 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 13:04:30,226 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:04:30,521 INFO L273 TraceCheckUtils]: 0: Hoare triple {32951#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {32953#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-27 13:04:30,523 INFO L273 TraceCheckUtils]: 1: Hoare triple {32953#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {32953#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-27 13:04:30,524 INFO L273 TraceCheckUtils]: 2: Hoare triple {32953#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {32954#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:04:30,524 INFO L273 TraceCheckUtils]: 3: Hoare triple {32954#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {32954#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:04:30,525 INFO L273 TraceCheckUtils]: 4: Hoare triple {32954#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {32954#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:04:30,525 INFO L273 TraceCheckUtils]: 5: Hoare triple {32954#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {32954#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:04:30,526 INFO L273 TraceCheckUtils]: 6: Hoare triple {32954#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {32952#false} is VALID [2019-02-27 13:04:30,526 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-02-27 13:04:30,526 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:04:30,527 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 13:04:30,527 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-02-27 13:04:30,527 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [20], [22], [24], [25] [2019-02-27 13:04:30,528 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 13:04:30,528 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 13:04:30,540 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 13:04:30,540 INFO L272 AbstractInterpreter]: Visited 7 different actions 7 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 3. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-02-27 13:04:30,541 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:04:30,541 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 13:04:30,541 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:04:30,541 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 46 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 46 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-27 13:04:30,551 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:04:30,551 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 13:04:30,555 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:04:30,556 INFO L256 TraceCheckSpWp]: Trace formula consists of 24 conjuncts, 7 conjunts are in the unsatisfiable core [2019-02-27 13:04:30,562 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:04:30,563 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 13:04:30,592 INFO L467 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 15 treesize of output 18 [2019-02-27 13:04:30,602 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:30,603 INFO L467 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 18 treesize of output 24 [2019-02-27 13:04:30,619 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:30,620 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:30,621 INFO L467 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 20 treesize of output 34 [2019-02-27 13:04:30,643 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:30,645 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:30,646 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:30,647 INFO L467 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 22 treesize of output 45 [2019-02-27 13:04:30,655 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 13:04:30,677 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:04:30,690 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:04:30,700 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:04:30,720 INFO L301 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-02-27 13:04:30,721 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-02-27 13:04:30,731 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:04:30,731 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_276|, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_276| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 13:04:30,731 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:04:30,804 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:30,805 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:30,807 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:30,808 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:30,809 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:30,811 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:30,812 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:30,813 INFO L467 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-02-27 13:04:30,820 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:04:30,851 INFO L301 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-02-27 13:04:30,852 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-02-27 13:04:32,866 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:04:32,867 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_277|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_277| ULTIMATE.start_main_p1))) (and (= 0 .cse0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_277| ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_277| ULTIMATE.start_main_p3)) (= (store |v_#memory_int_277| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= 0 (select |v_#memory_int_277| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:04:32,867 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:04:32,945 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:32,947 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:32,948 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:32,949 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:32,951 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:32,952 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:32,953 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:32,955 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:32,956 INFO L467 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 45 [2019-02-27 13:04:32,964 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:04:32,996 INFO L301 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-02-27 13:04:32,997 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-02-27 13:04:33,029 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:04:33,029 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_278|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_278| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_278| ULTIMATE.start_main_p4)) (= |#memory_int| (store |v_#memory_int_278| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= (select |v_#memory_int_278| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_278| ULTIMATE.start_main_p1) 1) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:04:33,029 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:04:33,194 INFO L273 TraceCheckUtils]: 0: Hoare triple {32951#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {32958#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 13:04:33,195 INFO L273 TraceCheckUtils]: 1: Hoare triple {32958#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {32962#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:04:33,197 INFO L273 TraceCheckUtils]: 2: Hoare triple {32962#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {32966#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:04:33,198 INFO L273 TraceCheckUtils]: 3: Hoare triple {32966#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p1] >= 0; {32966#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:04:33,199 INFO L273 TraceCheckUtils]: 4: Hoare triple {32966#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p2] <= 0; {32966#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:04:33,200 INFO L273 TraceCheckUtils]: 5: Hoare triple {32966#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p3] >= 0; {32966#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:04:33,201 INFO L273 TraceCheckUtils]: 6: Hoare triple {32966#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume !(#memory_int[main_p4] <= 0); {32952#false} is VALID [2019-02-27 13:04:33,202 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:04:33,202 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 13:04:33,269 INFO L273 TraceCheckUtils]: 6: Hoare triple {32979#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {32952#false} is VALID [2019-02-27 13:04:33,269 INFO L273 TraceCheckUtils]: 5: Hoare triple {32979#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {32979#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:04:33,270 INFO L273 TraceCheckUtils]: 4: Hoare triple {32979#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {32979#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:04:33,270 INFO L273 TraceCheckUtils]: 3: Hoare triple {32979#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {32979#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:04:33,272 INFO L273 TraceCheckUtils]: 2: Hoare triple {32992#(<= (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {32979#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:04:33,273 INFO L273 TraceCheckUtils]: 1: Hoare triple {32996#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {32992#(<= (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:04:33,275 INFO L273 TraceCheckUtils]: 0: Hoare triple {32951#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {32996#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:04:33,276 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:04:33,296 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 13:04:33,296 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 3, 3] total 8 [2019-02-27 13:04:33,296 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 13:04:33,296 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 7 [2019-02-27 13:04:33,296 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 13:04:33,297 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states. [2019-02-27 13:04:33,320 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:04:33,321 INFO L459 AbstractCegarLoop]: Interpolant automaton has 7 states [2019-02-27 13:04:33,321 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2019-02-27 13:04:33,321 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=36, Invalid=54, Unknown=0, NotChecked=0, Total=90 [2019-02-27 13:04:33,321 INFO L87 Difference]: Start difference. First operand 147 states and 607 transitions. Second operand 7 states. [2019-02-27 13:04:42,036 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:04:42,036 INFO L93 Difference]: Finished difference Result 157 states and 628 transitions. [2019-02-27 13:04:42,037 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-02-27 13:04:42,037 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 7 [2019-02-27 13:04:42,037 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 13:04:42,037 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2019-02-27 13:04:42,037 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 34 transitions. [2019-02-27 13:04:42,037 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2019-02-27 13:04:42,038 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 34 transitions. [2019-02-27 13:04:42,038 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 34 transitions. [2019-02-27 13:04:42,090 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 34 edges. 34 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:04:42,093 INFO L225 Difference]: With dead ends: 157 [2019-02-27 13:04:42,093 INFO L226 Difference]: Without dead ends: 150 [2019-02-27 13:04:42,094 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 19 GetRequests, 7 SyntacticMatches, 2 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 25 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=52, Invalid=80, Unknown=0, NotChecked=0, Total=132 [2019-02-27 13:04:42,094 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 150 states. [2019-02-27 13:04:49,907 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 150 to 149. [2019-02-27 13:04:49,907 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 13:04:49,907 INFO L82 GeneralOperation]: Start isEquivalent. First operand 150 states. Second operand 149 states. [2019-02-27 13:04:49,907 INFO L74 IsIncluded]: Start isIncluded. First operand 150 states. Second operand 149 states. [2019-02-27 13:04:49,907 INFO L87 Difference]: Start difference. First operand 150 states. Second operand 149 states. [2019-02-27 13:04:49,911 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:04:49,912 INFO L93 Difference]: Finished difference Result 150 states and 615 transitions. [2019-02-27 13:04:49,912 INFO L276 IsEmpty]: Start isEmpty. Operand 150 states and 615 transitions. [2019-02-27 13:04:49,912 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:04:49,912 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:04:49,912 INFO L74 IsIncluded]: Start isIncluded. First operand 149 states. Second operand 150 states. [2019-02-27 13:04:49,912 INFO L87 Difference]: Start difference. First operand 149 states. Second operand 150 states. [2019-02-27 13:04:49,916 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:04:49,916 INFO L93 Difference]: Finished difference Result 150 states and 615 transitions. [2019-02-27 13:04:49,916 INFO L276 IsEmpty]: Start isEmpty. Operand 150 states and 615 transitions. [2019-02-27 13:04:49,916 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:04:49,916 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:04:49,916 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 13:04:49,916 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 13:04:49,916 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 149 states. [2019-02-27 13:04:49,920 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 149 states to 149 states and 611 transitions. [2019-02-27 13:04:49,920 INFO L78 Accepts]: Start accepts. Automaton has 149 states and 611 transitions. Word has length 7 [2019-02-27 13:04:49,920 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 13:04:49,920 INFO L480 AbstractCegarLoop]: Abstraction has 149 states and 611 transitions. [2019-02-27 13:04:49,920 INFO L481 AbstractCegarLoop]: Interpolant automaton has 7 states. [2019-02-27 13:04:49,920 INFO L276 IsEmpty]: Start isEmpty. Operand 149 states and 611 transitions. [2019-02-27 13:04:49,920 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-02-27 13:04:49,920 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 13:04:49,921 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-02-27 13:04:49,921 INFO L423 AbstractCegarLoop]: === Iteration 49 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 13:04:49,921 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:04:49,921 INFO L82 PathProgramCache]: Analyzing trace with hash 1928011116, now seen corresponding path program 1 times [2019-02-27 13:04:49,921 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 13:04:49,922 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:04:49,922 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:04:49,922 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:04:49,922 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 13:04:49,925 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:04:50,231 INFO L273 TraceCheckUtils]: 0: Hoare triple {33888#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {33890#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-02-27 13:04:50,232 INFO L273 TraceCheckUtils]: 1: Hoare triple {33890#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {33890#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-02-27 13:04:50,233 INFO L273 TraceCheckUtils]: 2: Hoare triple {33890#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {33891#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-02-27 13:04:50,234 INFO L273 TraceCheckUtils]: 3: Hoare triple {33891#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {33892#(and (<= 1 (select |#memory_int| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-02-27 13:04:50,235 INFO L273 TraceCheckUtils]: 4: Hoare triple {33892#(and (<= 1 (select |#memory_int| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} assume #memory_int[main_p1] >= 0; {33893#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:04:50,236 INFO L273 TraceCheckUtils]: 5: Hoare triple {33893#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {33893#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:04:50,236 INFO L273 TraceCheckUtils]: 6: Hoare triple {33893#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {33889#false} is VALID [2019-02-27 13:04:50,237 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-02-27 13:04:50,237 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:04:50,237 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 13:04:50,237 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-02-27 13:04:50,238 INFO L207 CegarAbsIntRunner]: [0], [6], [14], [16], [20], [22], [23] [2019-02-27 13:04:50,239 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 13:04:50,239 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 13:04:50,253 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 13:04:50,253 INFO L272 AbstractInterpreter]: Visited 7 different actions 7 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 3. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-02-27 13:04:50,253 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:04:50,253 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 13:04:50,254 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:04:50,254 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 47 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 47 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-27 13:04:50,264 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:04:50,264 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 13:04:50,268 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:04:50,269 INFO L256 TraceCheckSpWp]: Trace formula consists of 24 conjuncts, 8 conjunts are in the unsatisfiable core [2019-02-27 13:04:50,272 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:04:50,273 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 13:04:50,304 INFO L467 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 15 treesize of output 18 [2019-02-27 13:04:50,314 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:50,315 INFO L467 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 18 treesize of output 24 [2019-02-27 13:04:50,341 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:50,342 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:50,343 INFO L467 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 20 treesize of output 34 [2019-02-27 13:04:50,366 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:50,367 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:50,369 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:50,369 INFO L467 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 22 treesize of output 45 [2019-02-27 13:04:50,376 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 13:04:50,397 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:04:50,410 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:04:50,419 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:04:50,438 INFO L301 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-02-27 13:04:50,438 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-02-27 13:04:50,446 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:04:50,446 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_281|, ULTIMATE.start_main_p2]. (and (= (store (store (store (store |v_#memory_int_281| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:04:50,446 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:04:50,514 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:50,515 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:50,517 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:50,518 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:50,519 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:50,520 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:50,522 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:50,522 INFO L467 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-02-27 13:04:50,530 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:04:50,562 INFO L301 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-02-27 13:04:50,563 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-02-27 13:04:50,615 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:04:50,615 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_282|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_282| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_282| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= 0 (select |v_#memory_int_282| ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_282| ULTIMATE.start_main_p4)) (= .cse0 0) (= (select |v_#memory_int_282| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:04:50,615 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:04:50,683 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:50,685 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:50,686 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:50,688 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:50,689 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:50,691 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:50,692 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:50,692 INFO L158 IndexEqualityManager]: detected equality via solver [2019-02-27 13:04:50,693 INFO L467 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-02-27 13:04:50,700 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:04:50,731 INFO L301 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-02-27 13:04:50,731 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-02-27 13:04:50,739 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:04:50,740 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_283|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_283| ULTIMATE.start_main_p3))) (and (= 0 (select |v_#memory_int_283| ULTIMATE.start_main_p2)) (= |#memory_int| (store |v_#memory_int_283| ULTIMATE.start_main_p3 (+ .cse0 1))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_283| ULTIMATE.start_main_p4) 0) (= 1 (select |v_#memory_int_283| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 .cse0))) [2019-02-27 13:04:50,740 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:04:50,811 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:50,812 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:50,814 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:50,815 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:50,817 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:50,818 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:50,819 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:50,821 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:04:50,821 INFO L467 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 45 [2019-02-27 13:04:50,829 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:04:50,880 INFO L301 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-02-27 13:04:50,881 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-02-27 13:04:50,940 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:04:50,940 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_284|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_284| ULTIMATE.start_main_p4))) (and (= |#memory_int| (store |v_#memory_int_284| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_284| ULTIMATE.start_main_p2)) (= 1 (select |v_#memory_int_284| ULTIMATE.start_main_p3)) (= .cse0 0) (= 1 (select |v_#memory_int_284| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:04:50,941 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:04:51,062 INFO L273 TraceCheckUtils]: 0: Hoare triple {33888#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {33897#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:04:51,063 INFO L273 TraceCheckUtils]: 1: Hoare triple {33897#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {33901#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:04:51,065 INFO L273 TraceCheckUtils]: 2: Hoare triple {33901#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {33905#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:04:51,067 INFO L273 TraceCheckUtils]: 3: Hoare triple {33905#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {33909#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-27 13:04:51,068 INFO L273 TraceCheckUtils]: 4: Hoare triple {33909#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume #memory_int[main_p1] >= 0; {33909#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-27 13:04:51,068 INFO L273 TraceCheckUtils]: 5: Hoare triple {33909#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume #memory_int[main_p2] <= 0; {33909#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-27 13:04:51,069 INFO L273 TraceCheckUtils]: 6: Hoare triple {33909#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p3] >= 0); {33889#false} is VALID [2019-02-27 13:04:51,069 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:04:51,069 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 13:04:51,170 INFO L273 TraceCheckUtils]: 6: Hoare triple {33919#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {33889#false} is VALID [2019-02-27 13:04:51,170 INFO L273 TraceCheckUtils]: 5: Hoare triple {33919#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {33919#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:04:51,171 INFO L273 TraceCheckUtils]: 4: Hoare triple {33919#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {33919#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:04:51,172 INFO L273 TraceCheckUtils]: 3: Hoare triple {33929#(<= 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]; {33919#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:04:51,173 INFO L273 TraceCheckUtils]: 2: Hoare triple {33933#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {33929#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:04:51,175 INFO L273 TraceCheckUtils]: 1: Hoare triple {33937#(<= 0 (select (store (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_p4 (+ (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_p4) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {33933#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:04:51,177 INFO L273 TraceCheckUtils]: 0: Hoare triple {33888#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {33937#(<= 0 (select (store (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_p4 (+ (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_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:04:51,178 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 5 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:04:51,198 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 13:04:51,198 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-02-27 13:04:51,198 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 13:04:51,198 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-02-27 13:04:51,198 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 13:04:51,198 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-02-27 13:04:51,221 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:04:51,221 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-02-27 13:04:51,221 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-02-27 13:04:51,222 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=69, Invalid=113, Unknown=0, NotChecked=0, Total=182 [2019-02-27 13:04:51,222 INFO L87 Difference]: Start difference. First operand 149 states and 611 transitions. Second operand 10 states. [2019-02-27 13:05:03,480 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:05:03,480 INFO L93 Difference]: Finished difference Result 206 states and 810 transitions. [2019-02-27 13:05:03,480 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-02-27 13:05:03,480 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-02-27 13:05:03,480 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 13:05:03,480 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-27 13:05:03,480 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 48 transitions. [2019-02-27 13:05:03,481 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-27 13:05:03,481 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 48 transitions. [2019-02-27 13:05:03,481 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 48 transitions. [2019-02-27 13:05:03,552 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 48 edges. 48 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:05:03,557 INFO L225 Difference]: With dead ends: 206 [2019-02-27 13:05:03,557 INFO L226 Difference]: Without dead ends: 199 [2019-02-27 13:05:03,558 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 20 GetRequests, 4 SyntacticMatches, 1 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 46 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=97, Invalid=175, Unknown=0, NotChecked=0, Total=272 [2019-02-27 13:05:03,558 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 199 states. [2019-02-27 13:05:14,842 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 199 to 158. [2019-02-27 13:05:14,842 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 13:05:14,842 INFO L82 GeneralOperation]: Start isEquivalent. First operand 199 states. Second operand 158 states. [2019-02-27 13:05:14,842 INFO L74 IsIncluded]: Start isIncluded. First operand 199 states. Second operand 158 states. [2019-02-27 13:05:14,842 INFO L87 Difference]: Start difference. First operand 199 states. Second operand 158 states. [2019-02-27 13:05:14,847 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:05:14,847 INFO L93 Difference]: Finished difference Result 199 states and 789 transitions. [2019-02-27 13:05:14,847 INFO L276 IsEmpty]: Start isEmpty. Operand 199 states and 789 transitions. [2019-02-27 13:05:14,848 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:05:14,848 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:05:14,848 INFO L74 IsIncluded]: Start isIncluded. First operand 158 states. Second operand 199 states. [2019-02-27 13:05:14,848 INFO L87 Difference]: Start difference. First operand 158 states. Second operand 199 states. [2019-02-27 13:05:14,853 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:05:14,853 INFO L93 Difference]: Finished difference Result 199 states and 789 transitions. [2019-02-27 13:05:14,853 INFO L276 IsEmpty]: Start isEmpty. Operand 199 states and 789 transitions. [2019-02-27 13:05:14,853 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:05:14,853 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:05:14,853 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 13:05:14,854 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 13:05:14,854 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 158 states. [2019-02-27 13:05:14,857 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 158 states to 158 states and 646 transitions. [2019-02-27 13:05:14,857 INFO L78 Accepts]: Start accepts. Automaton has 158 states and 646 transitions. Word has length 7 [2019-02-27 13:05:14,857 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 13:05:14,858 INFO L480 AbstractCegarLoop]: Abstraction has 158 states and 646 transitions. [2019-02-27 13:05:14,858 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-02-27 13:05:14,858 INFO L276 IsEmpty]: Start isEmpty. Operand 158 states and 646 transitions. [2019-02-27 13:05:14,858 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-02-27 13:05:14,858 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 13:05:14,858 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-02-27 13:05:14,859 INFO L423 AbstractCegarLoop]: === Iteration 50 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 13:05:14,859 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:05:14,859 INFO L82 PathProgramCache]: Analyzing trace with hash 2042527720, now seen corresponding path program 2 times [2019-02-27 13:05:14,859 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 13:05:14,860 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:05:14,860 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:05:14,860 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:05:14,860 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 13:05:14,863 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:05:15,252 INFO L273 TraceCheckUtils]: 0: Hoare triple {35035#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {35037#(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)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p3)))} is VALID [2019-02-27 13:05:15,253 INFO L273 TraceCheckUtils]: 1: Hoare triple {35037#(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)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {35037#(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)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p3)))} is VALID [2019-02-27 13:05:15,254 INFO L273 TraceCheckUtils]: 2: Hoare triple {35037#(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)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {35038#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p3)))} is VALID [2019-02-27 13:05:15,255 INFO L273 TraceCheckUtils]: 3: Hoare triple {35038#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {35039#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= 0 (select |#memory_int| ULTIMATE.start_main_p3)))} is VALID [2019-02-27 13:05:15,256 INFO L273 TraceCheckUtils]: 4: Hoare triple {35039#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= 0 (select |#memory_int| ULTIMATE.start_main_p3)))} assume #memory_int[main_p1] >= 0; {35039#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= 0 (select |#memory_int| ULTIMATE.start_main_p3)))} is VALID [2019-02-27 13:05:15,257 INFO L273 TraceCheckUtils]: 5: Hoare triple {35039#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= 0 (select |#memory_int| ULTIMATE.start_main_p3)))} assume #memory_int[main_p2] <= 0; {35040#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:05:15,257 INFO L273 TraceCheckUtils]: 6: Hoare triple {35040#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {35036#false} is VALID [2019-02-27 13:05:15,258 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-02-27 13:05:15,258 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:05:15,258 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 13:05:15,258 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-02-27 13:05:15,258 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-02-27 13:05:15,259 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:05:15,259 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 48 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 48 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-27 13:05:15,267 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-02-27 13:05:15,268 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-02-27 13:05:15,273 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-02-27 13:05:15,273 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-02-27 13:05:15,274 INFO L256 TraceCheckSpWp]: Trace formula consists of 24 conjuncts, 7 conjunts are in the unsatisfiable core [2019-02-27 13:05:15,294 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:05:15,295 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 13:05:15,322 INFO L467 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 15 treesize of output 18 [2019-02-27 13:05:15,333 INFO L467 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 18 treesize of output 20 [2019-02-27 13:05:15,347 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:15,348 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 26 [2019-02-27 13:05:15,377 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:15,379 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:15,379 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 33 [2019-02-27 13:05:15,390 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 13:05:15,406 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:05:15,417 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:05:15,429 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:05:15,445 INFO L301 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-02-27 13:05:15,446 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:22, output treesize:27 [2019-02-27 13:05:15,452 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:05:15,452 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_288|, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_288| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:05:15,452 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:05:15,527 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:15,528 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:15,530 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:15,531 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:15,532 INFO L467 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-02-27 13:05:15,537 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:05:15,555 INFO L301 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-02-27 13:05:15,555 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:22 [2019-02-27 13:05:15,577 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:05:15,578 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_289|, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_289| ULTIMATE.start_main_p2))) (and (= (store |v_#memory_int_289| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= (select |v_#memory_int_289| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |v_#memory_int_289| ULTIMATE.start_main_p3) 0))) [2019-02-27 13:05:15,578 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:05:15,636 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:15,637 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:15,638 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:15,640 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:15,641 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:15,641 INFO L467 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 30 [2019-02-27 13:05:15,648 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:05:15,667 INFO L301 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-02-27 13:05:15,667 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:34, output treesize:24 [2019-02-27 13:05:15,677 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:05:15,677 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_290|, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_290| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= (store |v_#memory_int_290| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= 0 (+ (select |v_#memory_int_290| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 (select |v_#memory_int_290| ULTIMATE.start_main_p4)))) [2019-02-27 13:05:15,677 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:05:15,739 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:15,741 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:15,742 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:15,743 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:15,744 INFO L158 IndexEqualityManager]: detected equality via solver [2019-02-27 13:05:15,745 INFO L467 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 30 [2019-02-27 13:05:15,751 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:05:15,770 INFO L301 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-02-27 13:05:15,771 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:34, output treesize:24 [2019-02-27 13:05:17,789 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:05:17,789 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_291|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_291| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_291| ULTIMATE.start_main_p3) 1) (= 0 .cse0) (= (+ (select |v_#memory_int_291| ULTIMATE.start_main_p2) 1) 0) (= (store |v_#memory_int_291| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-02-27 13:05:17,789 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:05:17,910 INFO L273 TraceCheckUtils]: 0: Hoare triple {35035#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {35044#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:05:17,912 INFO L273 TraceCheckUtils]: 1: Hoare triple {35044#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {35048#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:05:17,913 INFO L273 TraceCheckUtils]: 2: Hoare triple {35048#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {35052#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:05:17,914 INFO L273 TraceCheckUtils]: 3: Hoare triple {35052#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {35056#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-02-27 13:05:17,915 INFO L273 TraceCheckUtils]: 4: Hoare triple {35056#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p1] >= 0; {35056#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-02-27 13:05:17,916 INFO L273 TraceCheckUtils]: 5: Hoare triple {35056#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p2] <= 0; {35056#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-02-27 13:05:17,917 INFO L273 TraceCheckUtils]: 6: Hoare triple {35056#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume !(#memory_int[main_p3] >= 0); {35036#false} is VALID [2019-02-27 13:05:17,918 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:05:17,918 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 13:05:18,004 INFO L273 TraceCheckUtils]: 6: Hoare triple {35040#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {35036#false} is VALID [2019-02-27 13:05:18,005 INFO L273 TraceCheckUtils]: 5: Hoare triple {35040#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {35040#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:05:18,006 INFO L273 TraceCheckUtils]: 4: Hoare triple {35040#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {35040#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:05:18,007 INFO L273 TraceCheckUtils]: 3: Hoare triple {35075#(<= 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]; {35040#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:05:18,029 INFO L273 TraceCheckUtils]: 2: Hoare triple {35079#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {35075#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:05:18,044 INFO L273 TraceCheckUtils]: 1: Hoare triple {35083#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4 (+ (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_p4) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {35079#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:05:18,058 INFO L273 TraceCheckUtils]: 0: Hoare triple {35035#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {35083#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4 (+ (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_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-02-27 13:05:18,059 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 3 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:05:18,084 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 13:05:18,084 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-02-27 13:05:18,084 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 13:05:18,085 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-02-27 13:05:18,085 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 13:05:18,085 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-02-27 13:05:18,108 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:05:18,108 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-02-27 13:05:18,109 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-02-27 13:05:18,109 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=61, Invalid=95, Unknown=0, NotChecked=0, Total=156 [2019-02-27 13:05:18,109 INFO L87 Difference]: Start difference. First operand 158 states and 646 transitions. Second operand 10 states. [2019-02-27 13:05:30,520 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:05:30,520 INFO L93 Difference]: Finished difference Result 161 states and 653 transitions. [2019-02-27 13:05:30,520 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-02-27 13:05:30,520 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-02-27 13:05:30,520 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 13:05:30,521 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-27 13:05:30,521 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 33 transitions. [2019-02-27 13:05:30,521 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-27 13:05:30,521 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 33 transitions. [2019-02-27 13:05:30,521 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 33 transitions. [2019-02-27 13:05:30,576 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 33 edges. 33 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:05:30,579 INFO L225 Difference]: With dead ends: 161 [2019-02-27 13:05:30,579 INFO L226 Difference]: Without dead ends: 156 [2019-02-27 13:05:30,580 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 20 GetRequests, 5 SyntacticMatches, 1 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 43 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=89, Invalid=151, Unknown=0, NotChecked=0, Total=240 [2019-02-27 13:05:30,580 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 156 states. [2019-02-27 13:05:33,733 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 156 to 33. [2019-02-27 13:05:33,733 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 13:05:33,734 INFO L82 GeneralOperation]: Start isEquivalent. First operand 156 states. Second operand 33 states. [2019-02-27 13:05:33,734 INFO L74 IsIncluded]: Start isIncluded. First operand 156 states. Second operand 33 states. [2019-02-27 13:05:33,734 INFO L87 Difference]: Start difference. First operand 156 states. Second operand 33 states. [2019-02-27 13:05:33,738 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:05:33,738 INFO L93 Difference]: Finished difference Result 156 states and 632 transitions. [2019-02-27 13:05:33,738 INFO L276 IsEmpty]: Start isEmpty. Operand 156 states and 632 transitions. [2019-02-27 13:05:33,738 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:05:33,738 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:05:33,738 INFO L74 IsIncluded]: Start isIncluded. First operand 33 states. Second operand 156 states. [2019-02-27 13:05:33,739 INFO L87 Difference]: Start difference. First operand 33 states. Second operand 156 states. [2019-02-27 13:05:33,742 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:05:33,742 INFO L93 Difference]: Finished difference Result 156 states and 632 transitions. [2019-02-27 13:05:33,742 INFO L276 IsEmpty]: Start isEmpty. Operand 156 states and 632 transitions. [2019-02-27 13:05:33,742 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:05:33,742 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:05:33,742 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 13:05:33,742 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 13:05:33,742 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 33 states. [2019-02-27 13:05:33,743 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 33 states to 33 states and 119 transitions. [2019-02-27 13:05:33,743 INFO L78 Accepts]: Start accepts. Automaton has 33 states and 119 transitions. Word has length 7 [2019-02-27 13:05:33,743 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 13:05:33,743 INFO L480 AbstractCegarLoop]: Abstraction has 33 states and 119 transitions. [2019-02-27 13:05:33,743 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-02-27 13:05:33,743 INFO L276 IsEmpty]: Start isEmpty. Operand 33 states and 119 transitions. [2019-02-27 13:05:33,744 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 9 [2019-02-27 13:05:33,744 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 13:05:33,744 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1] [2019-02-27 13:05:33,744 INFO L423 AbstractCegarLoop]: === Iteration 51 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 13:05:33,744 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:05:33,744 INFO L82 PathProgramCache]: Analyzing trace with hash -305786232, now seen corresponding path program 1 times [2019-02-27 13:05:33,744 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 13:05:33,745 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:05:33,745 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-02-27 13:05:33,745 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:05:33,745 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 13:05:33,747 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:05:34,016 INFO L273 TraceCheckUtils]: 0: Hoare triple {35775#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {35777#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-27 13:05:34,018 INFO L273 TraceCheckUtils]: 1: Hoare triple {35777#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {35778#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:05:34,018 INFO L273 TraceCheckUtils]: 2: Hoare triple {35778#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {35779#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-02-27 13:05:34,019 INFO L273 TraceCheckUtils]: 3: Hoare triple {35779#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 1) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {35780#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-02-27 13:05:34,019 INFO L273 TraceCheckUtils]: 4: Hoare triple {35780#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p1] >= 0; {35780#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-02-27 13:05:34,020 INFO L273 TraceCheckUtils]: 5: Hoare triple {35780#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p2] <= 0; {35780#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-02-27 13:05:34,020 INFO L273 TraceCheckUtils]: 6: Hoare triple {35780#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p3] >= 0; {35780#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-02-27 13:05:34,021 INFO L273 TraceCheckUtils]: 7: Hoare triple {35780#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume !(#memory_int[main_p4] <= 0); {35776#false} is VALID [2019-02-27 13:05:34,021 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:05:34,022 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:05:34,022 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 13:05:34,022 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 9 with the following transitions: [2019-02-27 13:05:34,022 INFO L207 CegarAbsIntRunner]: [0], [6], [14], [16], [20], [22], [24], [25] [2019-02-27 13:05:34,024 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 13:05:34,024 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 13:05:34,035 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 13:05:34,035 INFO L272 AbstractInterpreter]: Visited 8 different actions 8 times. Never merged. Never widened. Performed 60 root evaluator evaluations with a maximum evaluation depth of 3. Performed 60 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-02-27 13:05:34,035 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:05:34,036 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 13:05:34,036 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:05:34,036 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 49 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 49 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-27 13:05:34,046 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:05:34,047 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 13:05:34,050 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:05:34,051 INFO L256 TraceCheckSpWp]: Trace formula consists of 25 conjuncts, 8 conjunts are in the unsatisfiable core [2019-02-27 13:05:34,055 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:05:34,055 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 13:05:34,095 INFO L467 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 15 treesize of output 18 [2019-02-27 13:05:34,109 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:34,110 INFO L467 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 18 treesize of output 24 [2019-02-27 13:05:34,126 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:34,127 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:34,128 INFO L467 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 20 treesize of output 34 [2019-02-27 13:05:34,149 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:34,150 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:34,152 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:34,153 INFO L467 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 22 treesize of output 45 [2019-02-27 13:05:34,161 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 13:05:34,185 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:05:34,197 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:05:34,208 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:05:34,225 INFO L301 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-02-27 13:05:34,226 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-02-27 13:05:34,232 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:05:34,232 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_295|, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_295| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:05:34,232 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:05:34,312 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:34,314 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:34,315 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:34,316 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:34,318 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:34,319 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:34,321 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:34,322 INFO L467 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-02-27 13:05:34,330 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:05:34,359 INFO L301 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-02-27 13:05:34,359 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-02-27 13:05:34,939 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:05:34,940 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_296|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_296| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_296| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_296| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_296| ULTIMATE.start_main_p2) 0) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= |#memory_int| (store |v_#memory_int_296| ULTIMATE.start_main_p1 (+ .cse0 1))))) [2019-02-27 13:05:34,940 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:05:35,015 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:35,017 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:35,018 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:35,019 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:35,021 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:35,059 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:35,083 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:35,105 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:35,106 INFO L467 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 45 [2019-02-27 13:05:35,127 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:05:35,156 INFO L301 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-02-27 13:05:35,156 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-02-27 13:05:35,164 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:05:35,164 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_297|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_297| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_297| ULTIMATE.start_main_p1) 1) (= 0 (select |v_#memory_int_297| ULTIMATE.start_main_p3)) (= (select |v_#memory_int_297| ULTIMATE.start_main_p2) 0) (= (store |v_#memory_int_297| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= .cse0 0))) [2019-02-27 13:05:35,164 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:05:35,248 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:35,250 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:35,251 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:35,252 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:35,254 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:35,255 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:35,256 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:35,257 INFO L158 IndexEqualityManager]: detected equality via solver [2019-02-27 13:05:35,258 INFO L467 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 47 [2019-02-27 13:05:35,265 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:05:35,297 INFO L301 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-02-27 13:05:35,297 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-02-27 13:05:35,307 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:05:35,307 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_298|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_298| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |v_#memory_int_298| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |v_#memory_int_298| ULTIMATE.start_main_p2)) (= (store |v_#memory_int_298| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 1 (select |v_#memory_int_298| ULTIMATE.start_main_p1)))) [2019-02-27 13:05:35,307 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:05:35,437 INFO L273 TraceCheckUtils]: 0: Hoare triple {35775#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {35784#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:05:35,456 INFO L273 TraceCheckUtils]: 1: Hoare triple {35784#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {35788#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:05:35,470 INFO L273 TraceCheckUtils]: 2: Hoare triple {35788#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {35792#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-02-27 13:05:35,473 INFO L273 TraceCheckUtils]: 3: Hoare triple {35792#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {35796#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-27 13:05:35,476 INFO L273 TraceCheckUtils]: 4: Hoare triple {35796#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume #memory_int[main_p1] >= 0; {35796#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-27 13:05:35,477 INFO L273 TraceCheckUtils]: 5: Hoare triple {35796#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume #memory_int[main_p2] <= 0; {35796#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-27 13:05:35,478 INFO L273 TraceCheckUtils]: 6: Hoare triple {35796#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume #memory_int[main_p3] >= 0; {35796#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-27 13:05:35,479 INFO L273 TraceCheckUtils]: 7: Hoare triple {35796#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p4] <= 0); {35776#false} is VALID [2019-02-27 13:05:35,480 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:05:35,480 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 13:05:35,578 INFO L273 TraceCheckUtils]: 7: Hoare triple {35809#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {35776#false} is VALID [2019-02-27 13:05:35,579 INFO L273 TraceCheckUtils]: 6: Hoare triple {35809#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {35809#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:05:35,580 INFO L273 TraceCheckUtils]: 5: Hoare triple {35809#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {35809#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:05:35,580 INFO L273 TraceCheckUtils]: 4: Hoare triple {35809#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {35809#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:05:35,581 INFO L273 TraceCheckUtils]: 3: Hoare triple {35822#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {35809#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:05:35,582 INFO L273 TraceCheckUtils]: 2: Hoare triple {35826#(<= (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_p4) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {35822#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:05:35,584 INFO L273 TraceCheckUtils]: 1: Hoare triple {35830#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (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) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {35826#(<= (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_p4) 0)} is VALID [2019-02-27 13:05:35,586 INFO L273 TraceCheckUtils]: 0: Hoare triple {35775#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {35830#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (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) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:05:35,587 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 3 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:05:35,607 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 13:05:35,607 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-02-27 13:05:35,607 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 13:05:35,607 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 8 [2019-02-27 13:05:35,608 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 13:05:35,608 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-02-27 13:05:35,641 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 16 edges. 16 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:05:35,641 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-02-27 13:05:35,641 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-02-27 13:05:35,641 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=70, Invalid=112, Unknown=0, NotChecked=0, Total=182 [2019-02-27 13:05:35,642 INFO L87 Difference]: Start difference. First operand 33 states and 119 transitions. Second operand 10 states. [2019-02-27 13:05:41,698 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:05:41,698 INFO L93 Difference]: Finished difference Result 62 states and 209 transitions. [2019-02-27 13:05:41,698 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-02-27 13:05:41,698 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 8 [2019-02-27 13:05:41,699 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 13:05:41,699 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-27 13:05:41,699 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 45 transitions. [2019-02-27 13:05:41,699 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-27 13:05:41,700 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 45 transitions. [2019-02-27 13:05:41,700 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 45 transitions. [2019-02-27 13:05:41,766 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 45 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:05:41,767 INFO L225 Difference]: With dead ends: 62 [2019-02-27 13:05:41,767 INFO L226 Difference]: Without dead ends: 52 [2019-02-27 13:05:41,768 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 22 GetRequests, 7 SyntacticMatches, 1 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 60 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=88, Invalid=152, Unknown=0, NotChecked=0, Total=240 [2019-02-27 13:05:41,768 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 52 states. [2019-02-27 13:05:46,362 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 52 to 45. [2019-02-27 13:05:46,363 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 13:05:46,363 INFO L82 GeneralOperation]: Start isEquivalent. First operand 52 states. Second operand 45 states. [2019-02-27 13:05:46,363 INFO L74 IsIncluded]: Start isIncluded. First operand 52 states. Second operand 45 states. [2019-02-27 13:05:46,363 INFO L87 Difference]: Start difference. First operand 52 states. Second operand 45 states. [2019-02-27 13:05:46,364 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:05:46,364 INFO L93 Difference]: Finished difference Result 52 states and 195 transitions. [2019-02-27 13:05:46,364 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 195 transitions. [2019-02-27 13:05:46,364 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:05:46,365 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:05:46,365 INFO L74 IsIncluded]: Start isIncluded. First operand 45 states. Second operand 52 states. [2019-02-27 13:05:46,365 INFO L87 Difference]: Start difference. First operand 45 states. Second operand 52 states. [2019-02-27 13:05:46,366 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:05:46,366 INFO L93 Difference]: Finished difference Result 52 states and 195 transitions. [2019-02-27 13:05:46,366 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 195 transitions. [2019-02-27 13:05:46,366 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:05:46,366 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:05:46,367 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 13:05:46,367 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 13:05:46,367 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 45 states. [2019-02-27 13:05:46,367 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 45 states to 45 states and 167 transitions. [2019-02-27 13:05:46,368 INFO L78 Accepts]: Start accepts. Automaton has 45 states and 167 transitions. Word has length 8 [2019-02-27 13:05:46,368 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 13:05:46,368 INFO L480 AbstractCegarLoop]: Abstraction has 45 states and 167 transitions. [2019-02-27 13:05:46,368 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-02-27 13:05:46,368 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 167 transitions. [2019-02-27 13:05:46,368 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 9 [2019-02-27 13:05:46,368 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 13:05:46,369 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1] [2019-02-27 13:05:46,369 INFO L423 AbstractCegarLoop]: === Iteration 52 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 13:05:46,369 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:05:46,369 INFO L82 PathProgramCache]: Analyzing trace with hash -477561138, now seen corresponding path program 1 times [2019-02-27 13:05:46,369 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 13:05:46,370 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:05:46,370 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:05:46,370 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:05:46,370 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 13:05:46,373 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:05:46,710 INFO L273 TraceCheckUtils]: 0: Hoare triple {36135#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {36137#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-27 13:05:46,711 INFO L273 TraceCheckUtils]: 1: Hoare triple {36137#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36137#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-27 13:05:46,712 INFO L273 TraceCheckUtils]: 2: Hoare triple {36137#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {36137#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-27 13:05:46,713 INFO L273 TraceCheckUtils]: 3: Hoare triple {36137#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {36138#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:05:46,714 INFO L273 TraceCheckUtils]: 4: Hoare triple {36138#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {36138#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:05:46,714 INFO L273 TraceCheckUtils]: 5: Hoare triple {36138#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {36138#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:05:46,715 INFO L273 TraceCheckUtils]: 6: Hoare triple {36138#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {36138#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:05:46,715 INFO L273 TraceCheckUtils]: 7: Hoare triple {36138#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {36136#false} is VALID [2019-02-27 13:05:46,716 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2019-02-27 13:05:46,716 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:05:46,716 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 13:05:46,716 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 9 with the following transitions: [2019-02-27 13:05:46,717 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [14], [20], [22], [24], [25] [2019-02-27 13:05:46,718 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 13:05:46,718 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 13:05:46,733 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 13:05:46,733 INFO L272 AbstractInterpreter]: Visited 8 different actions 8 times. Never merged. Never widened. Performed 60 root evaluator evaluations with a maximum evaluation depth of 3. Performed 60 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-02-27 13:05:46,733 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:05:46,733 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 13:05:46,733 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:05:46,733 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 50 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 50 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-27 13:05:46,743 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:05:46,743 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 13:05:46,750 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:05:46,750 INFO L256 TraceCheckSpWp]: Trace formula consists of 25 conjuncts, 8 conjunts are in the unsatisfiable core [2019-02-27 13:05:46,756 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:05:46,756 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 13:05:46,792 INFO L467 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 15 treesize of output 18 [2019-02-27 13:05:46,803 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:46,804 INFO L467 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 18 treesize of output 24 [2019-02-27 13:05:46,820 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:46,822 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:46,823 INFO L467 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 20 treesize of output 34 [2019-02-27 13:05:46,845 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:46,846 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:46,848 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:46,849 INFO L467 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 22 treesize of output 45 [2019-02-27 13:05:46,856 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 13:05:46,875 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:05:46,888 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:05:46,899 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:05:46,917 INFO L301 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:05:46,917 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-02-27 13:05:46,924 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:05:46,924 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_302|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_302| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:05:46,924 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:05:47,003 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:47,004 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:47,006 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:47,007 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:47,008 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:47,010 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:47,011 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:47,012 INFO L467 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-02-27 13:05:47,020 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:05:47,051 INFO L301 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-02-27 13:05:47,051 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-02-27 13:05:47,106 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:05:47,107 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_303|, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_303| ULTIMATE.start_main_p1))) (and (= 0 (select |v_#memory_int_303| ULTIMATE.start_main_p3)) (= (select |v_#memory_int_303| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_303| ULTIMATE.start_main_p1 (+ .cse0 1))) (= 0 .cse0) (= 0 (select |v_#memory_int_303| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-02-27 13:05:47,107 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:05:47,184 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:47,185 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:47,187 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:47,188 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:47,189 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:47,190 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:47,192 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:47,193 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:47,194 INFO L467 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 45 [2019-02-27 13:05:47,202 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:05:47,235 INFO L301 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-02-27 13:05:47,235 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-02-27 13:05:47,244 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:05:47,245 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_304|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_304| ULTIMATE.start_main_p2))) (and (= 0 (select |v_#memory_int_304| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |v_#memory_int_304| ULTIMATE.start_main_p1)) (= 0 .cse0) (= 0 (select |v_#memory_int_304| ULTIMATE.start_main_p4)) (= (store |v_#memory_int_304| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-02-27 13:05:47,245 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:05:47,323 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:47,324 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:47,326 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:47,327 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:47,328 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:47,330 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:47,331 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:47,331 INFO L158 IndexEqualityManager]: detected equality via solver [2019-02-27 13:05:47,332 INFO L467 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 47 [2019-02-27 13:05:47,340 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:05:47,376 INFO L301 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-02-27 13:05:47,376 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-02-27 13:05:47,394 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:05:47,394 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_305|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_305| ULTIMATE.start_main_p3))) (and (= 1 (select |v_#memory_int_305| ULTIMATE.start_main_p1)) (= .cse0 0) (= (select |v_#memory_int_305| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_305| ULTIMATE.start_main_p2) 1)) (= (store |v_#memory_int_305| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:05:47,394 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:05:47,554 INFO L273 TraceCheckUtils]: 0: Hoare triple {36135#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {36142#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 13:05:47,556 INFO L273 TraceCheckUtils]: 1: Hoare triple {36142#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36146#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:05:47,558 INFO L273 TraceCheckUtils]: 2: Hoare triple {36146#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {36150#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:05:47,561 INFO L273 TraceCheckUtils]: 3: Hoare triple {36150#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {36154#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:05:47,563 INFO L273 TraceCheckUtils]: 4: Hoare triple {36154#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p1] >= 0; {36154#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:05:47,564 INFO L273 TraceCheckUtils]: 5: Hoare triple {36154#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p2] <= 0; {36154#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:05:47,565 INFO L273 TraceCheckUtils]: 6: Hoare triple {36154#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p3] >= 0; {36154#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:05:47,565 INFO L273 TraceCheckUtils]: 7: Hoare triple {36154#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume !(#memory_int[main_p4] <= 0); {36136#false} is VALID [2019-02-27 13:05:47,566 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:05:47,566 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 13:05:47,674 INFO L273 TraceCheckUtils]: 7: Hoare triple {36167#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {36136#false} is VALID [2019-02-27 13:05:47,675 INFO L273 TraceCheckUtils]: 6: Hoare triple {36167#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {36167#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:05:47,675 INFO L273 TraceCheckUtils]: 5: Hoare triple {36167#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {36167#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:05:47,676 INFO L273 TraceCheckUtils]: 4: Hoare triple {36167#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {36167#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:05:47,677 INFO L273 TraceCheckUtils]: 3: Hoare triple {36180#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {36167#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:05:47,679 INFO L273 TraceCheckUtils]: 2: Hoare triple {36184#(<= (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_p4) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {36180#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:05:47,681 INFO L273 TraceCheckUtils]: 1: Hoare triple {36188#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36184#(<= (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_p4) 0)} is VALID [2019-02-27 13:05:47,683 INFO L273 TraceCheckUtils]: 0: Hoare triple {36135#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {36188#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:05:47,684 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 1 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:05:47,705 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 13:05:47,705 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 4, 4] total 10 [2019-02-27 13:05:47,705 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 13:05:47,705 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 8 [2019-02-27 13:05:47,705 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 13:05:47,705 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-02-27 13:05:47,733 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 16 edges. 16 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:05:47,733 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-02-27 13:05:47,733 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-02-27 13:05:47,733 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=46, Invalid=86, Unknown=0, NotChecked=0, Total=132 [2019-02-27 13:05:47,734 INFO L87 Difference]: Start difference. First operand 45 states and 167 transitions. Second operand 8 states. [2019-02-27 13:05:53,958 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:05:53,958 INFO L93 Difference]: Finished difference Result 59 states and 204 transitions. [2019-02-27 13:05:53,959 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-02-27 13:05:53,959 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 8 [2019-02-27 13:05:53,959 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 13:05:53,959 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-27 13:05:53,960 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 37 transitions. [2019-02-27 13:05:53,960 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-27 13:05:53,960 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 37 transitions. [2019-02-27 13:05:53,960 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 37 transitions. [2019-02-27 13:05:54,359 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 37 edges. 37 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:05:54,360 INFO L225 Difference]: With dead ends: 59 [2019-02-27 13:05:54,360 INFO L226 Difference]: Without dead ends: 52 [2019-02-27 13:05:54,361 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 24 GetRequests, 7 SyntacticMatches, 4 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 41 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=73, Invalid=137, Unknown=0, NotChecked=0, Total=210 [2019-02-27 13:05:54,361 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 52 states. [2019-02-27 13:05:59,276 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 52 to 45. [2019-02-27 13:05:59,276 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 13:05:59,276 INFO L82 GeneralOperation]: Start isEquivalent. First operand 52 states. Second operand 45 states. [2019-02-27 13:05:59,277 INFO L74 IsIncluded]: Start isIncluded. First operand 52 states. Second operand 45 states. [2019-02-27 13:05:59,277 INFO L87 Difference]: Start difference. First operand 52 states. Second operand 45 states. [2019-02-27 13:05:59,278 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:05:59,278 INFO L93 Difference]: Finished difference Result 52 states and 195 transitions. [2019-02-27 13:05:59,278 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 195 transitions. [2019-02-27 13:05:59,278 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:05:59,278 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:05:59,279 INFO L74 IsIncluded]: Start isIncluded. First operand 45 states. Second operand 52 states. [2019-02-27 13:05:59,279 INFO L87 Difference]: Start difference. First operand 45 states. Second operand 52 states. [2019-02-27 13:05:59,280 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:05:59,280 INFO L93 Difference]: Finished difference Result 52 states and 195 transitions. [2019-02-27 13:05:59,280 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 195 transitions. [2019-02-27 13:05:59,280 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:05:59,280 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:05:59,280 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 13:05:59,281 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 13:05:59,281 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 45 states. [2019-02-27 13:05:59,281 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 45 states to 45 states and 167 transitions. [2019-02-27 13:05:59,282 INFO L78 Accepts]: Start accepts. Automaton has 45 states and 167 transitions. Word has length 8 [2019-02-27 13:05:59,282 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 13:05:59,282 INFO L480 AbstractCegarLoop]: Abstraction has 45 states and 167 transitions. [2019-02-27 13:05:59,282 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-02-27 13:05:59,282 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 167 transitions. [2019-02-27 13:05:59,282 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 10 [2019-02-27 13:05:59,282 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 13:05:59,282 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1, 1, 1] [2019-02-27 13:05:59,282 INFO L423 AbstractCegarLoop]: === Iteration 53 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 13:05:59,282 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:05:59,283 INFO L82 PathProgramCache]: Analyzing trace with hash -1160942496, now seen corresponding path program 2 times [2019-02-27 13:05:59,283 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 13:05:59,283 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:05:59,283 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:05:59,283 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:05:59,283 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 13:05:59,286 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:05:59,560 INFO L273 TraceCheckUtils]: 0: Hoare triple {36492#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {36494#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-27 13:05:59,561 INFO L273 TraceCheckUtils]: 1: Hoare triple {36494#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (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]; {36495#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 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) 0))} is VALID [2019-02-27 13:05:59,563 INFO L273 TraceCheckUtils]: 2: Hoare triple {36495#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 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) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36495#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 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) 0))} is VALID [2019-02-27 13:05:59,564 INFO L273 TraceCheckUtils]: 3: Hoare triple {36495#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 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) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36495#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 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) 0))} is VALID [2019-02-27 13:05:59,565 INFO L273 TraceCheckUtils]: 4: Hoare triple {36495#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 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) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {36496#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-02-27 13:05:59,565 INFO L273 TraceCheckUtils]: 5: Hoare triple {36496#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p1] >= 0; {36496#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-02-27 13:05:59,566 INFO L273 TraceCheckUtils]: 6: Hoare triple {36496#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p2] <= 0; {36496#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-02-27 13:05:59,566 INFO L273 TraceCheckUtils]: 7: Hoare triple {36496#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p3] >= 0; {36496#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-02-27 13:05:59,567 INFO L273 TraceCheckUtils]: 8: Hoare triple {36496#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume !(#memory_int[main_p4] <= 0); {36493#false} is VALID [2019-02-27 13:05:59,568 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 7 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2019-02-27 13:05:59,568 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:05:59,568 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 13:05:59,568 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-02-27 13:05:59,568 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-02-27 13:05:59,569 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:05:59,569 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 51 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 51 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-27 13:05:59,578 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-02-27 13:05:59,578 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-02-27 13:05:59,585 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-02-27 13:05:59,585 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-02-27 13:05:59,586 INFO L256 TraceCheckSpWp]: Trace formula consists of 26 conjuncts, 9 conjunts are in the unsatisfiable core [2019-02-27 13:05:59,592 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:05:59,593 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 13:05:59,627 INFO L467 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 15 treesize of output 18 [2019-02-27 13:05:59,650 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:59,651 INFO L467 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 18 treesize of output 24 [2019-02-27 13:05:59,677 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:59,678 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:59,679 INFO L467 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 20 treesize of output 34 [2019-02-27 13:05:59,703 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:59,704 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:59,706 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:59,707 INFO L467 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 22 treesize of output 45 [2019-02-27 13:05:59,715 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 13:05:59,735 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:05:59,747 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:05:59,758 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:05:59,776 INFO L301 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-02-27 13:05:59,777 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-02-27 13:05:59,786 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:05:59,786 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_309|, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_309| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:05:59,786 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:05:59,860 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:59,862 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:59,863 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:59,864 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:59,865 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:59,867 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:59,868 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:05:59,869 INFO L467 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-02-27 13:05:59,877 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:05:59,906 INFO L301 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-02-27 13:05:59,906 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-02-27 13:05:59,923 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:05:59,924 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_310|, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_310| ULTIMATE.start_main_p4))) (and (= 0 (select |v_#memory_int_310| ULTIMATE.start_main_p2)) (= (store |v_#memory_int_310| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_310| ULTIMATE.start_main_p1)) (= .cse0 0) (= 0 (select |v_#memory_int_310| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:05:59,924 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 13:06:00,004 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:00,005 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:00,005 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:00,006 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:00,008 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:00,009 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:00,011 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:00,012 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:00,013 INFO L467 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 47 [2019-02-27 13:06:00,021 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:06:00,052 INFO L301 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-02-27 13:06:00,052 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:42, output treesize:32 [2019-02-27 13:06:00,058 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:06:00,059 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_311|, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_311| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |v_#memory_int_311| ULTIMATE.start_main_p4) 1) 0) (= |#memory_int| (store |v_#memory_int_311| ULTIMATE.start_main_p1 (+ .cse0 1))) (= 0 .cse0) (= 0 (select |v_#memory_int_311| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 (select |v_#memory_int_311| ULTIMATE.start_main_p3)))) [2019-02-27 13:06:00,059 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 13:06:00,134 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:00,136 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:00,137 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:00,139 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:00,140 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:00,142 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:00,143 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:00,144 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:00,145 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:00,146 INFO L467 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 47 [2019-02-27 13:06:00,154 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:06:00,185 INFO L301 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-02-27 13:06:00,185 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-02-27 13:06:00,212 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:06:00,212 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_312|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_312| ULTIMATE.start_main_p1))) (and (= 0 (+ (select |v_#memory_int_312| ULTIMATE.start_main_p4) 1)) (= |#memory_int| (store |v_#memory_int_312| ULTIMATE.start_main_p1 (+ .cse0 1))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_312| ULTIMATE.start_main_p3)) (= (select |v_#memory_int_312| ULTIMATE.start_main_p2) 0) (= .cse0 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:06:00,212 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:06:00,293 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:00,294 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:00,295 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:00,297 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:00,298 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:00,299 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:00,300 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:00,302 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:00,303 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:00,304 INFO L467 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 47 [2019-02-27 13:06:00,311 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:06:00,342 INFO L301 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-02-27 13:06:00,343 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-02-27 13:06:03,032 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:06:03,032 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_313|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_313| ULTIMATE.start_main_p3))) (and (= (store |v_#memory_int_313| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 2 (select |v_#memory_int_313| ULTIMATE.start_main_p1)) (= .cse0 0) (= (select |v_#memory_int_313| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |v_#memory_int_313| ULTIMATE.start_main_p4) 1) 0))) [2019-02-27 13:06:03,033 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:06:03,199 INFO L273 TraceCheckUtils]: 0: Hoare triple {36492#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {36500#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:06:03,201 INFO L273 TraceCheckUtils]: 1: Hoare triple {36500#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {36504#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-27 13:06:03,203 INFO L273 TraceCheckUtils]: 2: Hoare triple {36504#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36508#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-27 13:06:03,204 INFO L273 TraceCheckUtils]: 3: Hoare triple {36508#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36512#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-27 13:06:03,207 INFO L273 TraceCheckUtils]: 4: Hoare triple {36512#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {36516#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-27 13:06:03,207 INFO L273 TraceCheckUtils]: 5: Hoare triple {36516#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume #memory_int[main_p1] >= 0; {36516#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-27 13:06:03,208 INFO L273 TraceCheckUtils]: 6: Hoare triple {36516#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume #memory_int[main_p2] <= 0; {36516#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-27 13:06:03,209 INFO L273 TraceCheckUtils]: 7: Hoare triple {36516#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume #memory_int[main_p3] >= 0; {36516#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-27 13:06:03,209 INFO L273 TraceCheckUtils]: 8: Hoare triple {36516#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p4] <= 0); {36493#false} is VALID [2019-02-27 13:06:03,210 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:06:03,210 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 13:06:03,393 INFO L273 TraceCheckUtils]: 8: Hoare triple {36529#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {36493#false} is VALID [2019-02-27 13:06:03,395 INFO L273 TraceCheckUtils]: 7: Hoare triple {36529#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {36529#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:06:03,395 INFO L273 TraceCheckUtils]: 6: Hoare triple {36529#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {36529#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:06:03,397 INFO L273 TraceCheckUtils]: 5: Hoare triple {36529#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {36529#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:06:03,398 INFO L273 TraceCheckUtils]: 4: Hoare triple {36542#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {36529#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:06:03,399 INFO L273 TraceCheckUtils]: 3: Hoare triple {36546#(<= (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_p4) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36542#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:06:03,400 INFO L273 TraceCheckUtils]: 2: Hoare triple {36550#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36546#(<= (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_p4) 0)} is VALID [2019-02-27 13:06:03,405 INFO L273 TraceCheckUtils]: 1: Hoare triple {36554#(<= (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) 2)) 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) 2)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {36550#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:06:03,407 INFO L273 TraceCheckUtils]: 0: Hoare triple {36492#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {36554#(<= (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) 2)) 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) 2)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:06:03,408 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 2 proven. 8 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:06:03,427 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 13:06:03,428 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 5, 5] total 13 [2019-02-27 13:06:03,428 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 13:06:03,428 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 9 [2019-02-27 13:06:03,428 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 13:06:03,428 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-02-27 13:06:03,466 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 17 edges. 17 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:06:03,466 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-02-27 13:06:03,466 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-02-27 13:06:03,466 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=76, Invalid=134, Unknown=0, NotChecked=0, Total=210 [2019-02-27 13:06:03,467 INFO L87 Difference]: Start difference. First operand 45 states and 167 transitions. Second operand 10 states. [2019-02-27 13:06:11,138 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:06:11,138 INFO L93 Difference]: Finished difference Result 67 states and 237 transitions. [2019-02-27 13:06:11,139 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-02-27 13:06:11,139 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 9 [2019-02-27 13:06:11,139 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 13:06:11,139 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-27 13:06:11,139 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 45 transitions. [2019-02-27 13:06:11,139 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-27 13:06:11,140 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 45 transitions. [2019-02-27 13:06:11,140 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 45 transitions. [2019-02-27 13:06:11,211 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 45 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:06:11,212 INFO L225 Difference]: With dead ends: 67 [2019-02-27 13:06:11,212 INFO L226 Difference]: Without dead ends: 32 [2019-02-27 13:06:11,213 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 25 GetRequests, 8 SyntacticMatches, 2 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 73 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=96, Invalid=176, Unknown=0, NotChecked=0, Total=272 [2019-02-27 13:06:11,213 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 32 states. [2019-02-27 13:06:14,603 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 32 to 30. [2019-02-27 13:06:14,603 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 13:06:14,603 INFO L82 GeneralOperation]: Start isEquivalent. First operand 32 states. Second operand 30 states. [2019-02-27 13:06:14,603 INFO L74 IsIncluded]: Start isIncluded. First operand 32 states. Second operand 30 states. [2019-02-27 13:06:14,603 INFO L87 Difference]: Start difference. First operand 32 states. Second operand 30 states. [2019-02-27 13:06:14,605 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:06:14,605 INFO L93 Difference]: Finished difference Result 32 states and 106 transitions. [2019-02-27 13:06:14,605 INFO L276 IsEmpty]: Start isEmpty. Operand 32 states and 106 transitions. [2019-02-27 13:06:14,605 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:06:14,605 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:06:14,605 INFO L74 IsIncluded]: Start isIncluded. First operand 30 states. Second operand 32 states. [2019-02-27 13:06:14,605 INFO L87 Difference]: Start difference. First operand 30 states. Second operand 32 states. [2019-02-27 13:06:14,606 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:06:14,606 INFO L93 Difference]: Finished difference Result 32 states and 106 transitions. [2019-02-27 13:06:14,606 INFO L276 IsEmpty]: Start isEmpty. Operand 32 states and 106 transitions. [2019-02-27 13:06:14,606 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:06:14,606 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:06:14,606 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 13:06:14,606 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 13:06:14,606 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 30 states. [2019-02-27 13:06:14,607 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 30 states to 30 states and 100 transitions. [2019-02-27 13:06:14,607 INFO L78 Accepts]: Start accepts. Automaton has 30 states and 100 transitions. Word has length 9 [2019-02-27 13:06:14,607 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 13:06:14,607 INFO L480 AbstractCegarLoop]: Abstraction has 30 states and 100 transitions. [2019-02-27 13:06:14,607 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-02-27 13:06:14,607 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states and 100 transitions. [2019-02-27 13:06:14,607 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 10 [2019-02-27 13:06:14,608 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 13:06:14,608 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1, 1, 1] [2019-02-27 13:06:14,608 INFO L423 AbstractCegarLoop]: === Iteration 54 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 13:06:14,608 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:06:14,608 INFO L82 PathProgramCache]: Analyzing trace with hash -1292813016, now seen corresponding path program 1 times [2019-02-27 13:06:14,608 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 13:06:14,609 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:06:14,609 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-02-27 13:06:14,609 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:06:14,609 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 13:06:14,612 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:06:14,908 INFO L273 TraceCheckUtils]: 0: Hoare triple {36802#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {36804#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-27 13:06:14,909 INFO L273 TraceCheckUtils]: 1: Hoare triple {36804#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36804#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-27 13:06:14,910 INFO L273 TraceCheckUtils]: 2: Hoare triple {36804#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36804#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-27 13:06:14,911 INFO L273 TraceCheckUtils]: 3: Hoare triple {36804#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {36805#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:06:14,912 INFO L273 TraceCheckUtils]: 4: Hoare triple {36805#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {36806#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-02-27 13:06:14,913 INFO L273 TraceCheckUtils]: 5: Hoare triple {36806#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p1] >= 0; {36806#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-02-27 13:06:14,913 INFO L273 TraceCheckUtils]: 6: Hoare triple {36806#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p2] <= 0; {36806#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-02-27 13:06:14,914 INFO L273 TraceCheckUtils]: 7: Hoare triple {36806#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p3] >= 0; {36806#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-02-27 13:06:14,915 INFO L273 TraceCheckUtils]: 8: Hoare triple {36806#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume !(#memory_int[main_p4] <= 0); {36803#false} is VALID [2019-02-27 13:06:14,915 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 7 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2019-02-27 13:06:14,916 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:06:14,916 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 13:06:14,916 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 10 with the following transitions: [2019-02-27 13:06:14,916 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [16], [20], [22], [24], [25] [2019-02-27 13:06:14,919 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 13:06:14,919 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 13:06:14,943 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 13:06:14,943 INFO L272 AbstractInterpreter]: Visited 8 different actions 8 times. Never merged. Never widened. Performed 60 root evaluator evaluations with a maximum evaluation depth of 3. Performed 60 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-02-27 13:06:14,944 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:06:14,944 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 13:06:14,944 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:06:14,944 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 52 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 52 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-27 13:06:14,953 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:06:14,953 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 13:06:14,957 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:06:14,958 INFO L256 TraceCheckSpWp]: Trace formula consists of 26 conjuncts, 9 conjunts are in the unsatisfiable core [2019-02-27 13:06:14,962 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:06:14,962 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 13:06:15,002 INFO L467 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 15 treesize of output 18 [2019-02-27 13:06:15,013 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:15,014 INFO L467 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 18 treesize of output 24 [2019-02-27 13:06:15,030 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:15,032 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:15,033 INFO L467 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 20 treesize of output 34 [2019-02-27 13:06:15,054 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:15,056 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:15,057 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:15,058 INFO L467 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 22 treesize of output 45 [2019-02-27 13:06:15,065 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 13:06:15,087 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:06:15,100 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:06:15,111 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:06:15,132 INFO L301 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-02-27 13:06:15,133 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-02-27 13:06:15,140 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:06:15,140 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_318|, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_318| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 13:06:15,140 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:06:15,219 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:15,220 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:15,222 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:15,223 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:15,224 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:15,226 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:15,227 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:15,228 INFO L467 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-02-27 13:06:15,236 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:06:15,272 INFO L301 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-02-27 13:06:15,273 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-02-27 13:06:15,285 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:06:15,286 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_319|, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_319| ULTIMATE.start_main_p1))) (and (= (store |v_#memory_int_319| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_319| ULTIMATE.start_main_p4) 0) (= 0 (select |v_#memory_int_319| ULTIMATE.start_main_p3)) (= 0 (select |v_#memory_int_319| ULTIMATE.start_main_p2)) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:06:15,286 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:06:15,362 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:15,364 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:15,365 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:15,367 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:15,368 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:15,369 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:15,371 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:15,372 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:15,373 INFO L467 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 45 [2019-02-27 13:06:15,381 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:06:15,414 INFO L301 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-02-27 13:06:15,415 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-02-27 13:06:15,449 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:06:15,450 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_320|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_320| ULTIMATE.start_main_p1))) (and (= (select |v_#memory_int_320| ULTIMATE.start_main_p3) 0) (= .cse0 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_320| ULTIMATE.start_main_p4)) (= |#memory_int| (store |v_#memory_int_320| ULTIMATE.start_main_p1 (+ .cse0 1))) (= (select |v_#memory_int_320| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:06:15,450 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:06:15,529 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:15,530 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:15,531 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:15,533 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:15,534 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:15,535 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:15,536 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:15,538 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:15,538 INFO L467 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 45 [2019-02-27 13:06:15,546 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:06:15,579 INFO L301 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-02-27 13:06:15,579 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-02-27 13:06:15,592 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:06:15,592 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_321|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_321| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_321| ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_321| ULTIMATE.start_main_p3)) (= 2 (select |v_#memory_int_321| ULTIMATE.start_main_p1)) (= (store |v_#memory_int_321| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= 0 .cse0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-02-27 13:06:15,592 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:06:15,670 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:15,671 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:15,677 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:15,679 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:15,679 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:15,681 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:15,682 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:15,683 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:15,683 INFO L158 IndexEqualityManager]: detected equality via solver [2019-02-27 13:06:15,684 INFO L467 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 47 [2019-02-27 13:06:15,692 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:06:15,728 INFO L301 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-02-27 13:06:15,729 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-02-27 13:06:15,740 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:06:15,740 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_322|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_322| ULTIMATE.start_main_p4))) (and (= 0 (select |v_#memory_int_322| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_322| ULTIMATE.start_main_p2) 1)) (= (store |v_#memory_int_322| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= 2 (select |v_#memory_int_322| ULTIMATE.start_main_p1)) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:06:15,741 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-02-27 13:06:15,925 INFO L273 TraceCheckUtils]: 0: Hoare triple {36802#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {36810#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 13:06:15,927 INFO L273 TraceCheckUtils]: 1: Hoare triple {36810#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36814#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 13:06:15,928 INFO L273 TraceCheckUtils]: 2: Hoare triple {36814#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36818#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:06:15,930 INFO L273 TraceCheckUtils]: 3: Hoare triple {36818#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {36822#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:06:15,933 INFO L273 TraceCheckUtils]: 4: Hoare triple {36822#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {36826#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-02-27 13:06:15,934 INFO L273 TraceCheckUtils]: 5: Hoare triple {36826#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p1] >= 0; {36826#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-02-27 13:06:15,934 INFO L273 TraceCheckUtils]: 6: Hoare triple {36826#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p2] <= 0; {36826#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-02-27 13:06:15,935 INFO L273 TraceCheckUtils]: 7: Hoare triple {36826#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p3] >= 0; {36826#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-02-27 13:06:15,935 INFO L273 TraceCheckUtils]: 8: Hoare triple {36826#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume !(#memory_int[main_p4] <= 0); {36803#false} is VALID [2019-02-27 13:06:15,936 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:06:15,937 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 13:06:16,055 INFO L273 TraceCheckUtils]: 8: Hoare triple {36839#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {36803#false} is VALID [2019-02-27 13:06:16,056 INFO L273 TraceCheckUtils]: 7: Hoare triple {36839#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {36839#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:06:16,056 INFO L273 TraceCheckUtils]: 6: Hoare triple {36839#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {36839#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:06:16,057 INFO L273 TraceCheckUtils]: 5: Hoare triple {36839#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {36839#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:06:16,058 INFO L273 TraceCheckUtils]: 4: Hoare triple {36852#(<= (select |#memory_int| ULTIMATE.start_main_p4) 1)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {36839#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:06:16,059 INFO L273 TraceCheckUtils]: 3: Hoare triple {36856#(<= (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) 1)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {36852#(<= (select |#memory_int| ULTIMATE.start_main_p4) 1)} is VALID [2019-02-27 13:06:16,061 INFO L273 TraceCheckUtils]: 2: Hoare triple {36860#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) 1)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36856#(<= (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) 1)} is VALID [2019-02-27 13:06:16,062 INFO L273 TraceCheckUtils]: 1: Hoare triple {36864#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) 1)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36860#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) 1)} is VALID [2019-02-27 13:06:16,064 INFO L273 TraceCheckUtils]: 0: Hoare triple {36802#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {36864#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) 1)} is VALID [2019-02-27 13:06:16,065 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 4 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:06:16,085 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 13:06:16,085 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 5, 5] total 13 [2019-02-27 13:06:16,085 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 13:06:16,085 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 9 [2019-02-27 13:06:16,085 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 13:06:16,086 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-02-27 13:06:16,119 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 17 edges. 17 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:06:16,119 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-02-27 13:06:16,119 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-02-27 13:06:16,119 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=79, Invalid=131, Unknown=0, NotChecked=0, Total=210 [2019-02-27 13:06:16,119 INFO L87 Difference]: Start difference. First operand 30 states and 100 transitions. Second operand 10 states. [2019-02-27 13:06:21,432 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:06:21,433 INFO L93 Difference]: Finished difference Result 47 states and 147 transitions. [2019-02-27 13:06:21,433 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-02-27 13:06:21,433 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 9 [2019-02-27 13:06:21,433 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 13:06:21,433 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-27 13:06:21,434 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 42 transitions. [2019-02-27 13:06:21,434 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-27 13:06:21,434 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 42 transitions. [2019-02-27 13:06:21,434 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 42 transitions. [2019-02-27 13:06:21,498 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 42 edges. 42 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:06:21,499 INFO L225 Difference]: With dead ends: 47 [2019-02-27 13:06:21,499 INFO L226 Difference]: Without dead ends: 40 [2019-02-27 13:06:21,499 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 25 GetRequests, 8 SyntacticMatches, 2 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 73 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=99, Invalid=173, Unknown=0, NotChecked=0, Total=272 [2019-02-27 13:06:21,500 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 40 states. [2019-02-27 13:06:25,662 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 40 to 36. [2019-02-27 13:06:25,663 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 13:06:25,663 INFO L82 GeneralOperation]: Start isEquivalent. First operand 40 states. Second operand 36 states. [2019-02-27 13:06:25,663 INFO L74 IsIncluded]: Start isIncluded. First operand 40 states. Second operand 36 states. [2019-02-27 13:06:25,663 INFO L87 Difference]: Start difference. First operand 40 states. Second operand 36 states. [2019-02-27 13:06:25,664 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:06:25,664 INFO L93 Difference]: Finished difference Result 40 states and 138 transitions. [2019-02-27 13:06:25,664 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 138 transitions. [2019-02-27 13:06:25,664 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:06:25,664 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:06:25,665 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 40 states. [2019-02-27 13:06:25,665 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 40 states. [2019-02-27 13:06:25,665 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:06:25,665 INFO L93 Difference]: Finished difference Result 40 states and 138 transitions. [2019-02-27 13:06:25,666 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 138 transitions. [2019-02-27 13:06:25,666 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:06:25,666 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:06:25,666 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 13:06:25,666 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 13:06:25,666 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 36 states. [2019-02-27 13:06:25,667 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 36 states to 36 states and 122 transitions. [2019-02-27 13:06:25,667 INFO L78 Accepts]: Start accepts. Automaton has 36 states and 122 transitions. Word has length 9 [2019-02-27 13:06:25,667 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 13:06:25,667 INFO L480 AbstractCegarLoop]: Abstraction has 36 states and 122 transitions. [2019-02-27 13:06:25,667 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-02-27 13:06:25,667 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 122 transitions. [2019-02-27 13:06:25,667 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 10 [2019-02-27 13:06:25,667 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 13:06:25,667 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1, 1, 1] [2019-02-27 13:06:25,668 INFO L423 AbstractCegarLoop]: === Iteration 55 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 13:06:25,668 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:06:25,668 INFO L82 PathProgramCache]: Analyzing trace with hash -1875225892, now seen corresponding path program 2 times [2019-02-27 13:06:25,668 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 13:06:25,668 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:06:25,668 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:06:25,669 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:06:25,669 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 13:06:25,671 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:06:25,993 INFO L273 TraceCheckUtils]: 0: Hoare triple {37100#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {37102#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-27 13:06:25,994 INFO L273 TraceCheckUtils]: 1: Hoare triple {37102#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37102#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-27 13:06:25,995 INFO L273 TraceCheckUtils]: 2: Hoare triple {37102#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {37103#(and (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-27 13:06:25,996 INFO L273 TraceCheckUtils]: 3: Hoare triple {37103#(and (= (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]; {37104#(and (not (= ULTIMATE.start_main_p1 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) 0))} is VALID [2019-02-27 13:06:25,996 INFO L273 TraceCheckUtils]: 4: Hoare triple {37104#(and (not (= ULTIMATE.start_main_p1 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) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37104#(and (not (= ULTIMATE.start_main_p1 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) 0))} is VALID [2019-02-27 13:06:25,997 INFO L273 TraceCheckUtils]: 5: Hoare triple {37104#(and (not (= ULTIMATE.start_main_p1 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) 0))} assume #memory_int[main_p1] >= 0; {37105#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-02-27 13:06:25,997 INFO L273 TraceCheckUtils]: 6: Hoare triple {37105#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p2] <= 0; {37105#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-02-27 13:06:25,997 INFO L273 TraceCheckUtils]: 7: Hoare triple {37105#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p3] >= 0; {37105#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-02-27 13:06:25,998 INFO L273 TraceCheckUtils]: 8: Hoare triple {37105#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume !(#memory_int[main_p4] <= 0); {37101#false} is VALID [2019-02-27 13:06:25,999 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 8 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2019-02-27 13:06:25,999 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:06:25,999 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 13:06:25,999 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-02-27 13:06:25,999 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-02-27 13:06:25,999 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:06:26,000 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 53 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 53 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-27 13:06:26,010 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-02-27 13:06:26,010 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-02-27 13:06:26,020 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-02-27 13:06:26,020 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-02-27 13:06:26,020 INFO L256 TraceCheckSpWp]: Trace formula consists of 26 conjuncts, 9 conjunts are in the unsatisfiable core [2019-02-27 13:06:26,023 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:06:26,024 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 13:06:26,067 INFO L467 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 15 treesize of output 18 [2019-02-27 13:06:26,079 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:26,079 INFO L467 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 18 treesize of output 24 [2019-02-27 13:06:26,094 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:26,096 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:26,097 INFO L467 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 20 treesize of output 34 [2019-02-27 13:06:26,119 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:26,120 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:26,121 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:26,122 INFO L467 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 22 treesize of output 45 [2019-02-27 13:06:26,130 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 13:06:26,151 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:06:26,163 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:06:26,176 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:06:26,196 INFO L301 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-02-27 13:06:26,196 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-02-27 13:06:26,203 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:06:26,203 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_327|, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_327| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-27 13:06:26,204 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:06:26,283 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:26,284 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:26,286 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:26,287 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:26,288 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:26,289 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:26,291 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:26,291 INFO L467 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-02-27 13:06:26,300 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:06:26,332 INFO L301 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-02-27 13:06:26,332 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-02-27 13:06:26,346 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:06:26,347 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_328|, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_328| ULTIMATE.start_main_p1))) (and (= (select |v_#memory_int_328| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_328| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= .cse0 0) (= (select |v_#memory_int_328| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_328| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:06:26,347 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:06:26,431 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:26,433 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:26,434 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:26,436 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:26,437 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:26,438 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:26,440 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:26,441 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:26,442 INFO L467 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 45 [2019-02-27 13:06:26,450 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:06:26,481 INFO L301 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-02-27 13:06:26,481 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-02-27 13:06:26,903 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:06:26,904 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_329|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_329| ULTIMATE.start_main_p2))) (and (= 0 .cse0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_329| ULTIMATE.start_main_p1) 1) (= (select |v_#memory_int_329| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_329| ULTIMATE.start_main_p3) 0) (= |#memory_int| (store |v_#memory_int_329| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:06:26,904 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:06:27,009 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:27,010 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:27,011 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:27,012 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:27,014 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:27,015 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:27,016 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:27,017 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:27,018 INFO L158 IndexEqualityManager]: detected equality via solver [2019-02-27 13:06:27,019 INFO L467 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 47 [2019-02-27 13:06:27,027 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:06:27,064 INFO L301 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-02-27 13:06:27,065 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-02-27 13:06:27,079 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:06:27,079 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_330|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_330| ULTIMATE.start_main_p4))) (and (= .cse0 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |v_#memory_int_330| ULTIMATE.start_main_p2) 1) 0) (= (select |v_#memory_int_330| ULTIMATE.start_main_p3) 0) (= (store |v_#memory_int_330| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_330| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:06:27,079 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-02-27 13:06:27,152 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:27,154 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:27,155 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:27,156 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:27,158 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:27,159 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:27,160 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:27,161 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:27,162 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:27,163 INFO L467 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 35 treesize of output 49 [2019-02-27 13:06:27,171 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:06:27,207 INFO L301 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-02-27 13:06:27,207 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:44, output treesize:34 [2019-02-27 13:06:27,227 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:06:27,227 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_331|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_331| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_331| ULTIMATE.start_main_p4) 1)) (= .cse0 1) (= (select |v_#memory_int_331| ULTIMATE.start_main_p3) 0) (= 0 (+ (select |v_#memory_int_331| ULTIMATE.start_main_p2) 1)) (= (store |v_#memory_int_331| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:06:27,227 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-02-27 13:06:27,383 INFO L273 TraceCheckUtils]: 0: Hoare triple {37100#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {37109#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 13:06:27,385 INFO L273 TraceCheckUtils]: 1: Hoare triple {37109#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37113#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 13:06:27,388 INFO L273 TraceCheckUtils]: 2: Hoare triple {37113#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {37117#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-27 13:06:27,390 INFO L273 TraceCheckUtils]: 3: Hoare triple {37117#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {37121#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-02-27 13:06:27,394 INFO L273 TraceCheckUtils]: 4: Hoare triple {37121#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37125#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-02-27 13:06:27,395 INFO L273 TraceCheckUtils]: 5: Hoare triple {37125#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p1] >= 0; {37125#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-02-27 13:06:27,401 INFO L273 TraceCheckUtils]: 6: Hoare triple {37125#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p2] <= 0; {37125#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-02-27 13:06:27,402 INFO L273 TraceCheckUtils]: 7: Hoare triple {37125#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p3] >= 0; {37125#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-02-27 13:06:27,402 INFO L273 TraceCheckUtils]: 8: Hoare triple {37125#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume !(#memory_int[main_p4] <= 0); {37101#false} is VALID [2019-02-27 13:06:27,403 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:06:27,403 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 13:06:27,531 INFO L273 TraceCheckUtils]: 8: Hoare triple {37138#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {37101#false} is VALID [2019-02-27 13:06:27,531 INFO L273 TraceCheckUtils]: 7: Hoare triple {37138#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {37138#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:06:27,532 INFO L273 TraceCheckUtils]: 6: Hoare triple {37138#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {37138#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:06:27,532 INFO L273 TraceCheckUtils]: 5: Hoare triple {37138#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {37138#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:06:27,533 INFO L273 TraceCheckUtils]: 4: Hoare triple {37151#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37138#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:06:27,535 INFO L273 TraceCheckUtils]: 3: Hoare triple {37155#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {37151#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:06:27,537 INFO L273 TraceCheckUtils]: 2: Hoare triple {37159#(<= (select (store (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 (+ (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) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {37155#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:06:27,539 INFO L273 TraceCheckUtils]: 1: Hoare triple {37163#(<= (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37159#(<= (select (store (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 (+ (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) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:06:27,541 INFO L273 TraceCheckUtils]: 0: Hoare triple {37100#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {37163#(<= (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:06:27,542 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 6 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:06:27,561 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 13:06:27,561 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 5, 5] total 14 [2019-02-27 13:06:27,561 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 13:06:27,562 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 9 [2019-02-27 13:06:27,562 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 13:06:27,562 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states. [2019-02-27 13:06:27,594 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 18 edges. 18 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:06:27,594 INFO L459 AbstractCegarLoop]: Interpolant automaton has 11 states [2019-02-27 13:06:27,594 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2019-02-27 13:06:27,594 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=92, Invalid=148, Unknown=0, NotChecked=0, Total=240 [2019-02-27 13:06:27,595 INFO L87 Difference]: Start difference. First operand 36 states and 122 transitions. Second operand 11 states. [2019-02-27 13:06:33,641 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:06:33,642 INFO L93 Difference]: Finished difference Result 52 states and 168 transitions. [2019-02-27 13:06:33,642 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-02-27 13:06:33,642 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 9 [2019-02-27 13:06:33,642 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 13:06:33,642 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2019-02-27 13:06:33,643 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 43 transitions. [2019-02-27 13:06:33,643 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2019-02-27 13:06:33,643 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 43 transitions. [2019-02-27 13:06:33,643 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 43 transitions. [2019-02-27 13:06:33,709 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 43 edges. 43 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:06:33,710 INFO L225 Difference]: With dead ends: 52 [2019-02-27 13:06:33,710 INFO L226 Difference]: Without dead ends: 45 [2019-02-27 13:06:33,710 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 25 GetRequests, 7 SyntacticMatches, 2 SemanticMatches, 16 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 88 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=112, Invalid=194, Unknown=0, NotChecked=0, Total=306 [2019-02-27 13:06:33,711 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 45 states. [2019-02-27 13:06:38,465 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 45 to 40. [2019-02-27 13:06:38,466 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 13:06:38,466 INFO L82 GeneralOperation]: Start isEquivalent. First operand 45 states. Second operand 40 states. [2019-02-27 13:06:38,466 INFO L74 IsIncluded]: Start isIncluded. First operand 45 states. Second operand 40 states. [2019-02-27 13:06:38,466 INFO L87 Difference]: Start difference. First operand 45 states. Second operand 40 states. [2019-02-27 13:06:38,468 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:06:38,468 INFO L93 Difference]: Finished difference Result 45 states and 158 transitions. [2019-02-27 13:06:38,468 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 158 transitions. [2019-02-27 13:06:38,468 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:06:38,468 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:06:38,468 INFO L74 IsIncluded]: Start isIncluded. First operand 40 states. Second operand 45 states. [2019-02-27 13:06:38,468 INFO L87 Difference]: Start difference. First operand 40 states. Second operand 45 states. [2019-02-27 13:06:38,469 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:06:38,469 INFO L93 Difference]: Finished difference Result 45 states and 158 transitions. [2019-02-27 13:06:38,469 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 158 transitions. [2019-02-27 13:06:38,469 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:06:38,470 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:06:38,470 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 13:06:38,470 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 13:06:38,470 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 40 states. [2019-02-27 13:06:38,470 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 40 states to 40 states and 138 transitions. [2019-02-27 13:06:38,471 INFO L78 Accepts]: Start accepts. Automaton has 40 states and 138 transitions. Word has length 9 [2019-02-27 13:06:38,471 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 13:06:38,471 INFO L480 AbstractCegarLoop]: Abstraction has 40 states and 138 transitions. [2019-02-27 13:06:38,471 INFO L481 AbstractCegarLoop]: Interpolant automaton has 11 states. [2019-02-27 13:06:38,471 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 138 transitions. [2019-02-27 13:06:38,471 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 10 [2019-02-27 13:06:38,471 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 13:06:38,471 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1] [2019-02-27 13:06:38,471 INFO L423 AbstractCegarLoop]: === Iteration 56 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 13:06:38,472 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:06:38,472 INFO L82 PathProgramCache]: Analyzing trace with hash -1867837724, now seen corresponding path program 1 times [2019-02-27 13:06:38,472 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 13:06:38,472 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:06:38,472 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-02-27 13:06:38,473 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:06:38,473 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 13:06:38,476 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:06:38,997 INFO L273 TraceCheckUtils]: 0: Hoare triple {37427#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {37429#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-27 13:06:38,999 INFO L273 TraceCheckUtils]: 1: Hoare triple {37429#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37429#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-27 13:06:39,000 INFO L273 TraceCheckUtils]: 2: Hoare triple {37429#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {37430#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:06:39,001 INFO L273 TraceCheckUtils]: 3: Hoare triple {37430#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {37431#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-02-27 13:06:39,002 INFO L273 TraceCheckUtils]: 4: Hoare triple {37431#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 1) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {37432#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:06:39,003 INFO L273 TraceCheckUtils]: 5: Hoare triple {37432#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p1] >= 0; {37432#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:06:39,003 INFO L273 TraceCheckUtils]: 6: Hoare triple {37432#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p2] <= 0; {37432#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:06:39,004 INFO L273 TraceCheckUtils]: 7: Hoare triple {37432#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p3] >= 0; {37433#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:06:39,004 INFO L273 TraceCheckUtils]: 8: Hoare triple {37433#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {37428#false} is VALID [2019-02-27 13:06:39,005 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 9 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-02-27 13:06:39,005 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:06:39,005 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 13:06:39,006 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 10 with the following transitions: [2019-02-27 13:06:39,006 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [14], [16], [20], [22], [24], [25] [2019-02-27 13:06:39,007 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-27 13:06:39,007 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-27 13:06:39,017 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-27 13:06:39,017 INFO L272 AbstractInterpreter]: Visited 9 different actions 9 times. Never merged. Never widened. Performed 62 root evaluator evaluations with a maximum evaluation depth of 3. Performed 62 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 4 fixpoints after 4 different actions. Largest state had 0 variables. [2019-02-27 13:06:39,017 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:06:39,018 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-27 13:06:39,018 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:06:39,018 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 54 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 54 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-27 13:06:39,027 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:06:39,027 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-27 13:06:39,034 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:06:39,035 INFO L256 TraceCheckSpWp]: Trace formula consists of 26 conjuncts, 9 conjunts are in the unsatisfiable core [2019-02-27 13:06:39,037 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:06:39,038 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 13:06:39,072 INFO L467 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 15 treesize of output 18 [2019-02-27 13:06:39,086 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:39,086 INFO L467 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 18 treesize of output 24 [2019-02-27 13:06:39,103 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:39,104 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:39,105 INFO L467 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 20 treesize of output 34 [2019-02-27 13:06:39,273 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:39,300 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:39,328 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:39,329 INFO L467 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 22 treesize of output 45 [2019-02-27 13:06:39,358 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 13:06:39,379 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:06:39,393 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:06:39,407 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:06:39,432 INFO L301 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:06:39,432 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-02-27 13:06:39,438 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:06:39,438 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_336|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_336| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:06:39,438 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:06:39,560 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:39,562 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:39,564 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:39,567 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:39,568 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:39,569 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:39,571 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:39,572 INFO L467 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-02-27 13:06:39,580 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:06:39,611 INFO L301 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-02-27 13:06:39,612 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-02-27 13:06:41,625 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:06:41,625 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_337|, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_337| ULTIMATE.start_main_p1))) (and (= 0 (select |v_#memory_int_337| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_337| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= (select |v_#memory_int_337| ULTIMATE.start_main_p2) 0) (= .cse0 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |v_#memory_int_337| ULTIMATE.start_main_p4) 0))) [2019-02-27 13:06:41,626 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:06:41,708 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:41,709 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:41,711 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:41,712 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:41,714 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:41,715 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:41,716 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:41,718 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:41,719 INFO L467 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 45 [2019-02-27 13:06:41,726 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:06:41,756 INFO L301 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-02-27 13:06:41,756 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-02-27 13:06:43,782 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:06:43,783 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_338|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_338| ULTIMATE.start_main_p2))) (and (= (select |v_#memory_int_338| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_338| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= (select |v_#memory_int_338| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_338| ULTIMATE.start_main_p1) 1) (= .cse0 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-02-27 13:06:43,783 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:06:43,863 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:43,864 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:43,866 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:43,867 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:43,868 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:43,869 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:43,871 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:43,872 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:43,872 INFO L158 IndexEqualityManager]: detected equality via solver [2019-02-27 13:06:43,873 INFO L467 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 47 [2019-02-27 13:06:43,882 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:06:43,915 INFO L301 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-02-27 13:06:43,915 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-02-27 13:06:43,924 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:06:43,924 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_339|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_339| ULTIMATE.start_main_p4))) (and (= 1 (select |v_#memory_int_339| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |v_#memory_int_339| ULTIMATE.start_main_p2) 1) 0) (= (store |v_#memory_int_339| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_339| ULTIMATE.start_main_p3) 0) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:06:43,924 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-02-27 13:06:44,012 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:44,013 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:44,013 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:44,014 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:44,016 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:44,017 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:44,018 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:44,019 INFO L158 IndexEqualityManager]: detected equality via solver [2019-02-27 13:06:44,020 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 49 [2019-02-27 13:06:44,028 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:06:44,070 INFO L301 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-02-27 13:06:44,071 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:44, output treesize:34 [2019-02-27 13:06:44,091 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:06:44,091 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_340|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_340| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= |#memory_int| (store |v_#memory_int_340| ULTIMATE.start_main_p3 (+ .cse0 1))) (= 0 (+ (select |v_#memory_int_340| ULTIMATE.start_main_p2) 1)) (= (select |v_#memory_int_340| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |v_#memory_int_340| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:06:44,091 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-02-27 13:06:44,322 INFO L273 TraceCheckUtils]: 0: Hoare triple {37427#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {37437#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 13:06:44,323 INFO L273 TraceCheckUtils]: 1: Hoare triple {37437#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37441#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:06:44,325 INFO L273 TraceCheckUtils]: 2: Hoare triple {37441#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {37445#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:06:44,327 INFO L273 TraceCheckUtils]: 3: Hoare triple {37445#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (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]; {37449#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-02-27 13:06:44,330 INFO L273 TraceCheckUtils]: 4: Hoare triple {37449#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {37453#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-02-27 13:06:44,331 INFO L273 TraceCheckUtils]: 5: Hoare triple {37453#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))} assume #memory_int[main_p1] >= 0; {37453#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-02-27 13:06:44,332 INFO L273 TraceCheckUtils]: 6: Hoare triple {37453#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))} assume #memory_int[main_p2] <= 0; {37453#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-02-27 13:06:44,332 INFO L273 TraceCheckUtils]: 7: Hoare triple {37453#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))} assume #memory_int[main_p3] >= 0; {37453#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-02-27 13:06:44,334 INFO L273 TraceCheckUtils]: 8: Hoare triple {37453#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))} assume !(#memory_int[main_p4] <= 0); {37428#false} is VALID [2019-02-27 13:06:44,334 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:06:44,335 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 13:06:44,537 INFO L273 TraceCheckUtils]: 8: Hoare triple {37433#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {37428#false} is VALID [2019-02-27 13:06:44,540 INFO L273 TraceCheckUtils]: 7: Hoare triple {37433#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {37433#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:06:44,540 INFO L273 TraceCheckUtils]: 6: Hoare triple {37433#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {37433#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:06:44,543 INFO L273 TraceCheckUtils]: 5: Hoare triple {37433#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {37433#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:06:44,543 INFO L273 TraceCheckUtils]: 4: Hoare triple {37478#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {37433#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:06:44,545 INFO L273 TraceCheckUtils]: 3: Hoare triple {37482#(<= (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_p4) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {37478#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:06:44,546 INFO L273 TraceCheckUtils]: 2: Hoare triple {37486#(<= (select (store (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 (+ (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) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {37482#(<= (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_p4) 0)} is VALID [2019-02-27 13:06:44,549 INFO L273 TraceCheckUtils]: 1: Hoare triple {37490#(<= (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37486#(<= (select (store (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 (+ (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) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:06:44,551 INFO L273 TraceCheckUtils]: 0: Hoare triple {37427#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {37490#(<= (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:06:44,552 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 6 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:06:44,572 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 13:06:44,572 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5, 5] total 14 [2019-02-27 13:06:44,572 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 13:06:44,572 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 9 [2019-02-27 13:06:44,572 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 13:06:44,572 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-02-27 13:06:44,610 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 18 edges. 18 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:06:44,610 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-02-27 13:06:44,610 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-02-27 13:06:44,610 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=95, Invalid=145, Unknown=0, NotChecked=0, Total=240 [2019-02-27 13:06:44,610 INFO L87 Difference]: Start difference. First operand 40 states and 138 transitions. Second operand 12 states. [2019-02-27 13:06:51,914 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:06:51,915 INFO L93 Difference]: Finished difference Result 66 states and 218 transitions. [2019-02-27 13:06:51,915 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2019-02-27 13:06:51,915 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 9 [2019-02-27 13:06:51,915 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 13:06:51,915 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-02-27 13:06:51,916 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 51 transitions. [2019-02-27 13:06:51,916 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-02-27 13:06:51,916 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 51 transitions. [2019-02-27 13:06:51,916 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 51 transitions. [2019-02-27 13:06:51,994 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 51 edges. 51 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:06:51,995 INFO L225 Difference]: With dead ends: 66 [2019-02-27 13:06:51,996 INFO L226 Difference]: Without dead ends: 56 [2019-02-27 13:06:51,996 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 27 GetRequests, 7 SyntacticMatches, 3 SemanticMatches, 17 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 86 ImplicationChecksByTransitivity, 0.9s TimeCoverageRelationStatistics Valid=127, Invalid=215, Unknown=0, NotChecked=0, Total=342 [2019-02-27 13:06:51,996 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 56 states. [2019-02-27 13:06:56,879 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 56 to 40. [2019-02-27 13:06:56,880 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 13:06:56,880 INFO L82 GeneralOperation]: Start isEquivalent. First operand 56 states. Second operand 40 states. [2019-02-27 13:06:56,880 INFO L74 IsIncluded]: Start isIncluded. First operand 56 states. Second operand 40 states. [2019-02-27 13:06:56,880 INFO L87 Difference]: Start difference. First operand 56 states. Second operand 40 states. [2019-02-27 13:06:56,881 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:06:56,881 INFO L93 Difference]: Finished difference Result 56 states and 202 transitions. [2019-02-27 13:06:56,881 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 202 transitions. [2019-02-27 13:06:56,881 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:06:56,881 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:06:56,881 INFO L74 IsIncluded]: Start isIncluded. First operand 40 states. Second operand 56 states. [2019-02-27 13:06:56,881 INFO L87 Difference]: Start difference. First operand 40 states. Second operand 56 states. [2019-02-27 13:06:56,882 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:06:56,882 INFO L93 Difference]: Finished difference Result 56 states and 202 transitions. [2019-02-27 13:06:56,883 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 202 transitions. [2019-02-27 13:06:56,883 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:06:56,883 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:06:56,883 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 13:06:56,883 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 13:06:56,883 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 40 states. [2019-02-27 13:06:56,884 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 40 states to 40 states and 140 transitions. [2019-02-27 13:06:56,884 INFO L78 Accepts]: Start accepts. Automaton has 40 states and 140 transitions. Word has length 9 [2019-02-27 13:06:56,884 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 13:06:56,884 INFO L480 AbstractCegarLoop]: Abstraction has 40 states and 140 transitions. [2019-02-27 13:06:56,884 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-02-27 13:06:56,884 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 140 transitions. [2019-02-27 13:06:56,884 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 11 [2019-02-27 13:06:56,884 INFO L394 BasicCegarLoop]: Found error trace [2019-02-27 13:06:56,884 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1, 1, 1, 1] [2019-02-27 13:06:56,884 INFO L423 AbstractCegarLoop]: === Iteration 57 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT]=== [2019-02-27 13:06:56,884 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-27 13:06:56,885 INFO L82 PathProgramCache]: Analyzing trace with hash 638911500, now seen corresponding path program 2 times [2019-02-27 13:06:56,885 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-27 13:06:56,885 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:06:56,885 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-27 13:06:56,885 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-27 13:06:56,886 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-27 13:06:56,889 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:06:57,456 INFO L273 TraceCheckUtils]: 0: Hoare triple {37803#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {37805#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-27 13:06:57,458 INFO L273 TraceCheckUtils]: 1: Hoare triple {37805#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {37806#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-27 13:06:57,459 INFO L273 TraceCheckUtils]: 2: Hoare triple {37806#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (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]; {37807#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 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) 0))} is VALID [2019-02-27 13:06:57,460 INFO L273 TraceCheckUtils]: 3: Hoare triple {37807#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 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) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37807#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 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) 0))} is VALID [2019-02-27 13:06:57,461 INFO L273 TraceCheckUtils]: 4: Hoare triple {37807#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 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) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37807#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 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) 0))} is VALID [2019-02-27 13:06:57,462 INFO L273 TraceCheckUtils]: 5: Hoare triple {37807#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 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) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {37808#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-02-27 13:06:57,463 INFO L273 TraceCheckUtils]: 6: Hoare triple {37808#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p1] >= 0; {37808#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-02-27 13:06:57,463 INFO L273 TraceCheckUtils]: 7: Hoare triple {37808#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p2] <= 0; {37808#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-02-27 13:06:57,464 INFO L273 TraceCheckUtils]: 8: Hoare triple {37808#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p3] >= 0; {37808#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-02-27 13:06:57,464 INFO L273 TraceCheckUtils]: 9: Hoare triple {37808#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume !(#memory_int[main_p4] <= 0); {37804#false} is VALID [2019-02-27 13:06:57,465 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 0 proven. 12 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2019-02-27 13:06:57,465 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:06:57,466 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-27 13:06:57,466 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-02-27 13:06:57,466 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-02-27 13:06:57,466 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-27 13:06:57,466 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 55 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 55 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-27 13:06:57,474 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-02-27 13:06:57,475 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-02-27 13:06:57,484 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 4 check-sat command(s) [2019-02-27 13:06:57,485 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-02-27 13:06:57,485 INFO L256 TraceCheckSpWp]: Trace formula consists of 27 conjuncts, 10 conjunts are in the unsatisfiable core [2019-02-27 13:06:57,488 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-27 13:06:57,489 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-27 13:06:57,513 INFO L467 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 15 treesize of output 18 [2019-02-27 13:06:57,524 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:57,524 INFO L467 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 18 treesize of output 24 [2019-02-27 13:06:57,541 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:57,542 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:57,543 INFO L467 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 20 treesize of output 34 [2019-02-27 13:06:57,565 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:57,566 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:57,567 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:57,568 INFO L467 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 22 treesize of output 45 [2019-02-27 13:06:57,576 INFO L301 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-27 13:06:57,597 INFO L301 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:06:57,609 INFO L301 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:06:57,622 INFO L301 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:06:57,639 INFO L301 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-27 13:06:57,640 INFO L208 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-02-27 13:06:57,646 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:06:57,646 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_345|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_345| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-27 13:06:57,646 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:06:57,729 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:57,731 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:57,732 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:57,734 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:57,735 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:57,736 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:57,738 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:57,739 INFO L467 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-02-27 13:06:57,747 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:06:57,778 INFO L301 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-02-27 13:06:57,778 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-02-27 13:06:57,795 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:06:57,795 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_346|, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_346| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_346| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= (select |v_#memory_int_346| ULTIMATE.start_main_p4) 0) (= 0 .cse0) (= 0 (select |v_#memory_int_346| ULTIMATE.start_main_p3)) (= (select |v_#memory_int_346| ULTIMATE.start_main_p1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:06:57,795 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-27 13:06:57,887 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:57,889 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:57,891 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:57,892 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:57,893 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:57,895 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:57,896 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:57,897 INFO L158 IndexEqualityManager]: detected equality via solver [2019-02-27 13:06:57,898 INFO L467 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 47 [2019-02-27 13:06:57,905 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:06:57,942 INFO L301 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-02-27 13:06:57,942 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:42, output treesize:32 [2019-02-27 13:06:57,957 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:06:57,958 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_347|, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_347| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |v_#memory_int_347| ULTIMATE.start_main_p2) 1) 0) (= (select |v_#memory_int_347| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_347| ULTIMATE.start_main_p1) 0) (= .cse0 0) (= |#memory_int| (store |v_#memory_int_347| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:06:57,958 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-02-27 13:06:58,036 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:58,037 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:58,039 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:58,040 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:58,041 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:58,043 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:58,044 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:58,045 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:58,046 INFO L467 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 49 [2019-02-27 13:06:58,054 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:06:58,088 INFO L301 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-02-27 13:06:58,088 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:44, output treesize:34 [2019-02-27 13:06:58,095 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:06:58,095 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_348|, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_348| ULTIMATE.start_main_p1))) (and (= (store |v_#memory_int_348| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= 0 (+ (select |v_#memory_int_348| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= 0 (+ (select |v_#memory_int_348| ULTIMATE.start_main_p4) 1)) (= 0 (select |v_#memory_int_348| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:06:58,095 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-02-27 13:06:58,176 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:58,177 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:58,179 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:58,180 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:58,182 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:58,183 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:58,184 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:58,186 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:58,187 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:06:58,188 INFO L467 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 35 treesize of output 49 [2019-02-27 13:06:58,195 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:06:58,229 INFO L301 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-02-27 13:06:58,230 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:44, output treesize:34 [2019-02-27 13:07:00,680 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:07:00,681 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_349|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_349| ULTIMATE.start_main_p1))) (and (= 0 (+ (select |v_#memory_int_349| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_349| ULTIMATE.start_main_p1 (+ .cse0 1))) (= 1 .cse0) (= 0 (+ (select |v_#memory_int_349| ULTIMATE.start_main_p2) 1)) (= 0 (select |v_#memory_int_349| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:07:00,681 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-02-27 13:07:00,823 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:07:00,824 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:07:00,826 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:07:00,827 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:07:00,828 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:07:00,829 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:07:00,831 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:07:00,832 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:07:00,833 INFO L176 IndexEqualityManager]: detected not equals via solver [2019-02-27 13:07:00,834 INFO L467 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 35 treesize of output 49 [2019-02-27 13:07:00,841 INFO L301 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-27 13:07:00,877 INFO L301 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-02-27 13:07:00,878 INFO L208 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:44, output treesize:34 [2019-02-27 13:07:00,892 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-27 13:07:00,892 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_350|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_350| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_350| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= 0 (+ (select |v_#memory_int_350| ULTIMATE.start_main_p4) 1)) (= (+ (select |v_#memory_int_350| ULTIMATE.start_main_p2) 1) 0) (= .cse0 0) (= (select |v_#memory_int_350| ULTIMATE.start_main_p1) 2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-27 13:07:00,892 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-02-27 13:07:01,050 INFO L273 TraceCheckUtils]: 0: Hoare triple {37803#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {37812#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-27 13:07:01,051 INFO L273 TraceCheckUtils]: 1: Hoare triple {37812#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {37816#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-27 13:07:01,053 INFO L273 TraceCheckUtils]: 2: Hoare triple {37816#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (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]; {37820#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-02-27 13:07:01,055 INFO L273 TraceCheckUtils]: 3: Hoare triple {37820#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37824#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-02-27 13:07:01,056 INFO L273 TraceCheckUtils]: 4: Hoare triple {37824#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37828#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-02-27 13:07:01,059 INFO L273 TraceCheckUtils]: 5: Hoare triple {37828#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {37832#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-02-27 13:07:01,060 INFO L273 TraceCheckUtils]: 6: Hoare triple {37832#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p1] >= 0; {37832#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-02-27 13:07:01,061 INFO L273 TraceCheckUtils]: 7: Hoare triple {37832#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p2] <= 0; {37832#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-02-27 13:07:01,061 INFO L273 TraceCheckUtils]: 8: Hoare triple {37832#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p3] >= 0; {37832#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-02-27 13:07:01,062 INFO L273 TraceCheckUtils]: 9: Hoare triple {37832#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume !(#memory_int[main_p4] <= 0); {37804#false} is VALID [2019-02-27 13:07:01,063 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 0 proven. 15 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:07:01,063 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-27 13:07:01,244 INFO L273 TraceCheckUtils]: 9: Hoare triple {37845#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {37804#false} is VALID [2019-02-27 13:07:01,245 INFO L273 TraceCheckUtils]: 8: Hoare triple {37845#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {37845#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:07:01,245 INFO L273 TraceCheckUtils]: 7: Hoare triple {37845#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {37845#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:07:01,246 INFO L273 TraceCheckUtils]: 6: Hoare triple {37845#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {37845#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:07:01,247 INFO L273 TraceCheckUtils]: 5: Hoare triple {37858#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {37845#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:07:01,248 INFO L273 TraceCheckUtils]: 4: Hoare triple {37862#(<= (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_p4) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37858#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:07:01,250 INFO L273 TraceCheckUtils]: 3: Hoare triple {37866#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37862#(<= (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_p4) 0)} is VALID [2019-02-27 13:07:01,252 INFO L273 TraceCheckUtils]: 2: Hoare triple {37870#(<= (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) 2)) 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) 2)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {37866#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:07:01,255 INFO L273 TraceCheckUtils]: 1: Hoare triple {37874#(<= (select (store (store (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 (+ (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) 2)) ULTIMATE.start_main_p3 (+ (select (store (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 (+ (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) 2)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {37870#(<= (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) 2)) 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) 2)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:07:01,256 INFO L273 TraceCheckUtils]: 0: Hoare triple {37803#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {37874#(<= (select (store (store (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 (+ (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) 2)) ULTIMATE.start_main_p3 (+ (select (store (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 (+ (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) 2)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-02-27 13:07:01,257 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 5 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-27 13:07:01,276 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-27 13:07:01,276 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 6, 6] total 16 [2019-02-27 13:07:01,276 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-27 13:07:01,276 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 10 [2019-02-27 13:07:01,277 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-27 13:07:01,277 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-02-27 13:07:01,311 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 19 edges. 19 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:07:01,312 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-02-27 13:07:01,312 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-02-27 13:07:01,312 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=106, Invalid=200, Unknown=0, NotChecked=0, Total=306 [2019-02-27 13:07:01,312 INFO L87 Difference]: Start difference. First operand 40 states and 140 transitions. Second operand 12 states. [2019-02-27 13:07:07,939 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:07:07,939 INFO L93 Difference]: Finished difference Result 48 states and 164 transitions. [2019-02-27 13:07:07,939 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2019-02-27 13:07:07,939 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 10 [2019-02-27 13:07:07,939 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-27 13:07:07,939 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-02-27 13:07:07,940 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 40 transitions. [2019-02-27 13:07:07,940 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-02-27 13:07:07,940 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 40 transitions. [2019-02-27 13:07:07,941 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 40 transitions. [2019-02-27 13:07:08,019 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 40 edges. 40 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-27 13:07:08,020 INFO L225 Difference]: With dead ends: 48 [2019-02-27 13:07:08,020 INFO L226 Difference]: Without dead ends: 0 [2019-02-27 13:07:08,021 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 30 GetRequests, 8 SyntacticMatches, 3 SemanticMatches, 19 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 125 ImplicationChecksByTransitivity, 0.9s TimeCoverageRelationStatistics Valid=139, Invalid=281, Unknown=0, NotChecked=0, Total=420 [2019-02-27 13:07:08,021 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 0 states. [2019-02-27 13:07:08,021 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 0 to 0. [2019-02-27 13:07:08,021 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-27 13:07:08,021 INFO L82 GeneralOperation]: Start isEquivalent. First operand 0 states. Second operand 0 states. [2019-02-27 13:07:08,022 INFO L74 IsIncluded]: Start isIncluded. First operand 0 states. Second operand 0 states. [2019-02-27 13:07:08,022 INFO L87 Difference]: Start difference. First operand 0 states. Second operand 0 states. [2019-02-27 13:07:08,022 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:07:08,022 INFO L93 Difference]: Finished difference Result 0 states and 0 transitions. [2019-02-27 13:07:08,023 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2019-02-27 13:07:08,023 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:07:08,023 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:07:08,023 INFO L74 IsIncluded]: Start isIncluded. First operand 0 states. Second operand 0 states. [2019-02-27 13:07:08,023 INFO L87 Difference]: Start difference. First operand 0 states. Second operand 0 states. [2019-02-27 13:07:08,023 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-27 13:07:08,023 INFO L93 Difference]: Finished difference Result 0 states and 0 transitions. [2019-02-27 13:07:08,023 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2019-02-27 13:07:08,024 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:07:08,024 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-27 13:07:08,024 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-27 13:07:08,024 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-27 13:07:08,024 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 0 states. [2019-02-27 13:07:08,024 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 0 states to 0 states and 0 transitions. [2019-02-27 13:07:08,024 INFO L78 Accepts]: Start accepts. Automaton has 0 states and 0 transitions. Word has length 10 [2019-02-27 13:07:08,024 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-27 13:07:08,024 INFO L480 AbstractCegarLoop]: Abstraction has 0 states and 0 transitions. [2019-02-27 13:07:08,024 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-02-27 13:07:08,024 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2019-02-27 13:07:08,024 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-27 13:07:08,028 INFO L343 DoubleDeckerVisitor]: Before removal of dead ends 0 states and 0 transitions. [2019-02-27 13:07:08,062 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:08,069 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:08,100 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:08,429 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:08,431 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:08,447 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:08,496 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:08,682 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:08,711 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:08,715 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:08,739 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:08,740 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:08,831 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:08,838 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:08,842 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:08,855 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:08,859 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:08,889 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:08,894 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:08,895 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:09,040 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:09,041 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:09,059 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:09,127 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:09,176 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:10,136 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:10,147 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:10,282 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:10,408 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:10,409 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:10,429 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:10,456 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:10,458 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:10,508 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:10,521 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:10,645 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:10,660 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:11,104 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:11,165 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:11,216 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:11,269 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:11,303 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:11,550 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:12,029 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:12,085 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:12,388 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:12,389 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:12,389 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:12,485 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:12,626 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:12,970 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:12,973 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:13,080 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:13,138 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:13,181 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:13,209 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:13,256 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:13,257 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:13,257 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:13,265 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:13,270 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:13,303 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:13,692 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:13,726 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:13,736 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:13,756 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:13,757 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:14,494 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:14,663 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:14,748 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:15,196 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:15,444 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:15,445 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:15,631 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:16,140 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:16,141 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:16,142 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:16,731 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:16,785 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:16,788 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:17,613 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:17,616 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:17,616 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:17,626 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:18,645 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:18,649 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:18,756 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:19,542 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-02-27 13:07:19,592 WARN L181 SmtUtils]: Spent 11.56 s on a formula simplification. DAG size of input: 1855 DAG size of output: 1101 [2019-02-27 13:07:34,951 WARN L181 SmtUtils]: Spent 15.14 s on a formula simplification. DAG size of input: 1000 DAG size of output: 85 [2019-02-27 13:07:34,969 INFO L448 ceAbstractionStarter]: For program point ULTIMATE.startEXIT(lines 7 9) no Hoare annotation was computed. [2019-02-27 13:07:34,969 INFO L448 ceAbstractionStarter]: For program point L46(line 46) no Hoare annotation was computed. [2019-02-27 13:07:34,969 INFO L448 ceAbstractionStarter]: For program point L44(line 44) no Hoare annotation was computed. [2019-02-27 13:07:34,969 INFO L448 ceAbstractionStarter]: For program point ULTIMATE.startErr2ASSERT_VIOLATIONASSERT(line 45) no Hoare annotation was computed. [2019-02-27 13:07:34,969 INFO L448 ceAbstractionStarter]: For program point ULTIMATE.startErr3ASSERT_VIOLATIONASSERT(line 46) no Hoare annotation was computed. [2019-02-27 13:07:34,970 INFO L444 ceAbstractionStarter]: At program point L36-1(lines 31 41) the Hoare annotation is: (let ((.cse18 (select |#memory_int| ULTIMATE.start_main_p4)) (.cse8 (select |#memory_int| ULTIMATE.start_main_p2))) (let ((.cse10 (store |#memory_int| ULTIMATE.start_main_p2 (+ .cse8 (- 1)))) (.cse6 (select |#memory_int| ULTIMATE.start_main_p1)) (.cse17 (store |#memory_int| ULTIMATE.start_main_p4 (+ .cse18 (- 1)))) (.cse19 (select |#memory_int| ULTIMATE.start_main_p3))) (let ((.cse7 (= .cse18 0)) (.cse5 (<= 0 .cse19)) (.cse2 (select .cse17 ULTIMATE.start_main_p3)) (.cse4 (store |#memory_int| ULTIMATE.start_main_p1 (+ .cse6 1))) (.cse0 (<= (+ ULTIMATE.start_main_p1 3) ULTIMATE.start_main_p4)) (.cse3 (= 0 (select .cse10 ULTIMATE.start_main_p1))) (.cse1 (= 0 (select .cse17 ULTIMATE.start_main_p2))) (.cse13 (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3))) (.cse9 (store |#memory_int| ULTIMATE.start_main_p3 (+ .cse19 1)))) (or (and (and (and .cse0 .cse1) (<= 1 .cse2) .cse3) (<= (+ (select .cse4 ULTIMATE.start_main_p4) 1) 0)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) .cse5 (<= 0 .cse6) .cse7 (<= .cse8 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (let ((.cse11 (select .cse4 ULTIMATE.start_main_p2))) (let ((.cse14 (<= .cse18 0)) (.cse15 (<= (+ .cse11 1) 0)) (.cse12 (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (or (and (= 0 (select .cse9 ULTIMATE.start_main_p1)) (<= 1 (select .cse10 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 .cse11) .cse0 .cse7) (and (and .cse12 .cse13 .cse14 .cse5 .cse15 .cse3) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p3))) (and (and .cse14 (let ((.cse16 (and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select .cse17 ULTIMATE.start_main_p1)) .cse12))) (or (and .cse1 (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) .cse16) (and .cse15 .cse16)))) (<= 0 .cse2))))) (and .cse0 .cse3 .cse1 (= .cse19 0) .cse13 (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= (+ (select .cse9 ULTIMATE.start_main_p4) 1) 0)))))) [2019-02-27 13:07:34,970 INFO L448 ceAbstractionStarter]: For program point ULTIMATE.startENTRY(lines 7 9) no Hoare annotation was computed. [2019-02-27 13:07:34,970 INFO L448 ceAbstractionStarter]: For program point ULTIMATE.startErr0ASSERT_VIOLATIONASSERT(line 43) no Hoare annotation was computed. [2019-02-27 13:07:34,970 INFO L448 ceAbstractionStarter]: For program point ULTIMATE.startErr1ASSERT_VIOLATIONASSERT(line 44) no Hoare annotation was computed. [2019-02-27 13:07:34,970 INFO L448 ceAbstractionStarter]: For program point L14(lines 7 48) no Hoare annotation was computed. [2019-02-27 13:07:34,971 INFO L448 ceAbstractionStarter]: For program point L45(line 45) no Hoare annotation was computed. [2019-02-27 13:07:34,972 WARN L170 areAnnotationChecker]: ULTIMATE.startENTRY has no Hoare annotation [2019-02-27 13:07:34,972 WARN L170 areAnnotationChecker]: ULTIMATE.startErr0ASSERT_VIOLATIONASSERT has no Hoare annotation [2019-02-27 13:07:34,972 WARN L170 areAnnotationChecker]: L44 has no Hoare annotation [2019-02-27 13:07:35,003 WARN L170 areAnnotationChecker]: L44 has no Hoare annotation [2019-02-27 13:07:35,003 WARN L170 areAnnotationChecker]: L44 has no Hoare annotation [2019-02-27 13:07:35,003 WARN L170 areAnnotationChecker]: L45 has no Hoare annotation [2019-02-27 13:07:35,003 WARN L170 areAnnotationChecker]: L45 has no Hoare annotation [2019-02-27 13:07:35,003 WARN L170 areAnnotationChecker]: L46 has no Hoare annotation [2019-02-27 13:07:35,003 WARN L170 areAnnotationChecker]: L46 has no Hoare annotation [2019-02-27 13:07:35,003 WARN L170 areAnnotationChecker]: L14 has no Hoare annotation [2019-02-27 13:07:35,003 INFO L163 areAnnotationChecker]: CFG has 4 edges. 4 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. 0 times interpolants missing. [2019-02-27 13:07:35,031 INFO L202 PluginConnector]: Adding new model speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction CFG 27.02 01:07:35 BoogieIcfgContainer [2019-02-27 13:07:35,031 INFO L132 PluginConnector]: ------------------------ END TraceAbstraction---------------------------- [2019-02-27 13:07:35,033 INFO L168 Benchmark]: Toolchain (without parser) took 533780.05 ms. Allocated memory was 139.5 MB in the beginning and 576.2 MB in the end (delta: 436.7 MB). Free memory was 104.5 MB in the beginning and 432.3 MB in the end (delta: -327.7 MB). Peak memory consumption was 109.0 MB. Max. memory is 7.1 GB. [2019-02-27 13:07:35,034 INFO L168 Benchmark]: Boogie PL CUP Parser took 0.18 ms. Allocated memory is still 139.5 MB. Free memory is still 105.8 MB. There was no memory consumed. Max. memory is 7.1 GB. [2019-02-27 13:07:35,034 INFO L168 Benchmark]: Boogie Procedure Inliner took 66.29 ms. Allocated memory is still 139.5 MB. Free memory was 104.3 MB in the beginning and 102.0 MB in the end (delta: 2.3 MB). Peak memory consumption was 2.3 MB. Max. memory is 7.1 GB. [2019-02-27 13:07:35,035 INFO L168 Benchmark]: Boogie Preprocessor took 28.18 ms. Allocated memory is still 139.5 MB. Free memory was 102.0 MB in the beginning and 100.7 MB in the end (delta: 1.3 MB). Peak memory consumption was 1.3 MB. Max. memory is 7.1 GB. [2019-02-27 13:07:35,035 INFO L168 Benchmark]: RCFGBuilder took 655.31 ms. Allocated memory is still 139.5 MB. Free memory was 100.7 MB in the beginning and 85.6 MB in the end (delta: 15.1 MB). Peak memory consumption was 15.1 MB. Max. memory is 7.1 GB. [2019-02-27 13:07:35,035 INFO L168 Benchmark]: TraceAbstraction took 533025.41 ms. Allocated memory was 139.5 MB in the beginning and 576.2 MB in the end (delta: 436.7 MB). Free memory was 85.4 MB in the beginning and 432.3 MB in the end (delta: -346.9 MB). Peak memory consumption was 89.8 MB. Max. memory is 7.1 GB. [2019-02-27 13:07:35,037 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 139.5 MB. Free memory is still 105.8 MB. There was no memory consumed. Max. memory is 7.1 GB. * Boogie Procedure Inliner took 66.29 ms. Allocated memory is still 139.5 MB. Free memory was 104.3 MB in the beginning and 102.0 MB in the end (delta: 2.3 MB). Peak memory consumption was 2.3 MB. Max. memory is 7.1 GB. * Boogie Preprocessor took 28.18 ms. Allocated memory is still 139.5 MB. Free memory was 102.0 MB in the beginning and 100.7 MB in the end (delta: 1.3 MB). Peak memory consumption was 1.3 MB. Max. memory is 7.1 GB. * RCFGBuilder took 655.31 ms. Allocated memory is still 139.5 MB. Free memory was 100.7 MB in the beginning and 85.6 MB in the end (delta: 15.1 MB). Peak memory consumption was 15.1 MB. Max. memory is 7.1 GB. * TraceAbstraction took 533025.41 ms. Allocated memory was 139.5 MB in the beginning and 576.2 MB in the end (delta: 436.7 MB). Free memory was 85.4 MB in the beginning and 432.3 MB in the end (delta: -346.9 MB). Peak memory consumption was 89.8 MB. Max. memory is 7.1 GB. * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - PositiveResult [Line: 45]: assertion always holds For all program executions holds that assertion always holds at this location - PositiveResult [Line: 46]: assertion always holds For all program executions holds that assertion always holds at this location - PositiveResult [Line: 44]: assertion always holds For all program executions holds that assertion always holds at this location - PositiveResult [Line: 43]: assertion always holds For all program executions holds that assertion always holds at this location - AllSpecificationsHoldResult: All specifications hold 4 specifications checked. All of them hold - InvariantResult [Line: 31]: Loop Invariant Derived loop invariant: ((((((p1 + 3 <= p4 && 0 == #memory_int[p4 := #memory_int[p4] + -1][p2]) && 1 <= #memory_int[p4 := #memory_int[p4] + -1][p3]) && 0 == #memory_int[p2 := #memory_int[p2] + -1][p1]) && #memory_int[p1 := #memory_int[p1] + 1][p4] + 1 <= 0) || ((((((p3 < p4 && p2 < p3) && 0 <= #memory_int[p3]) && 0 <= #memory_int[p1]) && #memory_int[p4] == 0) && #memory_int[p2] <= 0) && p1 < p2)) || ((((((0 == #memory_int[p3 := #memory_int[p3] + 1][p1] && 1 <= #memory_int[p2 := #memory_int[p2] + -1][p3]) && !(p2 == p4)) && 0 == #memory_int[p1 := #memory_int[p1] + 1][p2]) && p1 + 3 <= p4) && #memory_int[p4] == 0) || ((((((!(p1 == p4) && !(p1 == p3)) && #memory_int[p4] <= 0) && 0 <= #memory_int[p3]) && #memory_int[p1 := #memory_int[p1] + 1][p2] + 1 <= 0) && 0 == #memory_int[p2 := #memory_int[p2] + -1][p1]) && !(p4 == p3))) || ((#memory_int[p4] <= 0 && (((0 == #memory_int[p4 := #memory_int[p4] + -1][p2] && !(p2 == p3)) && (!(p1 == p2) && 1 <= #memory_int[p4 := #memory_int[p4] + -1][p1]) && !(p1 == p4)) || (#memory_int[p1 := #memory_int[p1] + 1][p2] + 1 <= 0 && (!(p1 == p2) && 1 <= #memory_int[p4 := #memory_int[p4] + -1][p1]) && !(p1 == p4)))) && 0 <= #memory_int[p4 := #memory_int[p4] + -1][p3])) || ((((((p1 + 3 <= p4 && 0 == #memory_int[p2 := #memory_int[p2] + -1][p1]) && 0 == #memory_int[p4 := #memory_int[p4] + -1][p2]) && #memory_int[p3] == 0) && !(p1 == p3)) && !(p3 == p2)) && #memory_int[p3 := #memory_int[p3] + 1][p4] + 1 <= 0) - StatisticsResult: Ultimate Automizer benchmark data CFG has 1 procedures, 11 locations, 4 error locations. SAFE Result, 532.8s OverallTime, 57 OverallIterations, 2 TraceHistogramMax, 215.7s AutomataDifference, 0.0s DeadEndRemovalTime, 26.9s HoareAnnotationTime, HoareTripleCheckerStatistics: 210 SDtfs, 887 SDslu, 1 SDs, 0 SdLazy, 8756 SolverSat, 645 SolverUnsat, 0 SolverUnknown, 0 SolverNotchecked, 17.1s Time, PredicateUnifierStatistics: 0 DeclaredPredicates, 875 GetRequests, 174 SyntacticMatches, 38 SemanticMatches, 663 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 2487 ImplicationChecksByTransitivity, 25.6s Time, 0.0s BasicInterpolantAutomatonTime, BiggestAbstraction: size=367occurred in iteration=46, traceCheckStatistics: No data available, InterpolantConsolidationStatistics: No data available, PathInvariantsStatistics: No data available, 0/0 InterpolantCoveringCapability, TotalInterpolationStatistics: No data available, 1.0s AbstIntTime, 43 AbstIntIterations, 0 AbstIntStrong, NaN AbsIntWeakeningRatio, NaN AbsIntAvgWeakeningVarsNumRemoved, NaN AbsIntAvgWeakenedConjuncts, 0.0s DumpTime, AutomataMinimizationStatistics: 137.0s AutomataMinimizationTime, 57 MinimizatonAttempts, 1522 StatesRemovedByMinimization, 56 NontrivialMinimizations, HoareAnnotationStatistics: 0.0s HoareAnnotationTime, 1 LocationsWithAnnotation, 1 PreInvPairs, 64 NumberOfFragments, 342 HoareAnnotationTreeSize, 1 FomulaSimplifications, 181006621 FormulaSimplificationTreeSizeReduction, 11.5s HoareSimplificationTime, 1 FomulaSimplificationsInter, 10044512 FormulaSimplificationTreeSizeReductionInter, 15.1s HoareSimplificationTimeInter, RefinementEngineStatistics: TraceCheckStatistics: 0.0s SsaConstructionTime, 0.5s SatisfiabilityAnalysisTime, 148.1s InterpolantComputationTime, 648 NumberOfCodeBlocks, 648 NumberOfCodeBlocksAsserted, 129 NumberOfCheckSat, 802 ConstructedInterpolants, 235 QuantifiedInterpolants, 90984 SizeOfPredicates, 162 NumberOfNonLiveVariables, 1237 ConjunctsInSsa, 390 ConjunctsInUnsatCore, 165 InterpolantComputations, 7 PerfectInterpolantSequences, 158/841 InterpolantCoveringCapability, InvariantSynthesisStatistics: No data available, InterpolantConsolidationStatistics: No data available, ReuseStatistics: No data available RESULT: Ultimate proved your program to be correct! Received shutdown request...