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-f57a05f [2019-01-07 18:22:45,086 INFO L170 SettingsManager]: Resetting all preferences to default values... [2019-01-07 18:22:45,088 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2019-01-07 18:22:45,107 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2019-01-07 18:22:45,107 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2019-01-07 18:22:45,108 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2019-01-07 18:22:45,110 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2019-01-07 18:22:45,112 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2019-01-07 18:22:45,115 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2019-01-07 18:22:45,116 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2019-01-07 18:22:45,117 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2019-01-07 18:22:45,117 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2019-01-07 18:22:45,118 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2019-01-07 18:22:45,119 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2019-01-07 18:22:45,120 INFO L174 SettingsManager]: Resetting ChcToBoogie preferences to default values [2019-01-07 18:22:45,121 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2019-01-07 18:22:45,122 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2019-01-07 18:22:45,124 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2019-01-07 18:22:45,126 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2019-01-07 18:22:45,128 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2019-01-07 18:22:45,129 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2019-01-07 18:22:45,130 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2019-01-07 18:22:45,132 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2019-01-07 18:22:45,133 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2019-01-07 18:22:45,133 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2019-01-07 18:22:45,134 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2019-01-07 18:22:45,135 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2019-01-07 18:22:45,136 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2019-01-07 18:22:45,136 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2019-01-07 18:22:45,137 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2019-01-07 18:22:45,138 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2019-01-07 18:22:45,138 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2019-01-07 18:22:45,138 INFO L177 SettingsManager]: ReqParser provides no preferences, ignoring... [2019-01-07 18:22:45,139 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2019-01-07 18:22:45,140 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2019-01-07 18:22:45,140 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2019-01-07 18:22:45,141 INFO L98 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/settings/ai/array-bench/reach_32bit_compound_exp_cong.epf [2019-01-07 18:22:45,157 INFO L110 SettingsManager]: Loading preferences was successful [2019-01-07 18:22:45,160 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2019-01-07 18:22:45,161 INFO L131 SettingsManager]: Preferences of Boogie Preprocessor differ from their defaults: [2019-01-07 18:22:45,161 INFO L133 SettingsManager]: * Show backtranslation warnings=false [2019-01-07 18:22:45,161 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2019-01-07 18:22:45,161 INFO L133 SettingsManager]: * User list type=DISABLED [2019-01-07 18:22:45,162 INFO L133 SettingsManager]: * Inline calls to unimplemented procedures=true [2019-01-07 18:22:45,162 INFO L131 SettingsManager]: Preferences of Abstract Interpretation differ from their defaults: [2019-01-07 18:22:45,162 INFO L133 SettingsManager]: * Explicit value domain=true [2019-01-07 18:22:45,162 INFO L133 SettingsManager]: * Abstract domain for RCFG-of-the-future=PoormanAbstractDomain [2019-01-07 18:22:45,162 INFO L133 SettingsManager]: * Octagon Domain=false [2019-01-07 18:22:45,163 INFO L133 SettingsManager]: * Abstract domain=CompoundDomain [2019-01-07 18:22:45,163 INFO L133 SettingsManager]: * Check feasibility of abstract posts with an SMT solver=true [2019-01-07 18:22:45,163 INFO L133 SettingsManager]: * Interval Domain=false [2019-01-07 18:22:45,164 INFO L131 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2019-01-07 18:22:45,164 INFO L133 SettingsManager]: * Create parallel compositions if possible=false [2019-01-07 18:22:45,164 INFO L133 SettingsManager]: * Use SBE=true [2019-01-07 18:22:45,164 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2019-01-07 18:22:45,165 INFO L133 SettingsManager]: * sizeof long=4 [2019-01-07 18:22:45,165 INFO L133 SettingsManager]: * Overapproximate operations on floating types=true [2019-01-07 18:22:45,165 INFO L133 SettingsManager]: * sizeof POINTER=4 [2019-01-07 18:22:45,166 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2019-01-07 18:22:45,166 INFO L133 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2019-01-07 18:22:45,166 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2019-01-07 18:22:45,166 INFO L133 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2019-01-07 18:22:45,166 INFO L133 SettingsManager]: * sizeof long double=12 [2019-01-07 18:22:45,167 INFO L133 SettingsManager]: * Check if freed pointer was valid=false [2019-01-07 18:22:45,167 INFO L133 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2019-01-07 18:22:45,167 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2019-01-07 18:22:45,167 INFO L133 SettingsManager]: * Size of a code block=SequenceOfStatements [2019-01-07 18:22:45,167 INFO L133 SettingsManager]: * SMT solver=External_DefaultMode [2019-01-07 18:22:45,168 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2019-01-07 18:22:45,169 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2019-01-07 18:22:45,169 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2019-01-07 18:22:45,169 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2019-01-07 18:22:45,169 INFO L133 SettingsManager]: * Trace refinement strategy=TAIPAN [2019-01-07 18:22:45,169 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2019-01-07 18:22:45,170 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2019-01-07 18:22:45,170 INFO L133 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2019-01-07 18:22:45,170 INFO L133 SettingsManager]: * Abstract interpretation Mode=USE_PREDICATES [2019-01-07 18:22:45,208 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2019-01-07 18:22:45,224 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2019-01-07 18:22:45,229 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2019-01-07 18:22:45,231 INFO L271 PluginConnector]: Initializing Boogie PL CUP Parser... [2019-01-07 18:22:45,232 INFO L276 PluginConnector]: Boogie PL CUP Parser initialized [2019-01-07 18:22:45,232 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-01-07 18:22:45,233 INFO L111 BoogieParser]: Parsing: '/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/programs/heapseparator/speedup-poc-dd-4-limited.bpl' [2019-01-07 18:22:45,291 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2019-01-07 18:22:45,293 INFO L131 ToolchainWalker]: Walking toolchain with 4 elements. [2019-01-07 18:22:45,294 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2019-01-07 18:22:45,294 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2019-01-07 18:22:45,294 INFO L276 PluginConnector]: Boogie Procedure Inliner initialized [2019-01-07 18:22:45,315 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 07.01 06:22:45" (1/1) ... [2019-01-07 18:22:45,330 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 07.01 06:22:45" (1/1) ... [2019-01-07 18:22:45,373 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2019-01-07 18:22:45,374 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2019-01-07 18:22:45,374 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2019-01-07 18:22:45,375 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2019-01-07 18:22:45,388 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 07.01 06:22:45" (1/1) ... [2019-01-07 18:22:45,388 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 07.01 06:22:45" (1/1) ... [2019-01-07 18:22:45,391 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 07.01 06:22:45" (1/1) ... [2019-01-07 18:22:45,391 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 07.01 06:22:45" (1/1) ... [2019-01-07 18:22:45,397 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 07.01 06:22:45" (1/1) ... [2019-01-07 18:22:45,402 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 07.01 06:22:45" (1/1) ... [2019-01-07 18:22:45,405 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 07.01 06:22:45" (1/1) ... [2019-01-07 18:22:45,413 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2019-01-07 18:22:45,413 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2019-01-07 18:22:45,413 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2019-01-07 18:22:45,414 INFO L276 PluginConnector]: RCFGBuilder initialized [2019-01-07 18:22:45,415 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 07.01 06:22:45" (1/1) ... No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2019-01-07 18:22:45,494 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2019-01-07 18:22:45,494 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2019-01-07 18:22:46,090 INFO L281 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2019-01-07 18:22:46,091 INFO L286 CfgBuilder]: Removed 11 assue(true) statements. [2019-01-07 18:22:46,092 INFO L202 PluginConnector]: Adding new model speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 07.01 06:22:46 BoogieIcfgContainer [2019-01-07 18:22:46,092 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2019-01-07 18:22:46,094 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2019-01-07 18:22:46,094 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2019-01-07 18:22:46,097 INFO L276 PluginConnector]: TraceAbstraction initialized [2019-01-07 18:22:46,098 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 07.01 06:22:45" (1/2) ... [2019-01-07 18:22:46,099 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@47b5ba2b and model type speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 07.01 06:22:46, skipping insertion in model container [2019-01-07 18:22:46,099 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 07.01 06:22:46" (2/2) ... [2019-01-07 18:22:46,101 INFO L112 eAbstractionObserver]: Analyzing ICFG speedup-poc-dd-4-limited.bpl [2019-01-07 18:22:46,111 INFO L156 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2019-01-07 18:22:46,120 INFO L168 ceAbstractionStarter]: Appying trace abstraction to program that has 4 error locations. [2019-01-07 18:22:46,138 INFO L257 AbstractCegarLoop]: Starting to check reachability of 4 error locations. [2019-01-07 18:22:46,173 INFO L382 AbstractCegarLoop]: Interprodecural is true [2019-01-07 18:22:46,173 INFO L383 AbstractCegarLoop]: Hoare is true [2019-01-07 18:22:46,173 INFO L384 AbstractCegarLoop]: Compute interpolants for FPandBP [2019-01-07 18:22:46,174 INFO L385 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2019-01-07 18:22:46,174 INFO L386 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2019-01-07 18:22:46,174 INFO L387 AbstractCegarLoop]: Difference is false [2019-01-07 18:22:46,174 INFO L388 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2019-01-07 18:22:46,174 INFO L393 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2019-01-07 18:22:46,190 INFO L276 IsEmpty]: Start isEmpty. Operand 11 states. [2019-01-07 18:22:46,196 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 3 [2019-01-07 18:22:46,196 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:22:46,197 INFO L402 BasicCegarLoop]: trace histogram [1, 1] [2019-01-07 18:22:46,200 INFO L423 AbstractCegarLoop]: === Iteration 1 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:22:46,206 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:22:46,207 INFO L82 PathProgramCache]: Analyzing trace with hash 980, now seen corresponding path program 1 times [2019-01-07 18:22:46,209 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:22:46,257 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:22:46,257 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:22:46,257 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:22:46,257 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:22:46,311 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:22:46,447 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-01-07 18:22:46,454 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-01-07 18:22:46,456 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:22:46,459 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2019-01-07 18:22:46,459 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [1] imperfect sequences [] total 1 [2019-01-07 18:22:46,459 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-07 18:22:46,464 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 2 [2019-01-07 18:22:46,466 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:22:46,469 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states. [2019-01-07 18:22:46,488 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 2 edges. 2 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:22:46,488 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2019-01-07 18:22:46,496 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2019-01-07 18:22:46,496 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-01-07 18:22:46,499 INFO L87 Difference]: Start difference. First operand 11 states. Second operand 3 states. [2019-01-07 18:22:46,765 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:22:46,766 INFO L93 Difference]: Finished difference Result 21 states and 27 transitions. [2019-01-07 18:22:46,766 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-07 18:22:46,766 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 2 [2019-01-07 18:22:46,766 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:22:46,768 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-01-07 18:22:46,771 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 27 transitions. [2019-01-07 18:22:46,772 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-01-07 18:22:46,774 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 27 transitions. [2019-01-07 18:22:46,774 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 27 transitions. [2019-01-07 18:22:47,013 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 27 edges. 27 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:22:47,028 INFO L225 Difference]: With dead ends: 21 [2019-01-07 18:22:47,028 INFO L226 Difference]: Without dead ends: 16 [2019-01-07 18:22:47,032 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 1 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 1 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-01-07 18:22:47,052 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 16 states. [2019-01-07 18:22:47,104 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 16 to 10. [2019-01-07 18:22:47,105 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:22:47,105 INFO L82 GeneralOperation]: Start isEquivalent. First operand 16 states. Second operand 10 states. [2019-01-07 18:22:47,106 INFO L74 IsIncluded]: Start isIncluded. First operand 16 states. Second operand 10 states. [2019-01-07 18:22:47,106 INFO L87 Difference]: Start difference. First operand 16 states. Second operand 10 states. [2019-01-07 18:22:47,110 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:22:47,110 INFO L93 Difference]: Finished difference Result 16 states and 22 transitions. [2019-01-07 18:22:47,110 INFO L276 IsEmpty]: Start isEmpty. Operand 16 states and 22 transitions. [2019-01-07 18:22:47,111 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:22:47,111 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:22:47,111 INFO L74 IsIncluded]: Start isIncluded. First operand 10 states. Second operand 16 states. [2019-01-07 18:22:47,112 INFO L87 Difference]: Start difference. First operand 10 states. Second operand 16 states. [2019-01-07 18:22:47,114 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:22:47,115 INFO L93 Difference]: Finished difference Result 16 states and 22 transitions. [2019-01-07 18:22:47,115 INFO L276 IsEmpty]: Start isEmpty. Operand 16 states and 22 transitions. [2019-01-07 18:22:47,115 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:22:47,118 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:22:47,119 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:22:47,119 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:22:47,119 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:22:47,123 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 17 transitions. [2019-01-07 18:22:47,126 INFO L78 Accepts]: Start accepts. Automaton has 10 states and 17 transitions. Word has length 2 [2019-01-07 18:22:47,127 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:22:47,127 INFO L480 AbstractCegarLoop]: Abstraction has 10 states and 17 transitions. [2019-01-07 18:22:47,127 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2019-01-07 18:22:47,127 INFO L276 IsEmpty]: Start isEmpty. Operand 10 states and 17 transitions. [2019-01-07 18:22:47,128 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-01-07 18:22:47,128 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:22:47,128 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-01-07 18:22:47,128 INFO L423 AbstractCegarLoop]: === Iteration 2 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:22:47,129 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:22:47,129 INFO L82 PathProgramCache]: Analyzing trace with hash 30306, now seen corresponding path program 1 times [2019-01-07 18:22:47,129 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:22:47,131 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:22:47,131 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:22:47,131 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:22:47,132 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:22:47,163 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:22:47,342 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-01-07 18:22:47,343 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-01-07 18:22:47,345 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-01-07 18:22:47,345 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:22:47,346 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:22:47,346 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:22:47,347 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 4 with the following transitions: [2019-01-07 18:22:47,349 INFO L207 CegarAbsIntRunner]: [0], [16], [19] [2019-01-07 18:22:47,388 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:22:47,389 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:22:47,478 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:22:47,480 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-01-07 18:22:47,485 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:22:47,486 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:22:47,486 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:22:47,486 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:22:47,505 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:22:47,505 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:22:47,532 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:22:47,552 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:22:47,556 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:22:47,703 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:22:47,723 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:47,726 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 18:22:47,756 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:47,758 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:47,760 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 18:22:47,804 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:47,820 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:47,826 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:47,828 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 18:22:47,837 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:22:47,990 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:22:48,084 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:22:48,129 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:22:48,203 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:22:48,204 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-01-07 18:22:48,218 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:22:48,218 WARN L385 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-01-07 18:22:48,219 WARN L386 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-01-07 18:22:48,496 WARN L181 SmtUtils]: Spent 119.00 ms on a formula simplification that was a NOOP. DAG size: 20 [2019-01-07 18:22:48,685 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:48,686 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:48,688 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:48,693 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:48,694 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:48,697 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:48,698 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:48,702 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 18:22:48,709 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:22:48,816 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:22:48,817 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-07 18:22:50,821 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:22:50,822 WARN L385 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-01-07 18:22:50,823 WARN L386 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-01-07 18:22:50,867 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-01-07 18:22:50,870 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-01-07 18:22:50,871 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-01-07 18:22:50,872 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:22:50,872 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:22:50,919 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-01-07 18:22:50,921 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-01-07 18:22:50,923 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-01-07 18:22:50,924 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:22:50,945 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:22:50,945 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-01-07 18:22:50,946 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:22:50,947 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-01-07 18:22:50,947 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:22:50,947 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-01-07 18:22:50,999 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 6 edges. 6 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:22:50,999 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-01-07 18:22:50,999 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-01-07 18:22:51,000 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-07 18:22:51,000 INFO L87 Difference]: Start difference. First operand 10 states and 17 transitions. Second operand 6 states. [2019-01-07 18:22:51,688 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:22:51,689 INFO L93 Difference]: Finished difference Result 31 states and 44 transitions. [2019-01-07 18:22:51,691 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-07 18:22:51,691 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-01-07 18:22:51,692 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:22:51,692 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-07 18:22:51,694 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 44 transitions. [2019-01-07 18:22:51,697 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-07 18:22:51,699 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 44 transitions. [2019-01-07 18:22:51,699 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 44 transitions. [2019-01-07 18:22:51,828 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 44 edges. 44 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:22:51,831 INFO L225 Difference]: With dead ends: 31 [2019-01-07 18:22:51,832 INFO L226 Difference]: Without dead ends: 28 [2019-01-07 18:22:51,833 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 7 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=31, Invalid=41, Unknown=0, NotChecked=0, Total=72 [2019-01-07 18:22:51,833 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 28 states. [2019-01-07 18:22:51,850 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 28 to 13. [2019-01-07 18:22:51,851 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:22:51,851 INFO L82 GeneralOperation]: Start isEquivalent. First operand 28 states. Second operand 13 states. [2019-01-07 18:22:51,852 INFO L74 IsIncluded]: Start isIncluded. First operand 28 states. Second operand 13 states. [2019-01-07 18:22:51,852 INFO L87 Difference]: Start difference. First operand 28 states. Second operand 13 states. [2019-01-07 18:22:51,855 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:22:51,855 INFO L93 Difference]: Finished difference Result 28 states and 40 transitions. [2019-01-07 18:22:51,855 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 40 transitions. [2019-01-07 18:22:51,856 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:22:51,856 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:22:51,856 INFO L74 IsIncluded]: Start isIncluded. First operand 13 states. Second operand 28 states. [2019-01-07 18:22:51,856 INFO L87 Difference]: Start difference. First operand 13 states. Second operand 28 states. [2019-01-07 18:22:51,859 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:22:51,859 INFO L93 Difference]: Finished difference Result 28 states and 40 transitions. [2019-01-07 18:22:51,859 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 40 transitions. [2019-01-07 18:22:51,860 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:22:51,860 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:22:51,860 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:22:51,860 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:22:51,860 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2019-01-07 18:22:51,862 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 25 transitions. [2019-01-07 18:22:51,862 INFO L78 Accepts]: Start accepts. Automaton has 13 states and 25 transitions. Word has length 3 [2019-01-07 18:22:51,862 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:22:51,862 INFO L480 AbstractCegarLoop]: Abstraction has 13 states and 25 transitions. [2019-01-07 18:22:51,863 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-01-07 18:22:51,863 INFO L276 IsEmpty]: Start isEmpty. Operand 13 states and 25 transitions. [2019-01-07 18:22:51,863 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-01-07 18:22:51,863 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:22:51,863 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-01-07 18:22:51,864 INFO L423 AbstractCegarLoop]: === Iteration 3 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:22:51,864 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:22:51,864 INFO L82 PathProgramCache]: Analyzing trace with hash 30432, now seen corresponding path program 1 times [2019-01-07 18:22:51,864 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:22:51,865 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:22:51,865 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:22:51,866 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:22:51,866 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:22:51,875 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:22:51,930 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-01-07 18:22:51,931 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-01-07 18:22:51,936 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-01-07 18:22:51,936 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:22:51,937 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2019-01-07 18:22:51,937 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [1] imperfect sequences [] total 1 [2019-01-07 18:22:51,937 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-07 18:22:51,937 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 3 [2019-01-07 18:22:51,937 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:22:51,937 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states. [2019-01-07 18:22:51,951 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 3 edges. 3 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:22:51,952 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2019-01-07 18:22:51,952 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2019-01-07 18:22:51,952 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-01-07 18:22:51,952 INFO L87 Difference]: Start difference. First operand 13 states and 25 transitions. Second operand 3 states. [2019-01-07 18:22:52,044 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:22:52,045 INFO L93 Difference]: Finished difference Result 15 states and 25 transitions. [2019-01-07 18:22:52,045 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-07 18:22:52,045 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 3 [2019-01-07 18:22:52,045 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:22:52,045 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-01-07 18:22:52,046 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 20 transitions. [2019-01-07 18:22:52,046 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-01-07 18:22:52,047 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 20 transitions. [2019-01-07 18:22:52,047 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 20 transitions. [2019-01-07 18:22:52,071 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 20 edges. 20 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:22:52,073 INFO L225 Difference]: With dead ends: 15 [2019-01-07 18:22:52,073 INFO L226 Difference]: Without dead ends: 14 [2019-01-07 18:22:52,073 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 1 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 1 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-01-07 18:22:52,074 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 14 states. [2019-01-07 18:22:52,092 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 14 to 13. [2019-01-07 18:22:52,092 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:22:52,093 INFO L82 GeneralOperation]: Start isEquivalent. First operand 14 states. Second operand 13 states. [2019-01-07 18:22:52,093 INFO L74 IsIncluded]: Start isIncluded. First operand 14 states. Second operand 13 states. [2019-01-07 18:22:52,093 INFO L87 Difference]: Start difference. First operand 14 states. Second operand 13 states. [2019-01-07 18:22:52,096 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:22:52,096 INFO L93 Difference]: Finished difference Result 14 states and 24 transitions. [2019-01-07 18:22:52,096 INFO L276 IsEmpty]: Start isEmpty. Operand 14 states and 24 transitions. [2019-01-07 18:22:52,096 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:22:52,097 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:22:52,097 INFO L74 IsIncluded]: Start isIncluded. First operand 13 states. Second operand 14 states. [2019-01-07 18:22:52,097 INFO L87 Difference]: Start difference. First operand 13 states. Second operand 14 states. [2019-01-07 18:22:52,098 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:22:52,099 INFO L93 Difference]: Finished difference Result 14 states and 24 transitions. [2019-01-07 18:22:52,099 INFO L276 IsEmpty]: Start isEmpty. Operand 14 states and 24 transitions. [2019-01-07 18:22:52,099 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:22:52,099 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:22:52,100 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:22:52,100 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:22:52,100 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2019-01-07 18:22:52,101 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 24 transitions. [2019-01-07 18:22:52,101 INFO L78 Accepts]: Start accepts. Automaton has 13 states and 24 transitions. Word has length 3 [2019-01-07 18:22:52,101 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:22:52,101 INFO L480 AbstractCegarLoop]: Abstraction has 13 states and 24 transitions. [2019-01-07 18:22:52,102 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2019-01-07 18:22:52,102 INFO L276 IsEmpty]: Start isEmpty. Operand 13 states and 24 transitions. [2019-01-07 18:22:52,102 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-01-07 18:22:52,102 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:22:52,102 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-01-07 18:22:52,103 INFO L423 AbstractCegarLoop]: === Iteration 4 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:22:52,103 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:22:52,103 INFO L82 PathProgramCache]: Analyzing trace with hash 29996, now seen corresponding path program 1 times [2019-01-07 18:22:52,103 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:22:52,104 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:22:52,104 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:22:52,105 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:22:52,105 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:22:52,117 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:22:52,171 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-01-07 18:22:52,172 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-01-07 18:22:52,174 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-01-07 18:22:52,174 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:22:52,175 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:22:52,175 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:22:52,175 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 4 with the following transitions: [2019-01-07 18:22:52,175 INFO L207 CegarAbsIntRunner]: [0], [6], [19] [2019-01-07 18:22:52,178 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:22:52,178 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:22:52,201 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:22:52,201 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-01-07 18:22:52,202 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:22:52,202 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:22:52,202 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:22:52,202 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 3 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 3 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:22:52,211 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:22:52,211 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:22:52,223 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:22:52,226 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:22:52,227 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:22:52,301 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:22:52,336 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:52,338 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 18:22:52,385 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:52,387 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:52,389 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 18:22:52,413 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:52,415 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:52,416 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:52,420 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 18:22:52,426 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:22:52,450 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:22:52,461 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:22:52,472 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:22:52,509 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:22:52,509 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 4 variables, input treesize:25, output treesize:30 [2019-01-07 18:22:52,519 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:22:52,520 WARN L385 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-01-07 18:22:52,520 WARN L386 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-01-07 18:22:52,582 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:52,584 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:52,587 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:52,588 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:52,589 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:52,590 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:52,592 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:52,594 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 18:22:52,598 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:22:52,632 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:22:52,633 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-07 18:22:52,640 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:22:52,640 WARN L385 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-01-07 18:22:52,640 WARN L386 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-01-07 18:22:52,682 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-01-07 18:22:52,685 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-01-07 18:22:52,686 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-01-07 18:22:52,686 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:22:52,686 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:22:52,713 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-01-07 18:22:52,714 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-01-07 18:22:52,716 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-01-07 18:22:52,716 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:22:52,735 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-01-07 18:22:52,736 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [2, 2] total 6 [2019-01-07 18:22:52,736 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-07 18:22:52,736 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 3 [2019-01-07 18:22:52,736 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:22:52,736 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-01-07 18:22:52,742 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 3 edges. 3 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:22:52,742 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-01-07 18:22:52,742 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-01-07 18:22:52,742 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-07 18:22:52,743 INFO L87 Difference]: Start difference. First operand 13 states and 24 transitions. Second operand 4 states. [2019-01-07 18:22:52,843 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:22:52,844 INFO L93 Difference]: Finished difference Result 18 states and 41 transitions. [2019-01-07 18:22:52,844 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2019-01-07 18:22:52,844 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 3 [2019-01-07 18:22:52,844 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:22:52,844 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-07 18:22:52,846 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 24 transitions. [2019-01-07 18:22:52,846 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-07 18:22:52,847 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 24 transitions. [2019-01-07 18:22:52,847 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 24 transitions. [2019-01-07 18:22:52,902 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 24 edges. 24 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:22:52,904 INFO L225 Difference]: With dead ends: 18 [2019-01-07 18:22:52,904 INFO L226 Difference]: Without dead ends: 17 [2019-01-07 18:22:52,905 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-01-07 18:22:52,905 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 17 states. [2019-01-07 18:22:52,961 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 17 to 16. [2019-01-07 18:22:52,961 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:22:52,961 INFO L82 GeneralOperation]: Start isEquivalent. First operand 17 states. Second operand 16 states. [2019-01-07 18:22:52,962 INFO L74 IsIncluded]: Start isIncluded. First operand 17 states. Second operand 16 states. [2019-01-07 18:22:52,962 INFO L87 Difference]: Start difference. First operand 17 states. Second operand 16 states. [2019-01-07 18:22:52,964 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:22:52,965 INFO L93 Difference]: Finished difference Result 17 states and 40 transitions. [2019-01-07 18:22:52,965 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 40 transitions. [2019-01-07 18:22:52,965 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:22:52,966 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:22:52,966 INFO L74 IsIncluded]: Start isIncluded. First operand 16 states. Second operand 17 states. [2019-01-07 18:22:52,966 INFO L87 Difference]: Start difference. First operand 16 states. Second operand 17 states. [2019-01-07 18:22:52,968 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:22:52,968 INFO L93 Difference]: Finished difference Result 17 states and 40 transitions. [2019-01-07 18:22:52,968 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 40 transitions. [2019-01-07 18:22:52,969 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:22:52,969 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:22:52,969 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:22:52,969 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:22:52,970 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 16 states. [2019-01-07 18:22:52,971 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 40 transitions. [2019-01-07 18:22:52,972 INFO L78 Accepts]: Start accepts. Automaton has 16 states and 40 transitions. Word has length 3 [2019-01-07 18:22:52,972 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:22:52,972 INFO L480 AbstractCegarLoop]: Abstraction has 16 states and 40 transitions. [2019-01-07 18:22:52,972 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-01-07 18:22:52,972 INFO L276 IsEmpty]: Start isEmpty. Operand 16 states and 40 transitions. [2019-01-07 18:22:52,973 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-01-07 18:22:52,973 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:22:52,973 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-01-07 18:22:52,973 INFO L423 AbstractCegarLoop]: === Iteration 5 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:22:52,974 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:22:52,974 INFO L82 PathProgramCache]: Analyzing trace with hash 30120, now seen corresponding path program 1 times [2019-01-07 18:22:52,974 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:22:52,975 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:22:52,975 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:22:52,975 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:22:52,976 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:22:52,984 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:22:53,101 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-01-07 18:22:53,103 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-01-07 18:22:53,105 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-01-07 18:22:53,105 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:22:53,106 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:22:53,106 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:22:53,106 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 4 with the following transitions: [2019-01-07 18:22:53,107 INFO L207 CegarAbsIntRunner]: [0], [10], [19] [2019-01-07 18:22:53,108 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:22:53,108 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:22:53,131 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:22:53,131 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-01-07 18:22:53,132 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:22:53,132 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:22:53,132 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:22:53,132 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:22:53,141 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:22:53,141 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:22:53,154 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:22:53,171 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:22:53,172 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:22:53,263 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 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-01-07 18:22:53,279 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:53,280 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 18:22:53,306 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:53,308 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:53,310 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 18:22:53,348 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:53,349 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:53,350 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:53,352 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 18:22:53,356 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:22:53,381 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:22:53,393 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:22:53,405 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:22:53,434 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:22:53,434 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-01-07 18:22:53,440 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:22:53,440 WARN L385 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-01-07 18:22:53,440 WARN L386 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-01-07 18:22:53,521 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:53,523 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:53,525 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:53,527 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:53,528 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:53,530 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:53,531 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:53,533 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 18:22:53,542 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:22:53,626 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:22:53,627 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-07 18:22:53,640 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:22:53,640 WARN L385 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-01-07 18:22:53,641 WARN L386 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-01-07 18:22:53,679 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-01-07 18:22:53,682 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-01-07 18:22:53,683 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-01-07 18:22:53,683 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:22:53,683 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:22:53,724 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-01-07 18:22:53,725 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-01-07 18:22:53,728 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-01-07 18:22:53,728 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:22:53,749 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:22:53,749 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-01-07 18:22:53,749 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:22:53,750 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-01-07 18:22:53,750 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:22:53,750 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-01-07 18:22:53,762 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 6 edges. 6 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:22:53,762 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-01-07 18:22:53,762 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-01-07 18:22:53,762 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-07 18:22:53,763 INFO L87 Difference]: Start difference. First operand 16 states and 40 transitions. Second operand 6 states. [2019-01-07 18:22:54,265 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:22:54,265 INFO L93 Difference]: Finished difference Result 32 states and 62 transitions. [2019-01-07 18:22:54,266 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-07 18:22:54,266 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-01-07 18:22:54,266 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:22:54,266 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-07 18:22:54,268 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 41 transitions. [2019-01-07 18:22:54,268 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-07 18:22:54,269 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 41 transitions. [2019-01-07 18:22:54,269 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 41 transitions. [2019-01-07 18:22:54,388 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 41 edges. 41 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:22:54,390 INFO L225 Difference]: With dead ends: 32 [2019-01-07 18:22:54,391 INFO L226 Difference]: Without dead ends: 31 [2019-01-07 18:22:54,392 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 7 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=31, Invalid=41, Unknown=0, NotChecked=0, Total=72 [2019-01-07 18:22:54,392 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 31 states. [2019-01-07 18:22:54,456 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 31 to 18. [2019-01-07 18:22:54,456 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:22:54,457 INFO L82 GeneralOperation]: Start isEquivalent. First operand 31 states. Second operand 18 states. [2019-01-07 18:22:54,457 INFO L74 IsIncluded]: Start isIncluded. First operand 31 states. Second operand 18 states. [2019-01-07 18:22:54,457 INFO L87 Difference]: Start difference. First operand 31 states. Second operand 18 states. [2019-01-07 18:22:54,461 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:22:54,462 INFO L93 Difference]: Finished difference Result 31 states and 60 transitions. [2019-01-07 18:22:54,462 INFO L276 IsEmpty]: Start isEmpty. Operand 31 states and 60 transitions. [2019-01-07 18:22:54,463 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:22:54,463 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:22:54,463 INFO L74 IsIncluded]: Start isIncluded. First operand 18 states. Second operand 31 states. [2019-01-07 18:22:54,463 INFO L87 Difference]: Start difference. First operand 18 states. Second operand 31 states. [2019-01-07 18:22:54,465 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:22:54,465 INFO L93 Difference]: Finished difference Result 31 states and 60 transitions. [2019-01-07 18:22:54,466 INFO L276 IsEmpty]: Start isEmpty. Operand 31 states and 60 transitions. [2019-01-07 18:22:54,466 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:22:54,466 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:22:54,467 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:22:54,467 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:22:54,467 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 18 states. [2019-01-07 18:22:54,469 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 18 states to 18 states and 50 transitions. [2019-01-07 18:22:54,469 INFO L78 Accepts]: Start accepts. Automaton has 18 states and 50 transitions. Word has length 3 [2019-01-07 18:22:54,469 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:22:54,469 INFO L480 AbstractCegarLoop]: Abstraction has 18 states and 50 transitions. [2019-01-07 18:22:54,470 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-01-07 18:22:54,470 INFO L276 IsEmpty]: Start isEmpty. Operand 18 states and 50 transitions. [2019-01-07 18:22:54,470 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-07 18:22:54,470 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:22:54,470 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-07 18:22:54,471 INFO L423 AbstractCegarLoop]: === Iteration 6 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:22:54,471 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:22:54,471 INFO L82 PathProgramCache]: Analyzing trace with hash 939538, now seen corresponding path program 1 times [2019-01-07 18:22:54,471 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:22:54,472 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:22:54,473 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:22:54,473 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:22:54,473 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:22:54,489 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:22:54,592 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-01-07 18:22:54,594 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-01-07 18:22:54,595 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-01-07 18:22:54,595 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-01-07 18:22:54,596 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:22:54,596 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:22:54,596 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:22:54,596 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-07 18:22:54,597 INFO L207 CegarAbsIntRunner]: [0], [16], [20], [21] [2019-01-07 18:22:54,600 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:22:54,600 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:22:54,620 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:22:54,621 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-01-07 18:22:54,621 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:22:54,621 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:22:54,621 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:22:54,621 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 5 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 5 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:22:54,630 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:22:54,630 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:22:54,636 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:22:54,644 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:22:54,644 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:22:54,673 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:22:54,687 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-07 18:22:54,711 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:54,715 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 26 [2019-01-07 18:22:54,793 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:54,795 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:54,797 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 33 [2019-01-07 18:22:54,803 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:22:54,819 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:22:54,832 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:22:54,843 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:22:54,861 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:22:54,862 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:22, output treesize:27 [2019-01-07 18:22:54,867 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:22:54,868 WARN L385 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-01-07 18:22:54,868 WARN L386 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-01-07 18:22:54,943 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:54,945 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:54,949 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:54,950 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:54,951 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 28 [2019-01-07 18:22:54,954 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:22:54,980 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:22:54,980 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:32, output treesize:22 [2019-01-07 18:22:54,987 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:22:54,987 WARN L385 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-01-07 18:22:54,987 WARN L386 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-01-07 18:22:55,172 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-01-07 18:22:55,174 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-01-07 18:22:55,174 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-01-07 18:22:55,175 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-01-07 18:22:55,176 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:22:55,176 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:22:55,247 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-01-07 18:22:55,248 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-01-07 18:22:55,249 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-01-07 18:22:55,250 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-01-07 18:22:55,250 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:22:55,269 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-01-07 18:22:55,270 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [2, 2] total 6 [2019-01-07 18:22:55,270 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-07 18:22:55,270 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 4 [2019-01-07 18:22:55,271 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:22:55,271 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-01-07 18:22:55,297 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 4 edges. 4 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:22:55,297 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-01-07 18:22:55,297 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-01-07 18:22:55,297 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=26, Invalid=30, Unknown=0, NotChecked=0, Total=56 [2019-01-07 18:22:55,298 INFO L87 Difference]: Start difference. First operand 18 states and 50 transitions. Second operand 4 states. [2019-01-07 18:22:55,428 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:22:55,428 INFO L93 Difference]: Finished difference Result 22 states and 58 transitions. [2019-01-07 18:22:55,429 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-07 18:22:55,429 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 4 [2019-01-07 18:22:55,429 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:22:55,429 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-07 18:22:55,430 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 20 transitions. [2019-01-07 18:22:55,430 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-07 18:22:55,431 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 20 transitions. [2019-01-07 18:22:55,431 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 20 transitions. [2019-01-07 18:22:55,455 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 20 edges. 20 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:22:55,456 INFO L225 Difference]: With dead ends: 22 [2019-01-07 18:22:55,456 INFO L226 Difference]: Without dead ends: 21 [2019-01-07 18:22:55,457 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 8 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 6 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=26, Invalid=30, Unknown=0, NotChecked=0, Total=56 [2019-01-07 18:22:55,457 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 21 states. [2019-01-07 18:22:55,512 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 21 to 20. [2019-01-07 18:22:55,512 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:22:55,512 INFO L82 GeneralOperation]: Start isEquivalent. First operand 21 states. Second operand 20 states. [2019-01-07 18:22:55,513 INFO L74 IsIncluded]: Start isIncluded. First operand 21 states. Second operand 20 states. [2019-01-07 18:22:55,513 INFO L87 Difference]: Start difference. First operand 21 states. Second operand 20 states. [2019-01-07 18:22:55,515 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:22:55,516 INFO L93 Difference]: Finished difference Result 21 states and 57 transitions. [2019-01-07 18:22:55,516 INFO L276 IsEmpty]: Start isEmpty. Operand 21 states and 57 transitions. [2019-01-07 18:22:55,516 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:22:55,516 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:22:55,517 INFO L74 IsIncluded]: Start isIncluded. First operand 20 states. Second operand 21 states. [2019-01-07 18:22:55,517 INFO L87 Difference]: Start difference. First operand 20 states. Second operand 21 states. [2019-01-07 18:22:55,519 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:22:55,519 INFO L93 Difference]: Finished difference Result 21 states and 57 transitions. [2019-01-07 18:22:55,519 INFO L276 IsEmpty]: Start isEmpty. Operand 21 states and 57 transitions. [2019-01-07 18:22:55,520 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:22:55,520 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:22:55,520 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:22:55,520 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:22:55,520 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 20 states. [2019-01-07 18:22:55,522 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 20 states to 20 states and 57 transitions. [2019-01-07 18:22:55,522 INFO L78 Accepts]: Start accepts. Automaton has 20 states and 57 transitions. Word has length 4 [2019-01-07 18:22:55,522 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:22:55,522 INFO L480 AbstractCegarLoop]: Abstraction has 20 states and 57 transitions. [2019-01-07 18:22:55,522 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-01-07 18:22:55,523 INFO L276 IsEmpty]: Start isEmpty. Operand 20 states and 57 transitions. [2019-01-07 18:22:55,523 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-07 18:22:55,523 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:22:55,523 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-07 18:22:55,524 INFO L423 AbstractCegarLoop]: === Iteration 7 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:22:55,524 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:22:55,524 INFO L82 PathProgramCache]: Analyzing trace with hash 939226, now seen corresponding path program 1 times [2019-01-07 18:22:55,524 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:22:55,525 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:22:55,525 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:22:55,525 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:22:55,525 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:22:55,535 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:22:55,715 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-01-07 18:22:55,717 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-01-07 18:22:55,718 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-01-07 18:22:55,719 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-01-07 18:22:55,720 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:22:55,720 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:22:55,721 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:22:55,721 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-07 18:22:55,721 INFO L207 CegarAbsIntRunner]: [0], [10], [16], [19] [2019-01-07 18:22:55,723 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:22:55,723 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:22:55,744 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:22:55,744 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-01-07 18:22:55,745 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:22:55,745 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:22:55,745 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:22:55,745 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 6 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 6 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:22:55,755 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:22:55,755 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:22:55,762 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:22:55,784 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:22:55,785 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:22:55,966 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:22:55,976 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:55,977 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 18:22:55,990 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:55,992 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:55,994 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 18:22:56,012 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:56,014 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:56,015 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:56,017 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 18:22:56,025 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:22:56,049 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:22:56,076 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:22:56,086 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:22:56,105 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:22:56,105 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 18:22:56,114 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:22:56,115 WARN L385 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-01-07 18:22:56,115 WARN L386 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-01-07 18:22:56,268 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:56,269 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:56,271 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:56,272 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:56,274 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:56,275 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:56,276 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:56,279 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 18:22:56,282 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:22:56,343 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:22:56,343 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 18:22:56,646 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:22:56,647 WARN L385 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-01-07 18:22:56,647 WARN L386 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-01-07 18:22:56,726 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:56,727 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:56,729 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:56,730 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:56,731 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:56,733 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:56,769 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:22:56,772 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:22:56,774 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 60 [2019-01-07 18:22:56,799 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:22:56,839 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:22:56,839 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:30 [2019-01-07 18:22:59,268 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:22:59,268 WARN L385 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-01-07 18:22:59,268 WARN L386 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)) (= (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-01-07 18:22:59,309 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-01-07 18:22:59,325 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-01-07 18:22:59,327 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-01-07 18:22:59,329 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-01-07 18:22:59,330 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:22:59,330 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:22:59,387 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-01-07 18:22:59,389 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-01-07 18:22:59,391 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-01-07 18:22:59,393 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-01-07 18:22:59,394 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:22:59,414 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:22:59,414 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 18:22:59,414 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:22:59,415 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-07 18:22:59,415 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:22:59,415 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 18:22:59,428 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:22:59,428 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 18:22:59,428 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 18:22:59,429 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=43, Invalid=67, Unknown=0, NotChecked=0, Total=110 [2019-01-07 18:22:59,429 INFO L87 Difference]: Start difference. First operand 20 states and 57 transitions. Second operand 8 states. [2019-01-07 18:23:00,178 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:00,178 INFO L93 Difference]: Finished difference Result 37 states and 74 transitions. [2019-01-07 18:23:00,178 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-07 18:23:00,178 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-07 18:23:00,179 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:23:00,179 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:23:00,180 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 48 transitions. [2019-01-07 18:23:00,180 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:23:00,181 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 48 transitions. [2019-01-07 18:23:00,181 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 48 transitions. [2019-01-07 18:23:00,322 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 48 edges. 48 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:23:00,324 INFO L225 Difference]: With dead ends: 37 [2019-01-07 18:23:00,324 INFO L226 Difference]: Without dead ends: 36 [2019-01-07 18:23:00,324 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=61, Invalid=95, Unknown=0, NotChecked=0, Total=156 [2019-01-07 18:23:00,324 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 36 states. [2019-01-07 18:23:00,365 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 36 to 17. [2019-01-07 18:23:00,366 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:23:00,366 INFO L82 GeneralOperation]: Start isEquivalent. First operand 36 states. Second operand 17 states. [2019-01-07 18:23:00,366 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 17 states. [2019-01-07 18:23:00,366 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 17 states. [2019-01-07 18:23:00,369 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:00,369 INFO L93 Difference]: Finished difference Result 36 states and 72 transitions. [2019-01-07 18:23:00,369 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 72 transitions. [2019-01-07 18:23:00,369 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:23:00,370 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:23:00,370 INFO L74 IsIncluded]: Start isIncluded. First operand 17 states. Second operand 36 states. [2019-01-07 18:23:00,370 INFO L87 Difference]: Start difference. First operand 17 states. Second operand 36 states. [2019-01-07 18:23:00,372 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:00,372 INFO L93 Difference]: Finished difference Result 36 states and 72 transitions. [2019-01-07 18:23:00,372 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 72 transitions. [2019-01-07 18:23:00,373 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:23:00,373 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:23:00,373 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:23:00,373 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:23:00,373 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 17 states. [2019-01-07 18:23:00,374 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 41 transitions. [2019-01-07 18:23:00,375 INFO L78 Accepts]: Start accepts. Automaton has 17 states and 41 transitions. Word has length 4 [2019-01-07 18:23:00,375 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:23:00,375 INFO L480 AbstractCegarLoop]: Abstraction has 17 states and 41 transitions. [2019-01-07 18:23:00,375 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 18:23:00,375 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 41 transitions. [2019-01-07 18:23:00,375 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-07 18:23:00,375 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:23:00,376 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-07 18:23:00,376 INFO L423 AbstractCegarLoop]: === Iteration 8 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:23:00,376 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:23:00,376 INFO L82 PathProgramCache]: Analyzing trace with hash 939350, now seen corresponding path program 1 times [2019-01-07 18:23:00,376 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:23:00,377 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:23:00,377 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:23:00,378 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:23:00,378 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:23:00,386 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:00,684 WARN L181 SmtUtils]: Spent 233.00 ms on a formula simplification. DAG size of input: 30 DAG size of output: 17 [2019-01-07 18:23:00,732 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-01-07 18:23:00,733 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-01-07 18:23:00,734 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-01-07 18:23:00,735 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-01-07 18:23:00,735 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:00,735 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:23:00,735 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:23:00,735 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-07 18:23:00,736 INFO L207 CegarAbsIntRunner]: [0], [14], [16], [19] [2019-01-07 18:23:00,736 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:23:00,737 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:23:00,747 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:23:00,747 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-01-07 18:23:00,747 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:23:00,747 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:23:00,748 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:23:00,748 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 7 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 7 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:23:00,760 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:23:00,760 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:23:00,765 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:00,771 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:00,771 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:23:00,784 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:23:00,791 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:00,792 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 18:23:00,807 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:00,809 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:00,810 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 18:23:00,826 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:00,828 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:00,829 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:00,831 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 18:23:00,834 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:00,851 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:00,861 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:00,870 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:00,885 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:00,885 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 18:23:00,893 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:00,893 WARN L385 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-01-07 18:23:00,893 WARN L386 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-01-07 18:23:01,059 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:01,060 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:01,061 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:01,062 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:01,063 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:01,065 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:01,066 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:01,068 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 18:23:01,070 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:01,103 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:01,103 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 18:23:03,110 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:03,110 WARN L385 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-01-07 18:23:03,110 WARN L386 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-01-07 18:23:03,322 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:03,324 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:03,326 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:03,328 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:03,332 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:03,334 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:03,336 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:03,338 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:03,340 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:03,341 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 67 [2019-01-07 18:23:03,344 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:03,393 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:03,394 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-07 18:23:05,426 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:05,426 WARN L385 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-01-07 18:23:05,427 WARN L386 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-01-07 18:23:05,466 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-01-07 18:23:05,469 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-01-07 18:23:05,472 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-01-07 18:23:05,476 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-01-07 18:23:05,477 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:05,477 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:23:05,554 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-01-07 18:23:05,568 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-01-07 18:23:05,582 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-01-07 18:23:05,584 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-01-07 18:23:05,584 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:05,604 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:23:05,605 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 18:23:05,605 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:23:05,605 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-07 18:23:05,605 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:23:05,605 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 18:23:05,623 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:23:05,623 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 18:23:05,623 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 18:23:05,623 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-07 18:23:05,623 INFO L87 Difference]: Start difference. First operand 17 states and 41 transitions. Second operand 8 states. [2019-01-07 18:23:06,521 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:06,522 INFO L93 Difference]: Finished difference Result 42 states and 89 transitions. [2019-01-07 18:23:06,522 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-07 18:23:06,522 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-07 18:23:06,522 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:23:06,523 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:23:06,523 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 50 transitions. [2019-01-07 18:23:06,523 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:23:06,524 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 50 transitions. [2019-01-07 18:23:06,524 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 50 transitions. [2019-01-07 18:23:06,608 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 50 edges. 50 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:23:06,610 INFO L225 Difference]: With dead ends: 42 [2019-01-07 18:23:06,611 INFO L226 Difference]: Without dead ends: 38 [2019-01-07 18:23:06,611 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-01-07 18:23:06,612 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 38 states. [2019-01-07 18:23:06,734 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 38 to 22. [2019-01-07 18:23:06,734 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:23:06,734 INFO L82 GeneralOperation]: Start isEquivalent. First operand 38 states. Second operand 22 states. [2019-01-07 18:23:06,734 INFO L74 IsIncluded]: Start isIncluded. First operand 38 states. Second operand 22 states. [2019-01-07 18:23:06,734 INFO L87 Difference]: Start difference. First operand 38 states. Second operand 22 states. [2019-01-07 18:23:06,737 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:06,737 INFO L93 Difference]: Finished difference Result 38 states and 82 transitions. [2019-01-07 18:23:06,737 INFO L276 IsEmpty]: Start isEmpty. Operand 38 states and 82 transitions. [2019-01-07 18:23:06,737 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:23:06,737 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:23:06,738 INFO L74 IsIncluded]: Start isIncluded. First operand 22 states. Second operand 38 states. [2019-01-07 18:23:06,738 INFO L87 Difference]: Start difference. First operand 22 states. Second operand 38 states. [2019-01-07 18:23:06,740 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:06,740 INFO L93 Difference]: Finished difference Result 38 states and 82 transitions. [2019-01-07 18:23:06,740 INFO L276 IsEmpty]: Start isEmpty. Operand 38 states and 82 transitions. [2019-01-07 18:23:06,740 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:23:06,741 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:23:06,741 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:23:06,741 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:23:06,741 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 22 states. [2019-01-07 18:23:06,742 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 22 states to 22 states and 65 transitions. [2019-01-07 18:23:06,742 INFO L78 Accepts]: Start accepts. Automaton has 22 states and 65 transitions. Word has length 4 [2019-01-07 18:23:06,743 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:23:06,743 INFO L480 AbstractCegarLoop]: Abstraction has 22 states and 65 transitions. [2019-01-07 18:23:06,743 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 18:23:06,743 INFO L276 IsEmpty]: Start isEmpty. Operand 22 states and 65 transitions. [2019-01-07 18:23:06,743 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-07 18:23:06,743 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:23:06,743 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-07 18:23:06,744 INFO L423 AbstractCegarLoop]: === Iteration 9 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:23:06,744 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:23:06,744 INFO L82 PathProgramCache]: Analyzing trace with hash 929802, now seen corresponding path program 1 times [2019-01-07 18:23:06,744 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:23:06,745 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:23:06,745 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:23:06,745 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:23:06,745 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:23:06,753 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:06,864 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-01-07 18:23:06,865 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-01-07 18:23:06,866 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-01-07 18:23:06,867 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-01-07 18:23:06,867 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:06,867 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:23:06,868 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:23:06,868 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-07 18:23:06,868 INFO L207 CegarAbsIntRunner]: [0], [6], [16], [19] [2019-01-07 18:23:06,869 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:23:06,870 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:23:06,893 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:23:06,893 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-01-07 18:23:06,893 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:23:06,894 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:23:06,894 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:23:06,894 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 8 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 8 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:23:06,905 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:23:06,905 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:23:06,909 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:06,913 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:06,916 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:23:07,001 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:23:07,009 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:07,010 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 18:23:07,023 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:07,024 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:07,025 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 18:23:07,039 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:07,040 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:07,041 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:07,043 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 18:23:07,051 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:07,069 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:07,079 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:07,089 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:07,105 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:07,105 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-01-07 18:23:07,112 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:07,112 WARN L385 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-01-07 18:23:07,112 WARN L386 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-01-07 18:23:07,234 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:07,235 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:07,236 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:07,238 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:07,239 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:07,240 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:07,241 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:07,243 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 18:23:07,254 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:07,285 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:07,286 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 18:23:07,292 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:07,292 WARN L385 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-01-07 18:23:07,292 WARN L386 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-01-07 18:23:07,347 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:07,350 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:07,351 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:07,352 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:07,353 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:07,354 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:07,356 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:07,357 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:07,359 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:07,361 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 57 [2019-01-07 18:23:07,387 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:07,426 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:07,427 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-07 18:23:09,448 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:09,448 WARN L385 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-01-07 18:23:09,449 WARN L386 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-01-07 18:23:09,489 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-01-07 18:23:09,491 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-01-07 18:23:09,493 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-01-07 18:23:09,494 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-01-07 18:23:09,495 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:09,495 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:23:09,550 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-01-07 18:23:09,551 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-01-07 18:23:09,552 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-01-07 18:23:09,554 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-01-07 18:23:09,555 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:09,574 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:23:09,574 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 18:23:09,575 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:23:09,575 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-07 18:23:09,575 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:23:09,575 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 18:23:09,587 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:23:09,588 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 18:23:09,588 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 18:23:09,588 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-01-07 18:23:09,588 INFO L87 Difference]: Start difference. First operand 22 states and 65 transitions. Second operand 8 states. [2019-01-07 18:23:10,378 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:10,378 INFO L93 Difference]: Finished difference Result 51 states and 112 transitions. [2019-01-07 18:23:10,378 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-07 18:23:10,378 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-07 18:23:10,378 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:23:10,378 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:23:10,379 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 57 transitions. [2019-01-07 18:23:10,379 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:23:10,380 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 57 transitions. [2019-01-07 18:23:10,381 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 57 transitions. [2019-01-07 18:23:10,498 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 57 edges. 57 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:23:10,500 INFO L225 Difference]: With dead ends: 51 [2019-01-07 18:23:10,500 INFO L226 Difference]: Without dead ends: 48 [2019-01-07 18:23:10,501 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-01-07 18:23:10,501 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 48 states. [2019-01-07 18:23:10,642 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 48 to 28. [2019-01-07 18:23:10,642 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:23:10,643 INFO L82 GeneralOperation]: Start isEquivalent. First operand 48 states. Second operand 28 states. [2019-01-07 18:23:10,643 INFO L74 IsIncluded]: Start isIncluded. First operand 48 states. Second operand 28 states. [2019-01-07 18:23:10,643 INFO L87 Difference]: Start difference. First operand 48 states. Second operand 28 states. [2019-01-07 18:23:10,645 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:10,646 INFO L93 Difference]: Finished difference Result 48 states and 107 transitions. [2019-01-07 18:23:10,646 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 107 transitions. [2019-01-07 18:23:10,646 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:23:10,647 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:23:10,647 INFO L74 IsIncluded]: Start isIncluded. First operand 28 states. Second operand 48 states. [2019-01-07 18:23:10,647 INFO L87 Difference]: Start difference. First operand 28 states. Second operand 48 states. [2019-01-07 18:23:10,650 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:10,650 INFO L93 Difference]: Finished difference Result 48 states and 107 transitions. [2019-01-07 18:23:10,650 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 107 transitions. [2019-01-07 18:23:10,651 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:23:10,651 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:23:10,651 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:23:10,651 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:23:10,651 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 28 states. [2019-01-07 18:23:10,653 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 28 states to 28 states and 88 transitions. [2019-01-07 18:23:10,654 INFO L78 Accepts]: Start accepts. Automaton has 28 states and 88 transitions. Word has length 4 [2019-01-07 18:23:10,654 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:23:10,654 INFO L480 AbstractCegarLoop]: Abstraction has 28 states and 88 transitions. [2019-01-07 18:23:10,654 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 18:23:10,654 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 88 transitions. [2019-01-07 18:23:10,654 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-07 18:23:10,655 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:23:10,655 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-07 18:23:10,655 INFO L423 AbstractCegarLoop]: === Iteration 10 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:23:10,655 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:23:10,656 INFO L82 PathProgramCache]: Analyzing trace with hash 929928, now seen corresponding path program 1 times [2019-01-07 18:23:10,656 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:23:10,656 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:23:10,657 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:23:10,657 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:23:10,657 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:23:10,664 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:10,781 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-01-07 18:23:10,782 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-01-07 18:23:10,782 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-01-07 18:23:10,783 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-01-07 18:23:10,783 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:10,783 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:23:10,784 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:23:10,784 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-07 18:23:10,784 INFO L207 CegarAbsIntRunner]: [0], [6], [20], [21] [2019-01-07 18:23:10,785 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:23:10,785 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:23:10,798 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:23:10,799 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-01-07 18:23:10,799 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:23:10,799 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:23:10,799 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:23:10,799 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 9 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 9 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:23:10,808 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:23:10,808 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:23:10,812 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:10,816 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:10,817 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:23:10,848 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:23:10,905 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:10,906 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 18:23:10,920 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:10,921 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:10,923 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 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-01-07 18:23:10,947 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:10,948 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:10,949 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:10,950 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 18:23:10,955 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:10,975 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:10,988 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:10,997 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:11,017 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:11,018 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-01-07 18:23:11,025 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:11,025 WARN L385 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-01-07 18:23:11,025 WARN L386 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-01-07 18:23:11,152 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:11,174 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:11,196 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:11,206 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:11,208 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:11,210 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:11,212 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:11,213 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 18:23:11,224 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:11,257 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:11,257 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-07 18:23:11,331 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:11,331 WARN L385 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-01-07 18:23:11,332 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< 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-01-07 18:23:11,383 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-01-07 18:23:11,385 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-01-07 18:23:11,386 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-01-07 18:23:11,386 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-01-07 18:23:11,387 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:11,387 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:23:11,414 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-01-07 18:23:11,415 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-01-07 18:23:11,417 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-01-07 18:23:11,419 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-01-07 18:23:11,419 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:11,440 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:23:11,440 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-01-07 18:23:11,440 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:23:11,440 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-01-07 18:23:11,440 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:23:11,440 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-01-07 18:23:11,475 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:23:11,475 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-01-07 18:23:11,475 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-01-07 18:23:11,476 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-07 18:23:11,476 INFO L87 Difference]: Start difference. First operand 28 states and 88 transitions. Second operand 6 states. [2019-01-07 18:23:11,890 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:11,891 INFO L93 Difference]: Finished difference Result 36 states and 98 transitions. [2019-01-07 18:23:11,891 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-07 18:23:11,891 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-01-07 18:23:11,891 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:23:11,891 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-07 18:23:11,892 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 34 transitions. [2019-01-07 18:23:11,892 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-07 18:23:11,892 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 34 transitions. [2019-01-07 18:23:11,893 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 34 transitions. [2019-01-07 18:23:11,985 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 34 edges. 34 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:23:11,986 INFO L225 Difference]: With dead ends: 36 [2019-01-07 18:23:11,986 INFO L226 Difference]: Without dead ends: 35 [2019-01-07 18:23:11,987 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 10 GetRequests, 3 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=31, Invalid=41, Unknown=0, NotChecked=0, Total=72 [2019-01-07 18:23:11,987 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 35 states. [2019-01-07 18:23:12,194 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 35 to 29. [2019-01-07 18:23:12,194 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:23:12,194 INFO L82 GeneralOperation]: Start isEquivalent. First operand 35 states. Second operand 29 states. [2019-01-07 18:23:12,195 INFO L74 IsIncluded]: Start isIncluded. First operand 35 states. Second operand 29 states. [2019-01-07 18:23:12,195 INFO L87 Difference]: Start difference. First operand 35 states. Second operand 29 states. [2019-01-07 18:23:12,199 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:12,199 INFO L93 Difference]: Finished difference Result 35 states and 96 transitions. [2019-01-07 18:23:12,200 INFO L276 IsEmpty]: Start isEmpty. Operand 35 states and 96 transitions. [2019-01-07 18:23:12,200 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:23:12,200 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:23:12,200 INFO L74 IsIncluded]: Start isIncluded. First operand 29 states. Second operand 35 states. [2019-01-07 18:23:12,200 INFO L87 Difference]: Start difference. First operand 29 states. Second operand 35 states. [2019-01-07 18:23:12,202 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:12,202 INFO L93 Difference]: Finished difference Result 35 states and 96 transitions. [2019-01-07 18:23:12,202 INFO L276 IsEmpty]: Start isEmpty. Operand 35 states and 96 transitions. [2019-01-07 18:23:12,203 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:23:12,203 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:23:12,203 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:23:12,203 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:23:12,203 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 29 states. [2019-01-07 18:23:12,205 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 29 states to 29 states and 92 transitions. [2019-01-07 18:23:12,205 INFO L78 Accepts]: Start accepts. Automaton has 29 states and 92 transitions. Word has length 4 [2019-01-07 18:23:12,205 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:23:12,205 INFO L480 AbstractCegarLoop]: Abstraction has 29 states and 92 transitions. [2019-01-07 18:23:12,205 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-01-07 18:23:12,210 INFO L276 IsEmpty]: Start isEmpty. Operand 29 states and 92 transitions. [2019-01-07 18:23:12,210 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-07 18:23:12,211 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:23:12,211 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-07 18:23:12,211 INFO L423 AbstractCegarLoop]: === Iteration 11 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:23:12,211 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:23:12,211 INFO L82 PathProgramCache]: Analyzing trace with hash 929616, now seen corresponding path program 1 times [2019-01-07 18:23:12,212 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:23:12,213 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:23:12,213 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:23:12,214 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:23:12,214 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:23:12,232 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:12,423 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-01-07 18:23:12,425 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-01-07 18:23:12,426 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-01-07 18:23:12,427 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-01-07 18:23:12,428 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:12,428 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:23:12,428 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:23:12,429 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-07 18:23:12,429 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [19] [2019-01-07 18:23:12,431 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:23:12,431 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:23:12,447 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:23:12,447 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-01-07 18:23:12,448 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:23:12,448 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:23:12,448 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:23:12,448 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 10 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 10 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:23:12,457 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:23:12,458 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:23:12,466 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:12,469 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:12,470 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:23:12,506 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:23:12,521 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:12,522 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 18:23:12,572 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:12,573 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:12,574 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 18:23:12,606 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:12,607 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:12,609 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:12,611 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 18:23:12,616 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:12,640 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:12,652 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:12,665 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:12,687 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:12,688 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-01-07 18:23:12,695 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:12,695 WARN L385 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-01-07 18:23:12,696 WARN L386 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-01-07 18:23:12,770 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:12,771 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:12,773 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:12,774 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:12,776 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:12,777 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:12,779 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:12,780 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 18:23:12,785 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:12,825 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:12,825 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 18:23:12,831 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:12,832 WARN L385 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-01-07 18:23:12,832 WARN L386 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-01-07 18:23:12,952 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:12,954 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:12,956 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:12,957 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:12,959 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:12,960 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:12,961 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:12,963 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:12,964 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:12,966 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 65 [2019-01-07 18:23:12,972 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:13,022 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:13,023 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-07 18:23:14,077 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:14,077 WARN L385 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-01-07 18:23:14,078 WARN L386 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-01-07 18:23:14,117 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-01-07 18:23:14,120 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-01-07 18:23:14,123 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-01-07 18:23:14,124 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-01-07 18:23:14,124 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:14,124 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:23:14,173 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-01-07 18:23:14,175 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-01-07 18:23:14,176 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-01-07 18:23:14,178 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-01-07 18:23:14,179 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:14,198 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:23:14,198 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 18:23:14,198 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:23:14,199 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-07 18:23:14,199 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:23:14,199 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 18:23:14,213 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:23:14,213 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 18:23:14,214 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 18:23:14,214 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-01-07 18:23:14,214 INFO L87 Difference]: Start difference. First operand 29 states and 92 transitions. Second operand 8 states. [2019-01-07 18:23:15,151 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:15,152 INFO L93 Difference]: Finished difference Result 55 states and 140 transitions. [2019-01-07 18:23:15,152 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-07 18:23:15,152 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-07 18:23:15,152 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:23:15,152 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:23:15,153 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 54 transitions. [2019-01-07 18:23:15,153 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:23:15,154 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 54 transitions. [2019-01-07 18:23:15,154 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 54 transitions. [2019-01-07 18:23:15,238 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 54 edges. 54 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:23:15,239 INFO L225 Difference]: With dead ends: 55 [2019-01-07 18:23:15,239 INFO L226 Difference]: Without dead ends: 54 [2019-01-07 18:23:15,240 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-01-07 18:23:15,240 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 54 states. [2019-01-07 18:23:15,438 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 54 to 34. [2019-01-07 18:23:15,438 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:23:15,438 INFO L82 GeneralOperation]: Start isEquivalent. First operand 54 states. Second operand 34 states. [2019-01-07 18:23:15,439 INFO L74 IsIncluded]: Start isIncluded. First operand 54 states. Second operand 34 states. [2019-01-07 18:23:15,439 INFO L87 Difference]: Start difference. First operand 54 states. Second operand 34 states. [2019-01-07 18:23:15,443 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:15,444 INFO L93 Difference]: Finished difference Result 54 states and 137 transitions. [2019-01-07 18:23:15,444 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 137 transitions. [2019-01-07 18:23:15,444 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:23:15,444 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:23:15,444 INFO L74 IsIncluded]: Start isIncluded. First operand 34 states. Second operand 54 states. [2019-01-07 18:23:15,445 INFO L87 Difference]: Start difference. First operand 34 states. Second operand 54 states. [2019-01-07 18:23:15,446 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:15,447 INFO L93 Difference]: Finished difference Result 54 states and 137 transitions. [2019-01-07 18:23:15,447 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 137 transitions. [2019-01-07 18:23:15,447 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:23:15,447 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:23:15,447 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:23:15,447 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:23:15,448 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 34 states. [2019-01-07 18:23:15,449 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 34 states to 34 states and 117 transitions. [2019-01-07 18:23:15,449 INFO L78 Accepts]: Start accepts. Automaton has 34 states and 117 transitions. Word has length 4 [2019-01-07 18:23:15,449 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:23:15,449 INFO L480 AbstractCegarLoop]: Abstraction has 34 states and 117 transitions. [2019-01-07 18:23:15,449 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 18:23:15,450 INFO L276 IsEmpty]: Start isEmpty. Operand 34 states and 117 transitions. [2019-01-07 18:23:15,450 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-07 18:23:15,450 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:23:15,450 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-07 18:23:15,450 INFO L423 AbstractCegarLoop]: === Iteration 12 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:23:15,451 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:23:15,451 INFO L82 PathProgramCache]: Analyzing trace with hash 933584, now seen corresponding path program 1 times [2019-01-07 18:23:15,451 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:23:15,452 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:23:15,452 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:23:15,452 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:23:15,452 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:23:15,463 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:15,583 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-01-07 18:23:15,584 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-01-07 18:23:15,585 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-01-07 18:23:15,592 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-01-07 18:23:15,593 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:15,593 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:23:15,593 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:23:15,593 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-07 18:23:15,593 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [19] [2019-01-07 18:23:15,594 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:23:15,594 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:23:15,609 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:23:15,610 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-01-07 18:23:15,610 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:23:15,610 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:23:15,610 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:23:15,610 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 11 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 11 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:23:15,619 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:23:15,619 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:23:15,623 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:15,626 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:15,626 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:23:15,648 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:23:15,664 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:15,665 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 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-01-07 18:23:15,687 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:15,688 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:15,689 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 18:23:15,706 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:15,707 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:15,709 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:15,710 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 18:23:15,720 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:15,738 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:15,750 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:15,760 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:15,778 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:15,778 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 18:23:15,782 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:15,782 WARN L385 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-01-07 18:23:15,783 WARN L386 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-01-07 18:23:15,832 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:15,833 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:15,835 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:15,836 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:15,837 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:15,839 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:15,840 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:15,841 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 18:23:15,847 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:15,878 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:15,879 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 18:23:17,638 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:17,638 WARN L385 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-01-07 18:23:17,638 WARN L386 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-01-07 18:23:17,717 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:17,718 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:17,719 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:17,720 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:17,721 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:17,722 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:17,723 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:17,725 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:17,726 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:17,727 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 67 [2019-01-07 18:23:17,730 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:17,768 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:17,768 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-07 18:23:17,777 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:17,777 WARN L385 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-01-07 18:23:17,777 WARN L386 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-01-07 18:23:17,825 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-01-07 18:23:17,827 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-01-07 18:23:17,829 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-01-07 18:23:17,830 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-01-07 18:23:17,831 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:17,831 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:23:17,885 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-01-07 18:23:17,886 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-01-07 18:23:17,888 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-01-07 18:23:17,890 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-01-07 18:23:17,890 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:17,910 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:23:17,911 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 18:23:17,911 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:23:17,911 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-07 18:23:17,911 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:23:17,911 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 18:23:17,923 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:23:17,924 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 18:23:17,924 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 18:23:17,924 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-07 18:23:17,924 INFO L87 Difference]: Start difference. First operand 34 states and 117 transitions. Second operand 8 states. [2019-01-07 18:23:18,817 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:18,817 INFO L93 Difference]: Finished difference Result 56 states and 150 transitions. [2019-01-07 18:23:18,818 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-07 18:23:18,818 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-07 18:23:18,818 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:23:18,818 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:23:18,819 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 47 transitions. [2019-01-07 18:23:18,819 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:23:18,819 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 47 transitions. [2019-01-07 18:23:18,819 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 47 transitions. [2019-01-07 18:23:18,967 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 47 edges. 47 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:23:18,968 INFO L225 Difference]: With dead ends: 56 [2019-01-07 18:23:18,968 INFO L226 Difference]: Without dead ends: 54 [2019-01-07 18:23:18,969 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-01-07 18:23:18,969 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 54 states. [2019-01-07 18:23:19,226 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 54 to 36. [2019-01-07 18:23:19,226 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:23:19,227 INFO L82 GeneralOperation]: Start isEquivalent. First operand 54 states. Second operand 36 states. [2019-01-07 18:23:19,227 INFO L74 IsIncluded]: Start isIncluded. First operand 54 states. Second operand 36 states. [2019-01-07 18:23:19,227 INFO L87 Difference]: Start difference. First operand 54 states. Second operand 36 states. [2019-01-07 18:23:19,229 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:19,230 INFO L93 Difference]: Finished difference Result 54 states and 146 transitions. [2019-01-07 18:23:19,230 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 146 transitions. [2019-01-07 18:23:19,230 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:23:19,230 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:23:19,230 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 54 states. [2019-01-07 18:23:19,230 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 54 states. [2019-01-07 18:23:19,232 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:19,232 INFO L93 Difference]: Finished difference Result 54 states and 146 transitions. [2019-01-07 18:23:19,233 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 146 transitions. [2019-01-07 18:23:19,233 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:23:19,233 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:23:19,233 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:23:19,233 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:23:19,233 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 36 states. [2019-01-07 18:23:19,235 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 36 states to 36 states and 127 transitions. [2019-01-07 18:23:19,235 INFO L78 Accepts]: Start accepts. Automaton has 36 states and 127 transitions. Word has length 4 [2019-01-07 18:23:19,235 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:23:19,235 INFO L480 AbstractCegarLoop]: Abstraction has 36 states and 127 transitions. [2019-01-07 18:23:19,235 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 18:23:19,235 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 127 transitions. [2019-01-07 18:23:19,236 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-07 18:23:19,236 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:23:19,236 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-07 18:23:19,236 INFO L423 AbstractCegarLoop]: === Iteration 13 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:23:19,236 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:23:19,236 INFO L82 PathProgramCache]: Analyzing trace with hash 937616, now seen corresponding path program 1 times [2019-01-07 18:23:19,237 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:23:19,237 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:23:19,237 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:23:19,238 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:23:19,238 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:23:19,243 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:19,303 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-01-07 18:23:19,304 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-01-07 18:23:19,304 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-01-07 18:23:19,305 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-01-07 18:23:19,306 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:19,306 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:23:19,306 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:23:19,306 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-07 18:23:19,306 INFO L207 CegarAbsIntRunner]: [0], [14], [20], [21] [2019-01-07 18:23:19,308 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:23:19,308 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:23:19,353 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:23:19,354 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-01-07 18:23:19,354 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:23:19,354 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:23:19,354 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:23:19,354 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 12 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 12 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:23:19,362 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:23:19,363 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:23:19,366 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:19,375 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:19,375 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:23:19,392 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:23:19,406 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-07 18:23:19,416 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:19,417 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 26 [2019-01-07 18:23:19,431 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:19,432 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:19,433 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 33 [2019-01-07 18:23:19,449 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:19,465 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:19,475 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:19,485 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:19,501 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:19,501 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:22, output treesize:27 [2019-01-07 18:23:19,506 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:19,506 WARN L385 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-01-07 18:23:19,507 WARN L386 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-01-07 18:23:19,567 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:19,569 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:19,570 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:19,571 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:19,572 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 34 [2019-01-07 18:23:19,576 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:19,598 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:19,598 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:32, output treesize:22 [2019-01-07 18:23:19,605 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:19,606 WARN L385 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-01-07 18:23:19,606 WARN L386 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-01-07 18:23:19,650 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-01-07 18:23:19,651 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-01-07 18:23:19,667 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-01-07 18:23:19,668 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-01-07 18:23:19,668 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:19,669 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:23:19,691 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-01-07 18:23:19,692 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-01-07 18:23:19,693 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-01-07 18:23:19,695 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-01-07 18:23:19,695 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:19,714 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:23:19,715 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-01-07 18:23:19,715 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:23:19,715 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-01-07 18:23:19,715 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:23:19,715 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-01-07 18:23:19,725 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:23:19,725 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-01-07 18:23:19,725 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-01-07 18:23:19,725 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-07 18:23:19,726 INFO L87 Difference]: Start difference. First operand 36 states and 127 transitions. Second operand 6 states. [2019-01-07 18:23:20,198 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:20,198 INFO L93 Difference]: Finished difference Result 48 states and 142 transitions. [2019-01-07 18:23:20,198 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-07 18:23:20,199 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-01-07 18:23:20,199 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:23:20,199 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-07 18:23:20,199 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 36 transitions. [2019-01-07 18:23:20,199 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-07 18:23:20,199 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 36 transitions. [2019-01-07 18:23:20,200 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 36 transitions. [2019-01-07 18:23:20,273 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 36 edges. 36 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:23:20,274 INFO L225 Difference]: With dead ends: 48 [2019-01-07 18:23:20,274 INFO L226 Difference]: Without dead ends: 47 [2019-01-07 18:23:20,275 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 9 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=31, Invalid=41, Unknown=0, NotChecked=0, Total=72 [2019-01-07 18:23:20,275 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 47 states. [2019-01-07 18:23:20,492 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 47 to 36. [2019-01-07 18:23:20,492 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:23:20,493 INFO L82 GeneralOperation]: Start isEquivalent. First operand 47 states. Second operand 36 states. [2019-01-07 18:23:20,493 INFO L74 IsIncluded]: Start isIncluded. First operand 47 states. Second operand 36 states. [2019-01-07 18:23:20,493 INFO L87 Difference]: Start difference. First operand 47 states. Second operand 36 states. [2019-01-07 18:23:20,496 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:20,496 INFO L93 Difference]: Finished difference Result 47 states and 140 transitions. [2019-01-07 18:23:20,496 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 140 transitions. [2019-01-07 18:23:20,496 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:23:20,496 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:23:20,496 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 47 states. [2019-01-07 18:23:20,497 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 47 states. [2019-01-07 18:23:20,498 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:20,498 INFO L93 Difference]: Finished difference Result 47 states and 140 transitions. [2019-01-07 18:23:20,498 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 140 transitions. [2019-01-07 18:23:20,499 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:23:20,499 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:23:20,499 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:23:20,499 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:23:20,499 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 36 states. [2019-01-07 18:23:20,500 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 36 states to 36 states and 127 transitions. [2019-01-07 18:23:20,501 INFO L78 Accepts]: Start accepts. Automaton has 36 states and 127 transitions. Word has length 4 [2019-01-07 18:23:20,501 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:23:20,501 INFO L480 AbstractCegarLoop]: Abstraction has 36 states and 127 transitions. [2019-01-07 18:23:20,501 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-01-07 18:23:20,501 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 127 transitions. [2019-01-07 18:23:20,501 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 18:23:20,501 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:23:20,502 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 18:23:20,502 INFO L423 AbstractCegarLoop]: === Iteration 14 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:23:20,502 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:23:20,502 INFO L82 PathProgramCache]: Analyzing trace with hash 29112214, now seen corresponding path program 1 times [2019-01-07 18:23:20,502 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:23:20,503 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:23:20,503 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:23:20,503 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:23:20,503 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:23:20,509 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:20,683 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-01-07 18:23:20,685 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-01-07 18:23:20,686 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-01-07 18:23:20,687 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-01-07 18:23:20,688 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-01-07 18:23:20,688 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 18:23:20,688 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:23:20,689 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:23:20,689 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-07 18:23:20,689 INFO L207 CegarAbsIntRunner]: [0], [6], [16], [20], [21] [2019-01-07 18:23:20,690 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:23:20,691 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:23:20,703 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:23:20,703 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-01-07 18:23:20,704 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:23:20,704 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:23:20,704 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:23:20,704 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 13 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 13 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:23:20,717 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:23:20,717 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:23:20,734 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:20,754 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:20,755 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:23:20,839 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:23:20,850 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:20,851 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 18:23:20,865 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:20,866 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:20,867 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 18:23:20,885 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:20,886 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:20,888 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:20,889 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 18:23:20,894 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:20,923 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:20,936 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:20,947 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:20,967 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:20,967 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 18:23:20,976 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:20,976 WARN L385 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-01-07 18:23:20,976 WARN L386 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-01-07 18:23:21,040 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:21,041 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:21,042 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:21,044 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:21,045 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:21,046 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:21,047 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:21,049 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 18:23:21,054 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:21,087 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:21,088 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 18:23:23,378 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:23,378 WARN L385 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-01-07 18:23:23,378 WARN L386 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-01-07 18:23:23,462 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:23,464 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:23,465 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:23,467 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:23,468 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:23,470 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:23,471 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:23,473 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:23,474 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:23,476 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 59 [2019-01-07 18:23:23,490 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:23,531 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:23,532 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-07 18:23:23,543 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:23,544 WARN L385 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-01-07 18:23:23,544 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< 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-01-07 18:23:23,602 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-01-07 18:23:23,605 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-01-07 18:23:23,606 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-01-07 18:23:23,607 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-01-07 18:23:23,608 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-01-07 18:23:23,608 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:23,609 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:23:23,662 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-01-07 18:23:23,663 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-01-07 18:23:23,664 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-01-07 18:23:23,666 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-01-07 18:23:23,668 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-01-07 18:23:23,672 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:23,692 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:23:23,693 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 18:23:23,693 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:23:23,693 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 18:23:23,693 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:23:23,693 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 18:23:23,710 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:23:23,710 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 18:23:23,711 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 18:23:23,711 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-07 18:23:23,711 INFO L87 Difference]: Start difference. First operand 36 states and 127 transitions. Second operand 8 states. [2019-01-07 18:23:24,746 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:24,747 INFO L93 Difference]: Finished difference Result 56 states and 161 transitions. [2019-01-07 18:23:24,747 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-07 18:23:24,747 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 18:23:24,747 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:23:24,748 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:23:24,748 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 44 transitions. [2019-01-07 18:23:24,748 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:23:24,749 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 44 transitions. [2019-01-07 18:23:24,749 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 44 transitions. [2019-01-07 18:23:25,150 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 44 edges. 44 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:23:25,151 INFO L225 Difference]: With dead ends: 56 [2019-01-07 18:23:25,151 INFO L226 Difference]: Without dead ends: 55 [2019-01-07 18:23:25,152 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 2 SyntacticMatches, 1 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-01-07 18:23:25,152 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 55 states. [2019-01-07 18:23:25,575 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 55 to 39. [2019-01-07 18:23:25,576 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:23:25,576 INFO L82 GeneralOperation]: Start isEquivalent. First operand 55 states. Second operand 39 states. [2019-01-07 18:23:25,576 INFO L74 IsIncluded]: Start isIncluded. First operand 55 states. Second operand 39 states. [2019-01-07 18:23:25,576 INFO L87 Difference]: Start difference. First operand 55 states. Second operand 39 states. [2019-01-07 18:23:25,579 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:25,579 INFO L93 Difference]: Finished difference Result 55 states and 159 transitions. [2019-01-07 18:23:25,579 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 159 transitions. [2019-01-07 18:23:25,579 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:23:25,580 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:23:25,580 INFO L74 IsIncluded]: Start isIncluded. First operand 39 states. Second operand 55 states. [2019-01-07 18:23:25,580 INFO L87 Difference]: Start difference. First operand 39 states. Second operand 55 states. [2019-01-07 18:23:25,582 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:25,582 INFO L93 Difference]: Finished difference Result 55 states and 159 transitions. [2019-01-07 18:23:25,582 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 159 transitions. [2019-01-07 18:23:25,583 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:23:25,583 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:23:25,583 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:23:25,583 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:23:25,583 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 39 states. [2019-01-07 18:23:25,585 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 39 states to 39 states and 142 transitions. [2019-01-07 18:23:25,585 INFO L78 Accepts]: Start accepts. Automaton has 39 states and 142 transitions. Word has length 5 [2019-01-07 18:23:25,585 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:23:25,586 INFO L480 AbstractCegarLoop]: Abstraction has 39 states and 142 transitions. [2019-01-07 18:23:25,586 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 18:23:25,586 INFO L276 IsEmpty]: Start isEmpty. Operand 39 states and 142 transitions. [2019-01-07 18:23:25,586 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 18:23:25,586 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:23:25,586 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 18:23:25,587 INFO L423 AbstractCegarLoop]: === Iteration 15 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:23:25,587 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:23:25,587 INFO L82 PathProgramCache]: Analyzing trace with hash 29111902, now seen corresponding path program 1 times [2019-01-07 18:23:25,587 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:23:25,588 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:23:25,588 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:23:25,588 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:23:25,589 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:23:25,602 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:25,850 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-01-07 18:23:25,852 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-01-07 18:23:25,853 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-01-07 18:23:25,853 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-01-07 18:23:25,854 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-01-07 18:23:25,854 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:25,855 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:23:25,855 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:23:25,855 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-07 18:23:25,855 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [16], [19] [2019-01-07 18:23:25,857 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:23:25,857 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:23:25,885 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:23:25,885 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-01-07 18:23:25,886 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:23:25,886 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:23:25,886 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:23:25,886 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 14 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 14 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:23:25,917 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:23:25,917 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:23:25,922 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:25,926 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:25,926 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:23:25,950 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:23:25,955 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:25,956 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 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-01-07 18:23:25,971 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:25,972 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:25,973 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 18:23:25,989 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:25,990 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:25,991 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:25,992 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 18:23:25,995 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:26,016 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:26,026 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:26,034 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:26,049 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:26,050 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 18:23:26,054 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:26,054 WARN L385 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-01-07 18:23:26,054 WARN L386 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-01-07 18:23:26,109 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:26,111 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:26,112 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:26,114 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:26,115 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:26,119 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:26,121 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:26,121 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 18:23:26,123 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:26,155 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:26,155 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 18:23:26,187 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:26,188 WARN L385 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-01-07 18:23:26,188 WARN L386 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-01-07 18:23:26,287 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:26,288 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:26,290 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:26,291 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:26,292 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:26,294 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:26,295 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:26,296 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:26,297 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:26,298 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 59 [2019-01-07 18:23:26,302 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:26,339 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:26,340 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-07 18:23:26,346 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:26,346 WARN L385 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-01-07 18:23:26,346 WARN L386 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-01-07 18:23:26,397 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:26,399 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:26,400 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:26,401 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:26,403 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:26,404 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:26,405 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:26,406 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:26,407 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:23:26,408 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:26,410 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 72 [2019-01-07 18:23:26,419 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:26,462 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:26,462 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:30 [2019-01-07 18:23:26,470 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:26,471 WARN L385 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-01-07 18:23:26,471 WARN L386 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)) (= (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-01-07 18:23:26,505 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-01-07 18:23:26,507 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-01-07 18:23:26,509 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-01-07 18:23:26,512 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-01-07 18:23:26,513 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-01-07 18:23:26,514 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:26,514 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:23:26,581 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-01-07 18:23:26,582 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-01-07 18:23:26,583 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-01-07 18:23:26,585 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-01-07 18:23:26,586 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-01-07 18:23:26,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-01-07 18:23:26,607 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:23:26,607 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-07 18:23:26,607 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:23:26,608 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-07 18:23:26,608 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:23:26,608 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 18:23:26,626 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:23:26,626 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 18:23:26,626 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 18:23:26,627 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=70, Invalid=112, Unknown=0, NotChecked=0, Total=182 [2019-01-07 18:23:26,627 INFO L87 Difference]: Start difference. First operand 39 states and 142 transitions. Second operand 10 states. [2019-01-07 18:23:28,062 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:28,062 INFO L93 Difference]: Finished difference Result 76 states and 212 transitions. [2019-01-07 18:23:28,062 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-07 18:23:28,063 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-07 18:23:28,063 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:23:28,063 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:23:28,064 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 64 transitions. [2019-01-07 18:23:28,064 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:23:28,064 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 64 transitions. [2019-01-07 18:23:28,064 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 64 transitions. [2019-01-07 18:23:28,290 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 64 edges. 64 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:23:28,292 INFO L225 Difference]: With dead ends: 76 [2019-01-07 18:23:28,292 INFO L226 Difference]: Without dead ends: 75 [2019-01-07 18:23:28,292 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-01-07 18:23:28,292 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 75 states. [2019-01-07 18:23:28,546 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 75 to 41. [2019-01-07 18:23:28,546 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:23:28,546 INFO L82 GeneralOperation]: Start isEquivalent. First operand 75 states. Second operand 41 states. [2019-01-07 18:23:28,547 INFO L74 IsIncluded]: Start isIncluded. First operand 75 states. Second operand 41 states. [2019-01-07 18:23:28,547 INFO L87 Difference]: Start difference. First operand 75 states. Second operand 41 states. [2019-01-07 18:23:28,551 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:28,551 INFO L93 Difference]: Finished difference Result 75 states and 209 transitions. [2019-01-07 18:23:28,551 INFO L276 IsEmpty]: Start isEmpty. Operand 75 states and 209 transitions. [2019-01-07 18:23:28,551 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:23:28,551 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:23:28,552 INFO L74 IsIncluded]: Start isIncluded. First operand 41 states. Second operand 75 states. [2019-01-07 18:23:28,552 INFO L87 Difference]: Start difference. First operand 41 states. Second operand 75 states. [2019-01-07 18:23:28,554 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:28,554 INFO L93 Difference]: Finished difference Result 75 states and 209 transitions. [2019-01-07 18:23:28,554 INFO L276 IsEmpty]: Start isEmpty. Operand 75 states and 209 transitions. [2019-01-07 18:23:28,555 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:23:28,555 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:23:28,555 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:23:28,555 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:23:28,555 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 41 states. [2019-01-07 18:23:28,557 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 41 states to 41 states and 152 transitions. [2019-01-07 18:23:28,557 INFO L78 Accepts]: Start accepts. Automaton has 41 states and 152 transitions. Word has length 5 [2019-01-07 18:23:28,557 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:23:28,557 INFO L480 AbstractCegarLoop]: Abstraction has 41 states and 152 transitions. [2019-01-07 18:23:28,557 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 18:23:28,557 INFO L276 IsEmpty]: Start isEmpty. Operand 41 states and 152 transitions. [2019-01-07 18:23:28,558 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 18:23:28,558 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:23:28,558 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 18:23:28,558 INFO L423 AbstractCegarLoop]: === Iteration 16 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:23:28,558 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:23:28,559 INFO L82 PathProgramCache]: Analyzing trace with hash 29115870, now seen corresponding path program 1 times [2019-01-07 18:23:28,559 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:23:28,559 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:23:28,559 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:23:28,560 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:23:28,560 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:23:28,566 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:29,208 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-01-07 18:23:29,210 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-01-07 18:23:29,212 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-01-07 18:23:29,212 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-01-07 18:23:29,214 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-01-07 18:23:29,214 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:29,214 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:23:29,215 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:23:29,215 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-07 18:23:29,215 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [16], [19] [2019-01-07 18:23:29,216 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:23:29,216 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:23:29,253 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:23:29,253 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-01-07 18:23:29,253 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:23:29,253 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:23:29,254 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:23:29,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 15 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 15 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:23:29,261 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:23:29,262 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:23:29,266 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:29,270 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:29,270 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:23:29,290 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:23:29,298 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:29,299 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 18:23:29,312 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:29,313 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:29,314 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 18:23:29,357 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:29,358 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:29,360 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:29,361 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 18:23:29,365 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:29,385 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:29,396 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:29,407 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:29,422 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:29,422 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-07 18:23:29,427 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:29,427 WARN L385 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-01-07 18:23:29,427 WARN L386 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-01-07 18:23:29,478 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:29,479 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:29,488 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:29,489 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:29,490 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:29,491 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:29,492 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:29,493 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 18:23:29,497 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:29,527 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:29,527 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-07 18:23:31,541 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:31,542 WARN L385 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-01-07 18:23:31,542 WARN L386 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-01-07 18:23:31,925 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:31,930 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:31,931 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:31,932 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:31,933 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:31,934 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:31,935 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:31,936 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:23:31,937 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 60 [2019-01-07 18:23:31,941 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:31,978 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:31,978 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:30 [2019-01-07 18:23:32,004 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:32,004 WARN L385 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-01-07 18:23:32,004 WARN L386 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)) (= (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-01-07 18:23:32,074 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:32,076 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:32,077 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:32,079 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:32,080 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:32,082 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:32,083 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:32,084 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:32,085 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:32,087 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 69 [2019-01-07 18:23:32,100 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:32,141 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:32,141 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:44, output treesize:34 [2019-01-07 18:23:34,081 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:34,081 WARN L385 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-01-07 18:23:34,081 WARN L386 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-01-07 18:23:34,137 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-01-07 18:23:34,139 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-01-07 18:23:34,141 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-01-07 18:23:34,144 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-01-07 18:23:34,145 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-01-07 18:23:34,146 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:34,146 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:23:34,290 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-01-07 18:23:34,291 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-01-07 18:23:34,292 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-01-07 18:23:34,293 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-01-07 18:23:34,295 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-01-07 18:23:34,296 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 1 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:34,315 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:23:34,315 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-07 18:23:34,315 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:23:34,315 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-07 18:23:34,316 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:23:34,316 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 18:23:34,336 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:23:34,337 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 18:23:34,337 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 18:23:34,337 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=67, Invalid=115, Unknown=0, NotChecked=0, Total=182 [2019-01-07 18:23:34,337 INFO L87 Difference]: Start difference. First operand 41 states and 152 transitions. Second operand 10 states. [2019-01-07 18:23:35,728 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:35,728 INFO L93 Difference]: Finished difference Result 67 states and 187 transitions. [2019-01-07 18:23:35,728 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-07 18:23:35,728 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-07 18:23:35,729 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:23:35,729 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:23:35,729 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 55 transitions. [2019-01-07 18:23:35,729 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:23:35,730 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 55 transitions. [2019-01-07 18:23:35,730 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 55 transitions. [2019-01-07 18:23:35,826 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 55 edges. 55 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:23:35,827 INFO L225 Difference]: With dead ends: 67 [2019-01-07 18:23:35,828 INFO L226 Difference]: Without dead ends: 65 [2019-01-07 18:23:35,828 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 15 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 62 ImplicationChecksByTransitivity, 0.9s TimeCoverageRelationStatistics Valid=100, Invalid=172, Unknown=0, NotChecked=0, Total=272 [2019-01-07 18:23:35,828 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 65 states. [2019-01-07 18:23:36,140 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 65 to 39. [2019-01-07 18:23:36,140 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:23:36,141 INFO L82 GeneralOperation]: Start isEquivalent. First operand 65 states. Second operand 39 states. [2019-01-07 18:23:36,141 INFO L74 IsIncluded]: Start isIncluded. First operand 65 states. Second operand 39 states. [2019-01-07 18:23:36,141 INFO L87 Difference]: Start difference. First operand 65 states. Second operand 39 states. [2019-01-07 18:23:36,143 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:36,143 INFO L93 Difference]: Finished difference Result 65 states and 184 transitions. [2019-01-07 18:23:36,143 INFO L276 IsEmpty]: Start isEmpty. Operand 65 states and 184 transitions. [2019-01-07 18:23:36,144 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:23:36,144 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:23:36,144 INFO L74 IsIncluded]: Start isIncluded. First operand 39 states. Second operand 65 states. [2019-01-07 18:23:36,144 INFO L87 Difference]: Start difference. First operand 39 states. Second operand 65 states. [2019-01-07 18:23:36,145 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:36,145 INFO L93 Difference]: Finished difference Result 65 states and 184 transitions. [2019-01-07 18:23:36,145 INFO L276 IsEmpty]: Start isEmpty. Operand 65 states and 184 transitions. [2019-01-07 18:23:36,146 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:23:36,146 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:23:36,146 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:23:36,146 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:23:36,146 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 39 states. [2019-01-07 18:23:36,147 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 39 states to 39 states and 142 transitions. [2019-01-07 18:23:36,147 INFO L78 Accepts]: Start accepts. Automaton has 39 states and 142 transitions. Word has length 5 [2019-01-07 18:23:36,147 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:23:36,147 INFO L480 AbstractCegarLoop]: Abstraction has 39 states and 142 transitions. [2019-01-07 18:23:36,147 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 18:23:36,147 INFO L276 IsEmpty]: Start isEmpty. Operand 39 states and 142 transitions. [2019-01-07 18:23:36,148 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 18:23:36,148 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:23:36,148 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 18:23:36,148 INFO L423 AbstractCegarLoop]: === Iteration 17 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:23:36,148 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:23:36,148 INFO L82 PathProgramCache]: Analyzing trace with hash 29119902, now seen corresponding path program 1 times [2019-01-07 18:23:36,148 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:23:36,149 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:23:36,149 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:23:36,149 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:23:36,149 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:23:36,153 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:36,287 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-01-07 18:23:36,289 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-01-07 18:23:36,290 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-01-07 18:23:36,290 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-01-07 18:23:36,291 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-01-07 18:23:36,292 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:36,292 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:23:36,292 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:23:36,292 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-07 18:23:36,292 INFO L207 CegarAbsIntRunner]: [0], [14], [16], [20], [21] [2019-01-07 18:23:36,294 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:23:36,294 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:23:36,303 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:23:36,303 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-01-07 18:23:36,304 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:23:36,304 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:23:36,304 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:23:36,304 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 16 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 16 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:23:36,314 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:23:36,314 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:23:36,318 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:36,335 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:36,336 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:23:36,350 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 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-01-07 18:23:36,359 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 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-01-07 18:23:36,371 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:36,372 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 26 [2019-01-07 18:23:36,389 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:36,390 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:36,391 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 33 [2019-01-07 18:23:36,400 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:36,416 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:36,427 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:36,437 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:36,452 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:36,453 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:22, output treesize:27 [2019-01-07 18:23:36,458 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:36,458 WARN L385 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-01-07 18:23:36,459 WARN L386 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-01-07 18:23:36,525 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:36,526 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:36,528 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:36,529 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:36,530 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 28 [2019-01-07 18:23:36,534 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:36,553 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:36,554 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:22 [2019-01-07 18:23:38,570 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:38,571 WARN L385 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-01-07 18:23:38,571 WARN L386 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-01-07 18:23:38,627 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:38,628 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:38,629 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:38,630 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:38,632 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:38,633 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:38,634 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 28 treesize of output 50 [2019-01-07 18:23:38,638 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:38,663 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:38,663 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:34, output treesize:24 [2019-01-07 18:23:38,670 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:38,670 WARN L385 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-01-07 18:23:38,671 WARN L386 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-01-07 18:23:38,716 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-01-07 18:23:38,717 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-01-07 18:23:38,718 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-01-07 18:23:38,719 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-01-07 18:23:38,720 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-01-07 18:23:38,721 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:38,721 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:23:38,771 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-01-07 18:23:38,772 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-01-07 18:23:38,773 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-01-07 18:23:38,774 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-01-07 18:23:38,776 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-01-07 18:23:38,777 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:38,797 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:23:38,797 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 18:23:38,797 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:23:38,797 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 18:23:38,798 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:23:38,798 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 18:23:38,811 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:23:38,812 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 18:23:38,812 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 18:23:38,812 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-07 18:23:38,812 INFO L87 Difference]: Start difference. First operand 39 states and 142 transitions. Second operand 8 states. [2019-01-07 18:23:39,966 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:39,967 INFO L93 Difference]: Finished difference Result 58 states and 171 transitions. [2019-01-07 18:23:39,967 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-07 18:23:39,967 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 18:23:39,967 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:23:39,968 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:23:39,968 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 44 transitions. [2019-01-07 18:23:39,968 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:23:39,969 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 44 transitions. [2019-01-07 18:23:39,969 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 44 transitions. [2019-01-07 18:23:40,117 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 44 edges. 44 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:23:40,119 INFO L225 Difference]: With dead ends: 58 [2019-01-07 18:23:40,119 INFO L226 Difference]: Without dead ends: 57 [2019-01-07 18:23:40,120 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 13 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-01-07 18:23:40,120 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 57 states. [2019-01-07 18:23:40,369 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 57 to 41. [2019-01-07 18:23:40,370 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:23:40,370 INFO L82 GeneralOperation]: Start isEquivalent. First operand 57 states. Second operand 41 states. [2019-01-07 18:23:40,370 INFO L74 IsIncluded]: Start isIncluded. First operand 57 states. Second operand 41 states. [2019-01-07 18:23:40,370 INFO L87 Difference]: Start difference. First operand 57 states. Second operand 41 states. [2019-01-07 18:23:40,372 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:40,372 INFO L93 Difference]: Finished difference Result 57 states and 169 transitions. [2019-01-07 18:23:40,372 INFO L276 IsEmpty]: Start isEmpty. Operand 57 states and 169 transitions. [2019-01-07 18:23:40,373 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:23:40,373 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:23:40,373 INFO L74 IsIncluded]: Start isIncluded. First operand 41 states. Second operand 57 states. [2019-01-07 18:23:40,373 INFO L87 Difference]: Start difference. First operand 41 states. Second operand 57 states. [2019-01-07 18:23:40,374 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:40,374 INFO L93 Difference]: Finished difference Result 57 states and 169 transitions. [2019-01-07 18:23:40,374 INFO L276 IsEmpty]: Start isEmpty. Operand 57 states and 169 transitions. [2019-01-07 18:23:40,375 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:23:40,375 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:23:40,375 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:23:40,375 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:23:40,375 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 41 states. [2019-01-07 18:23:40,376 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 41 states to 41 states and 152 transitions. [2019-01-07 18:23:40,377 INFO L78 Accepts]: Start accepts. Automaton has 41 states and 152 transitions. Word has length 5 [2019-01-07 18:23:40,377 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:23:40,377 INFO L480 AbstractCegarLoop]: Abstraction has 41 states and 152 transitions. [2019-01-07 18:23:40,377 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 18:23:40,377 INFO L276 IsEmpty]: Start isEmpty. Operand 41 states and 152 transitions. [2019-01-07 18:23:40,377 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 18:23:40,378 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:23:40,378 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 18:23:40,378 INFO L423 AbstractCegarLoop]: === Iteration 18 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:23:40,378 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:23:40,378 INFO L82 PathProgramCache]: Analyzing trace with hash 28823602, now seen corresponding path program 2 times [2019-01-07 18:23:40,378 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:23:40,379 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:23:40,379 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:23:40,379 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:23:40,379 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:23:40,384 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:40,565 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-01-07 18:23:40,566 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-01-07 18:23:40,567 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-01-07 18:23:40,568 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-01-07 18:23:40,575 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-01-07 18:23:40,575 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:40,576 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:23:40,576 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:23:40,576 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-07 18:23:40,576 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-07 18:23:40,576 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:23:40,576 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 17 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 17 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:23:40,586 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-07 18:23:40,586 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-07 18:23:40,592 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-07 18:23:40,593 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-07 18:23:40,597 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:40,597 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:23:40,618 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:23:40,627 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:40,628 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 18:23:40,664 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:40,665 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:40,666 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 18:23:40,691 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:40,692 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:40,693 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:40,694 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 18:23:40,698 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:40,715 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:40,726 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:40,736 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:40,772 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:40,772 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 18:23:40,778 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:40,778 WARN L385 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-01-07 18:23:40,778 WARN L386 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-01-07 18:23:40,829 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:40,830 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:40,832 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:40,833 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:40,834 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:40,835 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:40,837 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:40,838 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 18:23:40,841 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:40,873 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:40,873 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-07 18:23:40,886 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:40,887 WARN L385 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-01-07 18:23:40,887 WARN L386 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-01-07 18:23:40,942 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:40,943 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:40,943 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:40,944 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:40,946 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:40,947 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:40,950 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:40,951 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:40,952 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:40,953 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 57 [2019-01-07 18:23:40,956 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:40,993 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:40,993 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 18:23:41,404 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:41,405 WARN L385 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-01-07 18:23:41,405 WARN L386 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-01-07 18:23:41,465 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:41,467 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:41,468 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:41,469 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:41,471 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:41,472 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:41,473 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:41,474 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:41,475 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:23:41,476 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:41,477 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 72 [2019-01-07 18:23:41,482 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:41,522 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:41,523 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:30 [2019-01-07 18:23:41,532 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:41,533 WARN L385 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-01-07 18:23:41,533 WARN L386 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)) (= (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-01-07 18:23:41,564 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-01-07 18:23:41,566 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-01-07 18:23:41,568 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-01-07 18:23:41,571 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-01-07 18:23:41,572 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-01-07 18:23:41,573 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:41,573 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:23:41,636 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-01-07 18:23:41,637 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-01-07 18:23:41,639 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-01-07 18:23:41,640 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-01-07 18:23:41,643 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-01-07 18:23:41,643 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 2 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:41,664 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:23:41,664 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-07 18:23:41,664 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:23:41,665 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-07 18:23:41,665 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:23:41,665 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 18:23:41,683 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:23:41,683 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 18:23:41,683 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 18:23:41,683 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=70, Invalid=112, Unknown=0, NotChecked=0, Total=182 [2019-01-07 18:23:41,683 INFO L87 Difference]: Start difference. First operand 41 states and 152 transitions. Second operand 10 states. [2019-01-07 18:23:43,095 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:43,096 INFO L93 Difference]: Finished difference Result 71 states and 199 transitions. [2019-01-07 18:23:43,096 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-07 18:23:43,096 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-07 18:23:43,097 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:23:43,097 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:23:43,097 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 63 transitions. [2019-01-07 18:23:43,097 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:23:43,098 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 63 transitions. [2019-01-07 18:23:43,098 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 63 transitions. [2019-01-07 18:23:43,196 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 63 edges. 63 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:23:43,198 INFO L225 Difference]: With dead ends: 71 [2019-01-07 18:23:43,198 INFO L226 Difference]: Without dead ends: 70 [2019-01-07 18:23:43,199 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-01-07 18:23:43,199 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 70 states. [2019-01-07 18:23:43,498 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 70 to 30. [2019-01-07 18:23:43,499 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:23:43,499 INFO L82 GeneralOperation]: Start isEquivalent. First operand 70 states. Second operand 30 states. [2019-01-07 18:23:43,499 INFO L74 IsIncluded]: Start isIncluded. First operand 70 states. Second operand 30 states. [2019-01-07 18:23:43,499 INFO L87 Difference]: Start difference. First operand 70 states. Second operand 30 states. [2019-01-07 18:23:43,501 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:43,502 INFO L93 Difference]: Finished difference Result 70 states and 196 transitions. [2019-01-07 18:23:43,502 INFO L276 IsEmpty]: Start isEmpty. Operand 70 states and 196 transitions. [2019-01-07 18:23:43,502 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:23:43,502 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:23:43,502 INFO L74 IsIncluded]: Start isIncluded. First operand 30 states. Second operand 70 states. [2019-01-07 18:23:43,503 INFO L87 Difference]: Start difference. First operand 30 states. Second operand 70 states. [2019-01-07 18:23:43,504 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:43,504 INFO L93 Difference]: Finished difference Result 70 states and 196 transitions. [2019-01-07 18:23:43,504 INFO L276 IsEmpty]: Start isEmpty. Operand 70 states and 196 transitions. [2019-01-07 18:23:43,505 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:23:43,505 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:23:43,505 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:23:43,505 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:23:43,505 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 30 states. [2019-01-07 18:23:43,506 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 30 states to 30 states and 97 transitions. [2019-01-07 18:23:43,506 INFO L78 Accepts]: Start accepts. Automaton has 30 states and 97 transitions. Word has length 5 [2019-01-07 18:23:43,506 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:23:43,506 INFO L480 AbstractCegarLoop]: Abstraction has 30 states and 97 transitions. [2019-01-07 18:23:43,506 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 18:23:43,506 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states and 97 transitions. [2019-01-07 18:23:43,507 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 18:23:43,507 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:23:43,507 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 18:23:43,507 INFO L423 AbstractCegarLoop]: === Iteration 19 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:23:43,507 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:23:43,507 INFO L82 PathProgramCache]: Analyzing trace with hash 28827822, now seen corresponding path program 1 times [2019-01-07 18:23:43,507 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:23:43,508 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:23:43,508 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-07 18:23:43,509 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:23:43,509 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:23:43,513 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:43,769 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-01-07 18:23:43,770 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-01-07 18:23:43,779 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-01-07 18:23:43,779 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-01-07 18:23:43,780 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-01-07 18:23:43,780 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 18:23:43,780 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2019-01-07 18:23:43,780 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [] total 2 [2019-01-07 18:23:43,780 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-07 18:23:43,781 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 5 [2019-01-07 18:23:43,781 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:23:43,781 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-01-07 18:23:43,787 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 5 edges. 5 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:23:43,788 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-01-07 18:23:43,788 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-01-07 18:23:43,788 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=6, Invalid=6, Unknown=0, NotChecked=0, Total=12 [2019-01-07 18:23:43,788 INFO L87 Difference]: Start difference. First operand 30 states and 97 transitions. Second operand 4 states. [2019-01-07 18:23:44,626 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:44,626 INFO L93 Difference]: Finished difference Result 36 states and 106 transitions. [2019-01-07 18:23:44,626 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-07 18:23:44,626 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 5 [2019-01-07 18:23:44,627 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:23:44,627 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-07 18:23:44,627 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 21 transitions. [2019-01-07 18:23:44,627 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-07 18:23:44,628 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 21 transitions. [2019-01-07 18:23:44,628 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 21 transitions. [2019-01-07 18:23:44,647 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 21 edges. 21 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:23:44,648 INFO L225 Difference]: With dead ends: 36 [2019-01-07 18:23:44,648 INFO L226 Difference]: Without dead ends: 33 [2019-01-07 18:23:44,649 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 3 GetRequests, 0 SyntacticMatches, 1 SemanticMatches, 2 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=6, Invalid=6, Unknown=0, NotChecked=0, Total=12 [2019-01-07 18:23:44,649 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 33 states. [2019-01-07 18:23:44,997 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 33 to 29. [2019-01-07 18:23:44,997 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:23:44,997 INFO L82 GeneralOperation]: Start isEquivalent. First operand 33 states. Second operand 29 states. [2019-01-07 18:23:44,998 INFO L74 IsIncluded]: Start isIncluded. First operand 33 states. Second operand 29 states. [2019-01-07 18:23:44,998 INFO L87 Difference]: Start difference. First operand 33 states. Second operand 29 states. [2019-01-07 18:23:44,998 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:44,999 INFO L93 Difference]: Finished difference Result 33 states and 102 transitions. [2019-01-07 18:23:44,999 INFO L276 IsEmpty]: Start isEmpty. Operand 33 states and 102 transitions. [2019-01-07 18:23:44,999 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:23:44,999 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:23:44,999 INFO L74 IsIncluded]: Start isIncluded. First operand 29 states. Second operand 33 states. [2019-01-07 18:23:44,999 INFO L87 Difference]: Start difference. First operand 29 states. Second operand 33 states. [2019-01-07 18:23:45,000 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:45,000 INFO L93 Difference]: Finished difference Result 33 states and 102 transitions. [2019-01-07 18:23:45,000 INFO L276 IsEmpty]: Start isEmpty. Operand 33 states and 102 transitions. [2019-01-07 18:23:45,001 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:23:45,001 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:23:45,001 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:23:45,001 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:23:45,001 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 29 states. [2019-01-07 18:23:45,002 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 29 states to 29 states and 99 transitions. [2019-01-07 18:23:45,002 INFO L78 Accepts]: Start accepts. Automaton has 29 states and 99 transitions. Word has length 5 [2019-01-07 18:23:45,002 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:23:45,002 INFO L480 AbstractCegarLoop]: Abstraction has 29 states and 99 transitions. [2019-01-07 18:23:45,002 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-01-07 18:23:45,002 INFO L276 IsEmpty]: Start isEmpty. Operand 29 states and 99 transitions. [2019-01-07 18:23:45,003 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 18:23:45,003 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:23:45,003 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 18:23:45,003 INFO L423 AbstractCegarLoop]: === Iteration 20 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:23:45,003 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:23:45,003 INFO L82 PathProgramCache]: Analyzing trace with hash 28818148, now seen corresponding path program 1 times [2019-01-07 18:23:45,004 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:23:45,004 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:23:45,004 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:23:45,004 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:23:45,004 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:23:45,010 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:45,190 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-01-07 18:23:45,191 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-01-07 18:23:45,191 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-01-07 18:23:45,192 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-01-07 18:23:45,192 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-01-07 18:23:45,192 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:45,192 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:23:45,193 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:23:45,193 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-07 18:23:45,193 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [20], [21] [2019-01-07 18:23:45,194 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:23:45,194 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:23:45,209 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:23:45,209 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-01-07 18:23:45,209 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:23:45,209 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:23:45,210 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:23:45,210 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 18 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 18 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:23:45,220 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:23:45,220 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:23:45,225 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:45,230 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:45,230 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:23:45,270 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:23:45,278 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:45,279 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 18:23:45,292 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:45,293 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:45,294 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 18:23:45,315 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:45,316 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:45,317 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:45,318 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 18:23:45,324 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:45,346 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:45,357 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:45,367 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:45,388 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:45,388 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-01-07 18:23:45,396 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:45,396 WARN L385 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-01-07 18:23:45,396 WARN L386 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-01-07 18:23:45,453 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:45,455 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:45,456 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:45,457 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:45,459 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:45,460 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:45,461 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:45,462 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 18:23:45,482 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:45,905 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:45,905 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-07 18:23:45,921 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:45,921 WARN L385 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-01-07 18:23:45,921 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< 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-01-07 18:23:45,988 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:45,989 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:45,990 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:45,992 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:45,993 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:45,994 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:45,995 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:45,997 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:45,998 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:45,999 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 65 [2019-01-07 18:23:46,013 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:46,052 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:46,052 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-07 18:23:46,068 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:46,068 WARN L385 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-01-07 18:23:46,068 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< 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-01-07 18:23:46,163 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-01-07 18:23:46,164 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-01-07 18:23:46,166 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-01-07 18:23:46,167 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-01-07 18:23:46,169 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-01-07 18:23:46,169 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:46,169 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:23:46,202 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-01-07 18:23:46,203 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-01-07 18:23:46,204 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-01-07 18:23:46,205 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-01-07 18:23:46,207 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-01-07 18:23:46,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-01-07 18:23:46,227 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:23:46,227 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 8 [2019-01-07 18:23:46,227 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:23:46,228 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 18:23:46,228 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:23:46,228 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 18:23:46,243 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:23:46,243 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 18:23:46,244 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 18:23:46,244 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=39, Invalid=51, Unknown=0, NotChecked=0, Total=90 [2019-01-07 18:23:46,244 INFO L87 Difference]: Start difference. First operand 29 states and 99 transitions. Second operand 8 states. [2019-01-07 18:23:47,344 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:47,344 INFO L93 Difference]: Finished difference Result 44 states and 125 transitions. [2019-01-07 18:23:47,344 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-07 18:23:47,345 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 18:23:47,345 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:23:47,345 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:23:47,345 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 45 transitions. [2019-01-07 18:23:47,346 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:23:47,346 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 45 transitions. [2019-01-07 18:23:47,346 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 45 transitions. [2019-01-07 18:23:47,410 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 45 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:23:47,411 INFO L225 Difference]: With dead ends: 44 [2019-01-07 18:23:47,411 INFO L226 Difference]: Without dead ends: 43 [2019-01-07 18:23:47,412 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-01-07 18:23:47,412 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 43 states. [2019-01-07 18:23:47,977 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 43 to 32. [2019-01-07 18:23:47,977 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:23:47,977 INFO L82 GeneralOperation]: Start isEquivalent. First operand 43 states. Second operand 32 states. [2019-01-07 18:23:47,978 INFO L74 IsIncluded]: Start isIncluded. First operand 43 states. Second operand 32 states. [2019-01-07 18:23:47,978 INFO L87 Difference]: Start difference. First operand 43 states. Second operand 32 states. [2019-01-07 18:23:47,980 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:47,980 INFO L93 Difference]: Finished difference Result 43 states and 123 transitions. [2019-01-07 18:23:47,980 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 123 transitions. [2019-01-07 18:23:47,981 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:23:47,981 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:23:47,981 INFO L74 IsIncluded]: Start isIncluded. First operand 32 states. Second operand 43 states. [2019-01-07 18:23:47,981 INFO L87 Difference]: Start difference. First operand 32 states. Second operand 43 states. [2019-01-07 18:23:47,983 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:47,983 INFO L93 Difference]: Finished difference Result 43 states and 123 transitions. [2019-01-07 18:23:47,983 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 123 transitions. [2019-01-07 18:23:47,983 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:23:47,983 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:23:47,984 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:23:47,984 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:23:47,984 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 32 states. [2019-01-07 18:23:47,985 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 32 states to 32 states and 114 transitions. [2019-01-07 18:23:47,985 INFO L78 Accepts]: Start accepts. Automaton has 32 states and 114 transitions. Word has length 5 [2019-01-07 18:23:47,985 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:23:47,985 INFO L480 AbstractCegarLoop]: Abstraction has 32 states and 114 transitions. [2019-01-07 18:23:47,985 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 18:23:47,985 INFO L276 IsEmpty]: Start isEmpty. Operand 32 states and 114 transitions. [2019-01-07 18:23:47,986 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 18:23:47,986 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:23:47,986 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 18:23:47,986 INFO L423 AbstractCegarLoop]: === Iteration 21 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:23:47,986 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:23:47,986 INFO L82 PathProgramCache]: Analyzing trace with hash 28821992, now seen corresponding path program 1 times [2019-01-07 18:23:47,986 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:23:47,987 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:23:47,987 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:23:47,987 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:23:47,988 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:23:47,993 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:48,201 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-01-07 18:23:48,202 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-01-07 18:23:48,204 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-01-07 18:23:48,204 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-01-07 18:23:48,205 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-01-07 18:23:48,206 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 18:23:48,206 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:23:48,206 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:23:48,206 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-07 18:23:48,207 INFO L207 CegarAbsIntRunner]: [0], [6], [14], [20], [21] [2019-01-07 18:23:48,211 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:23:48,211 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:23:48,240 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:23:48,240 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-01-07 18:23:48,241 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:23:48,241 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:23:48,241 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:23:48,241 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 19 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 19 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:23:48,250 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:23:48,250 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:23:48,254 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:48,260 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:48,260 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:23:48,294 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:23:48,308 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:48,309 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 18:23:48,328 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:48,330 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:48,331 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 18:23:48,363 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:48,364 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:48,366 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:48,367 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 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-01-07 18:23:48,374 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:48,396 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:48,411 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:48,423 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:48,444 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:48,445 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 18:23:48,450 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:48,451 WARN L385 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-01-07 18:23:48,451 WARN L386 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-01-07 18:23:48,593 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:48,594 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:48,595 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:48,596 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:48,598 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:48,599 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:48,600 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:48,602 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 18:23:48,611 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:48,647 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:48,647 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 18:23:50,859 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:50,860 WARN L385 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-01-07 18:23:50,860 WARN L386 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-01-07 18:23:50,922 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:50,924 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:50,925 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:50,926 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:50,928 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:50,929 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:50,930 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:50,931 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:50,932 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:23:50,933 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 59 [2019-01-07 18:23:50,937 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:50,969 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:50,969 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-07 18:23:51,243 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:51,243 WARN L385 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-01-07 18:23:51,243 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< 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-01-07 18:23:51,296 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-01-07 18:23:51,298 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-01-07 18:23:51,301 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-01-07 18:23:51,302 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-01-07 18:23:51,303 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-01-07 18:23:51,304 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:51,304 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:23:51,346 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-01-07 18:23:51,347 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-01-07 18:23:51,347 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-01-07 18:23:51,348 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-01-07 18:23:51,349 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-01-07 18:23:51,350 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:51,368 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:23:51,369 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 18:23:51,369 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:23:51,369 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 18:23:51,369 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:23:51,369 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 18:23:51,386 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:23:51,386 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 18:23:51,386 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 18:23:51,387 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=41, Invalid=69, Unknown=0, NotChecked=0, Total=110 [2019-01-07 18:23:51,387 INFO L87 Difference]: Start difference. First operand 32 states and 114 transitions. Second operand 8 states. [2019-01-07 18:23:52,349 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:52,349 INFO L93 Difference]: Finished difference Result 49 states and 142 transitions. [2019-01-07 18:23:52,349 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-07 18:23:52,349 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 18:23:52,349 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:23:52,349 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:23:52,350 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 40 transitions. [2019-01-07 18:23:52,350 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:23:52,350 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 40 transitions. [2019-01-07 18:23:52,350 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 40 transitions. [2019-01-07 18:23:52,435 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 40 edges. 40 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:23:52,436 INFO L225 Difference]: With dead ends: 49 [2019-01-07 18:23:52,436 INFO L226 Difference]: Without dead ends: 48 [2019-01-07 18:23:52,437 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 2 SyntacticMatches, 1 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 30 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=59, Invalid=97, Unknown=0, NotChecked=0, Total=156 [2019-01-07 18:23:52,437 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 48 states. [2019-01-07 18:23:52,769 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 48 to 34. [2019-01-07 18:23:52,770 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:23:52,770 INFO L82 GeneralOperation]: Start isEquivalent. First operand 48 states. Second operand 34 states. [2019-01-07 18:23:52,770 INFO L74 IsIncluded]: Start isIncluded. First operand 48 states. Second operand 34 states. [2019-01-07 18:23:52,770 INFO L87 Difference]: Start difference. First operand 48 states. Second operand 34 states. [2019-01-07 18:23:52,771 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:52,771 INFO L93 Difference]: Finished difference Result 48 states and 140 transitions. [2019-01-07 18:23:52,771 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 140 transitions. [2019-01-07 18:23:52,772 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:23:52,772 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:23:52,772 INFO L74 IsIncluded]: Start isIncluded. First operand 34 states. Second operand 48 states. [2019-01-07 18:23:52,772 INFO L87 Difference]: Start difference. First operand 34 states. Second operand 48 states. [2019-01-07 18:23:52,773 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:52,773 INFO L93 Difference]: Finished difference Result 48 states and 140 transitions. [2019-01-07 18:23:52,773 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 140 transitions. [2019-01-07 18:23:52,774 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:23:52,774 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:23:52,774 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:23:52,774 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:23:52,774 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 34 states. [2019-01-07 18:23:52,775 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 34 states to 34 states and 124 transitions. [2019-01-07 18:23:52,775 INFO L78 Accepts]: Start accepts. Automaton has 34 states and 124 transitions. Word has length 5 [2019-01-07 18:23:52,775 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:23:52,775 INFO L480 AbstractCegarLoop]: Abstraction has 34 states and 124 transitions. [2019-01-07 18:23:52,775 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 18:23:52,775 INFO L276 IsEmpty]: Start isEmpty. Operand 34 states and 124 transitions. [2019-01-07 18:23:52,775 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 18:23:52,776 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:23:52,776 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 18:23:52,776 INFO L423 AbstractCegarLoop]: === Iteration 22 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:23:52,776 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:23:52,776 INFO L82 PathProgramCache]: Analyzing trace with hash 28933468, now seen corresponding path program 2 times [2019-01-07 18:23:52,776 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:23:52,777 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:23:52,777 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:23:52,777 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:23:52,777 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:23:52,782 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:53,137 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-01-07 18:23:53,138 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-01-07 18:23:53,139 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-01-07 18:23:53,140 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-01-07 18:23:53,140 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-01-07 18:23:53,141 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:53,141 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:23:53,141 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:23:53,141 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-07 18:23:53,142 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-07 18:23:53,142 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:23:53,142 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 20 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 20 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:23:53,152 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-07 18:23:53,152 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-07 18:23:53,157 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 2 check-sat command(s) [2019-01-07 18:23:53,157 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-07 18:23:53,160 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:53,160 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:23:53,186 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:23:53,201 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:53,201 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 18:23:53,213 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:53,215 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:53,216 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 18:23:53,230 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:53,231 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:53,233 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:53,233 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 18:23:53,237 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:53,256 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:53,268 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:53,277 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:53,296 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:53,296 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-01-07 18:23:53,302 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:53,303 WARN L385 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-01-07 18:23:53,303 WARN L386 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-01-07 18:23:53,833 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:53,834 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:53,835 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:53,837 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:53,839 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:53,840 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:53,841 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:53,842 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 18:23:53,847 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:53,881 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:53,882 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 18:23:53,889 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:53,889 WARN L385 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-01-07 18:23:53,889 WARN L386 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-01-07 18:23:53,949 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:53,950 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:53,951 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:53,953 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:53,954 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:53,955 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:53,956 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:53,957 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:53,958 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:53,959 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 67 [2019-01-07 18:23:53,964 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:54,002 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:54,002 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-07 18:23:54,015 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:54,015 WARN L385 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-01-07 18:23:54,015 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< 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-01-07 18:23:54,066 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-01-07 18:23:54,068 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-01-07 18:23:54,070 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-01-07 18:23:54,071 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-01-07 18:23:54,071 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-01-07 18:23:54,072 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:54,072 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:23:54,115 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-01-07 18:23:54,115 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-01-07 18:23:54,118 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-01-07 18:23:54,119 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-01-07 18:23:54,120 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-01-07 18:23:54,120 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:54,139 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:23:54,139 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 18:23:54,139 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:23:54,140 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 18:23:54,140 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:23:54,140 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 18:23:54,154 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:23:54,155 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 18:23:54,155 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 18:23:54,155 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-01-07 18:23:54,155 INFO L87 Difference]: Start difference. First operand 34 states and 124 transitions. Second operand 8 states. [2019-01-07 18:23:55,892 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:55,892 INFO L93 Difference]: Finished difference Result 58 states and 161 transitions. [2019-01-07 18:23:55,892 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-07 18:23:55,892 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 18:23:55,893 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:23:55,893 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:23:55,893 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 52 transitions. [2019-01-07 18:23:55,894 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:23:55,894 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 52 transitions. [2019-01-07 18:23:55,894 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 52 transitions. [2019-01-07 18:23:55,972 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 52 edges. 52 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:23:55,973 INFO L225 Difference]: With dead ends: 58 [2019-01-07 18:23:55,973 INFO L226 Difference]: Without dead ends: 57 [2019-01-07 18:23:55,974 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 13 GetRequests, 3 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 28 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=53, Invalid=79, Unknown=0, NotChecked=0, Total=132 [2019-01-07 18:23:55,974 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 57 states. [2019-01-07 18:23:56,522 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 57 to 36. [2019-01-07 18:23:56,522 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:23:56,522 INFO L82 GeneralOperation]: Start isEquivalent. First operand 57 states. Second operand 36 states. [2019-01-07 18:23:56,522 INFO L74 IsIncluded]: Start isIncluded. First operand 57 states. Second operand 36 states. [2019-01-07 18:23:56,522 INFO L87 Difference]: Start difference. First operand 57 states. Second operand 36 states. [2019-01-07 18:23:56,523 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:56,523 INFO L93 Difference]: Finished difference Result 57 states and 159 transitions. [2019-01-07 18:23:56,524 INFO L276 IsEmpty]: Start isEmpty. Operand 57 states and 159 transitions. [2019-01-07 18:23:56,524 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:23:56,524 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:23:56,524 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 57 states. [2019-01-07 18:23:56,524 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 57 states. [2019-01-07 18:23:56,526 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:23:56,526 INFO L93 Difference]: Finished difference Result 57 states and 159 transitions. [2019-01-07 18:23:56,526 INFO L276 IsEmpty]: Start isEmpty. Operand 57 states and 159 transitions. [2019-01-07 18:23:56,526 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:23:56,526 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:23:56,526 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:23:56,526 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:23:56,526 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 36 states. [2019-01-07 18:23:56,527 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 36 states to 36 states and 134 transitions. [2019-01-07 18:23:56,527 INFO L78 Accepts]: Start accepts. Automaton has 36 states and 134 transitions. Word has length 5 [2019-01-07 18:23:56,527 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:23:56,527 INFO L480 AbstractCegarLoop]: Abstraction has 36 states and 134 transitions. [2019-01-07 18:23:56,527 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 18:23:56,528 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 134 transitions. [2019-01-07 18:23:56,528 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 18:23:56,528 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:23:56,528 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 18:23:56,528 INFO L423 AbstractCegarLoop]: === Iteration 23 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:23:56,528 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:23:56,528 INFO L82 PathProgramCache]: Analyzing trace with hash 28941156, now seen corresponding path program 1 times [2019-01-07 18:23:56,529 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:23:56,529 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:23:56,529 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-07 18:23:56,529 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:23:56,529 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:23:56,533 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:56,687 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-01-07 18:23:56,689 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-01-07 18:23:56,693 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-01-07 18:23:56,695 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-01-07 18:23:56,696 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-01-07 18:23:56,696 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:56,696 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:23:56,696 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:23:56,696 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-07 18:23:56,696 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [20], [21] [2019-01-07 18:23:56,697 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:23:56,697 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:23:56,746 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:23:56,746 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-01-07 18:23:56,746 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:23:56,746 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:23:56,746 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:23:56,747 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 21 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 21 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:23:56,756 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:23:56,757 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:23:56,761 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:56,763 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:23:56,764 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:23:56,783 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:23:56,794 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-07 18:23:56,807 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:56,808 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 26 [2019-01-07 18:23:56,826 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:56,827 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:56,828 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 33 [2019-01-07 18:23:56,840 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:56,856 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:56,867 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:56,878 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:23:56,895 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:56,895 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:22, output treesize:27 [2019-01-07 18:23:56,901 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:56,901 WARN L385 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-01-07 18:23:56,901 WARN L386 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-01-07 18:23:56,965 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:56,967 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:56,968 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:56,969 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:56,971 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 34 [2019-01-07 18:23:56,975 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:56,997 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:56,997 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:22 [2019-01-07 18:23:57,012 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:57,012 WARN L385 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-01-07 18:23:57,012 WARN L386 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-01-07 18:23:57,070 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:57,071 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:57,072 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:57,073 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:57,074 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:57,075 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:23:57,076 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 28 treesize of output 50 [2019-01-07 18:23:57,081 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:23:57,108 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:23:57,108 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:34, output treesize:24 [2019-01-07 18:23:58,658 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:23:58,659 WARN L385 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-01-07 18:23:58,659 WARN L386 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-01-07 18:23:58,721 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-01-07 18:23:58,722 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-01-07 18:23:58,723 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-01-07 18:23:58,724 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-01-07 18:23:58,725 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-01-07 18:23:58,725 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:58,725 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:23:58,772 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-01-07 18:23:58,773 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-01-07 18:23:58,774 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-01-07 18:23:58,776 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-01-07 18:23:58,778 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-01-07 18:23:58,778 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:23:58,798 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:23:58,799 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 18:23:58,799 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:23:58,799 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 18:23:58,799 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:23:58,799 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 18:23:58,812 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:23:58,813 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 18:23:58,813 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 18:23:58,813 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-01-07 18:23:58,813 INFO L87 Difference]: Start difference. First operand 36 states and 134 transitions. Second operand 8 states. [2019-01-07 18:24:00,113 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:24:00,113 INFO L93 Difference]: Finished difference Result 59 states and 162 transitions. [2019-01-07 18:24:00,113 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-07 18:24:00,113 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 18:24:00,114 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:24:00,114 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:24:00,114 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 53 transitions. [2019-01-07 18:24:00,114 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:24:00,115 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 53 transitions. [2019-01-07 18:24:00,115 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 53 transitions. [2019-01-07 18:24:00,189 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 53 edges. 53 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:24:00,190 INFO L225 Difference]: With dead ends: 59 [2019-01-07 18:24:00,190 INFO L226 Difference]: Without dead ends: 58 [2019-01-07 18:24:00,191 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-01-07 18:24:00,191 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 58 states. [2019-01-07 18:24:00,988 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 58 to 37. [2019-01-07 18:24:00,988 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:24:00,988 INFO L82 GeneralOperation]: Start isEquivalent. First operand 58 states. Second operand 37 states. [2019-01-07 18:24:00,988 INFO L74 IsIncluded]: Start isIncluded. First operand 58 states. Second operand 37 states. [2019-01-07 18:24:00,988 INFO L87 Difference]: Start difference. First operand 58 states. Second operand 37 states. [2019-01-07 18:24:00,990 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:24:00,990 INFO L93 Difference]: Finished difference Result 58 states and 160 transitions. [2019-01-07 18:24:00,990 INFO L276 IsEmpty]: Start isEmpty. Operand 58 states and 160 transitions. [2019-01-07 18:24:00,991 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:24:00,991 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:24:00,991 INFO L74 IsIncluded]: Start isIncluded. First operand 37 states. Second operand 58 states. [2019-01-07 18:24:00,991 INFO L87 Difference]: Start difference. First operand 37 states. Second operand 58 states. [2019-01-07 18:24:00,992 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:24:00,992 INFO L93 Difference]: Finished difference Result 58 states and 160 transitions. [2019-01-07 18:24:00,992 INFO L276 IsEmpty]: Start isEmpty. Operand 58 states and 160 transitions. [2019-01-07 18:24:00,993 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:24:00,993 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:24:00,993 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:24:00,993 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:24:00,993 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 37 states. [2019-01-07 18:24:00,994 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 37 states to 37 states and 139 transitions. [2019-01-07 18:24:00,994 INFO L78 Accepts]: Start accepts. Automaton has 37 states and 139 transitions. Word has length 5 [2019-01-07 18:24:00,994 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:24:00,994 INFO L480 AbstractCegarLoop]: Abstraction has 37 states and 139 transitions. [2019-01-07 18:24:00,994 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 18:24:00,994 INFO L276 IsEmpty]: Start isEmpty. Operand 37 states and 139 transitions. [2019-01-07 18:24:00,995 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 18:24:00,995 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:24:00,995 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 18:24:00,995 INFO L423 AbstractCegarLoop]: === Iteration 24 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:24:00,995 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:24:00,995 INFO L82 PathProgramCache]: Analyzing trace with hash 29066150, now seen corresponding path program 1 times [2019-01-07 18:24:00,995 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:24:00,996 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:24:00,996 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:24:00,996 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:24:00,996 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:24:00,999 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:24:01,228 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-01-07 18:24:01,229 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-01-07 18:24:01,230 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-01-07 18:24:01,230 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-01-07 18:24:01,230 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-01-07 18:24:01,231 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:24:01,231 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:24:01,231 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:24:01,232 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-07 18:24:01,232 INFO L207 CegarAbsIntRunner]: [0], [14], [20], [22], [23] [2019-01-07 18:24:01,233 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:24:01,233 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:24:01,246 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:24:01,246 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-01-07 18:24:01,247 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:24:01,247 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:24:01,247 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:24:01,248 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 22 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 22 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:24:01,256 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:24:01,256 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:24:01,260 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:24:01,264 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:24:01,265 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:24:01,288 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:24:01,298 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-07 18:24:01,314 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-01-07 18:24:01,341 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:01,342 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 1 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 25 [2019-01-07 18:24:01,351 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:24:01,364 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:24:01,377 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:24:01,390 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:24:01,407 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:24:01,408 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 4 variables, input treesize:19, output treesize:24 [2019-01-07 18:24:01,414 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:24:01,415 WARN L385 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-01-07 18:24:01,415 WARN L386 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-01-07 18:24:01,469 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:01,470 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:01,471 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 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 21 [2019-01-07 18:24:01,475 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:24:01,488 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:24:01,488 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:24, output treesize:14 [2019-01-07 18:24:01,495 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:24:01,495 WARN L385 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-01-07 18:24:01,495 WARN L386 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-01-07 18:24:01,549 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-01-07 18:24:01,550 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-01-07 18:24:01,551 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-01-07 18:24:01,551 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-01-07 18:24:01,552 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-01-07 18:24:01,553 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:24:01,553 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:24:01,574 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-01-07 18:24:01,575 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-01-07 18:24:01,601 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-01-07 18:24:01,604 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-01-07 18:24:01,605 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-01-07 18:24:01,605 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:24:01,625 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-01-07 18:24:01,625 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [2, 2] total 5 [2019-01-07 18:24:01,625 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-07 18:24:01,626 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 5 [2019-01-07 18:24:01,626 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:24:01,626 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-01-07 18:24:01,643 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 5 edges. 5 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:24:01,643 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-01-07 18:24:01,644 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-01-07 18:24:01,644 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=19, Invalid=23, Unknown=0, NotChecked=0, Total=42 [2019-01-07 18:24:01,644 INFO L87 Difference]: Start difference. First operand 37 states and 139 transitions. Second operand 4 states. [2019-01-07 18:24:02,549 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:24:02,550 INFO L93 Difference]: Finished difference Result 74 states and 262 transitions. [2019-01-07 18:24:02,550 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2019-01-07 18:24:02,550 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 5 [2019-01-07 18:24:02,550 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:24:02,550 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-07 18:24:02,551 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 32 transitions. [2019-01-07 18:24:02,551 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-07 18:24:02,551 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 32 transitions. [2019-01-07 18:24:02,551 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 32 transitions. [2019-01-07 18:24:02,582 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 32 edges. 32 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:24:02,585 INFO L225 Difference]: With dead ends: 74 [2019-01-07 18:24:02,585 INFO L226 Difference]: Without dead ends: 73 [2019-01-07 18:24:02,585 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-01-07 18:24:02,586 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 73 states. [2019-01-07 18:24:03,318 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 73 to 59. [2019-01-07 18:24:03,318 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:24:03,318 INFO L82 GeneralOperation]: Start isEquivalent. First operand 73 states. Second operand 59 states. [2019-01-07 18:24:03,318 INFO L74 IsIncluded]: Start isIncluded. First operand 73 states. Second operand 59 states. [2019-01-07 18:24:03,319 INFO L87 Difference]: Start difference. First operand 73 states. Second operand 59 states. [2019-01-07 18:24:03,320 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:24:03,320 INFO L93 Difference]: Finished difference Result 73 states and 261 transitions. [2019-01-07 18:24:03,320 INFO L276 IsEmpty]: Start isEmpty. Operand 73 states and 261 transitions. [2019-01-07 18:24:03,321 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:24:03,321 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:24:03,321 INFO L74 IsIncluded]: Start isIncluded. First operand 59 states. Second operand 73 states. [2019-01-07 18:24:03,321 INFO L87 Difference]: Start difference. First operand 59 states. Second operand 73 states. [2019-01-07 18:24:03,323 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:24:03,323 INFO L93 Difference]: Finished difference Result 73 states and 261 transitions. [2019-01-07 18:24:03,323 INFO L276 IsEmpty]: Start isEmpty. Operand 73 states and 261 transitions. [2019-01-07 18:24:03,323 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:24:03,324 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:24:03,324 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:24:03,324 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:24:03,324 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 59 states. [2019-01-07 18:24:03,325 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 59 states to 59 states and 250 transitions. [2019-01-07 18:24:03,325 INFO L78 Accepts]: Start accepts. Automaton has 59 states and 250 transitions. Word has length 5 [2019-01-07 18:24:03,325 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:24:03,325 INFO L480 AbstractCegarLoop]: Abstraction has 59 states and 250 transitions. [2019-01-07 18:24:03,325 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-01-07 18:24:03,325 INFO L276 IsEmpty]: Start isEmpty. Operand 59 states and 250 transitions. [2019-01-07 18:24:03,326 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 18:24:03,326 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:24:03,326 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 18:24:03,326 INFO L423 AbstractCegarLoop]: === Iteration 25 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:24:03,326 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:24:03,326 INFO L82 PathProgramCache]: Analyzing trace with hash 29052506, now seen corresponding path program 1 times [2019-01-07 18:24:03,326 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:24:03,327 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:24:03,327 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:24:03,327 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:24:03,328 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:24:03,331 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:24:03,725 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-01-07 18:24:03,727 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-01-07 18:24:03,727 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-01-07 18:24:03,728 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-01-07 18:24:03,728 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-01-07 18:24:03,729 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:24:03,729 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:24:03,729 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:24:03,729 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-07 18:24:03,729 INFO L207 CegarAbsIntRunner]: [0], [6], [14], [16], [19] [2019-01-07 18:24:03,730 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:24:03,731 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:24:03,746 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:24:03,746 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-01-07 18:24:03,746 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:24:03,746 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:24:03,746 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:24:03,746 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 23 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 23 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:24:03,754 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:24:03,755 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:24:03,758 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:24:03,762 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:24:03,762 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:24:03,780 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:24:03,790 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:03,791 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 18:24:03,807 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:03,808 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:03,809 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 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-01-07 18:24:03,827 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:03,829 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:03,830 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:03,831 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 18:24:03,836 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:24:03,857 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:24:03,868 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:24:03,878 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:24:03,894 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:24:03,895 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 18:24:03,904 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:24:03,904 WARN L385 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-01-07 18:24:03,904 WARN L386 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-01-07 18:24:03,963 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:03,964 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:03,966 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:03,967 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:03,968 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:03,970 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:03,971 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:03,972 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 18:24:03,979 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:24:04,010 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:24:04,010 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 18:24:04,019 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:24:04,019 WARN L385 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-01-07 18:24:04,019 WARN L386 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-01-07 18:24:04,076 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:04,078 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:04,079 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:04,081 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:04,082 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:04,084 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:04,085 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:04,086 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:04,087 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:24:04,088 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 59 [2019-01-07 18:24:04,093 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:24:04,144 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:24:04,144 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 18:24:04,159 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:24:04,159 WARN L385 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-01-07 18:24:04,159 WARN L386 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-01-07 18:24:04,337 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:04,338 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:04,339 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:04,341 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:04,342 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:04,343 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:04,344 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:04,345 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:04,347 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:04,348 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 57 [2019-01-07 18:24:04,352 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:24:04,391 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:24:04,391 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-07 18:24:04,413 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:24:04,414 WARN L385 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-01-07 18:24:04,414 WARN L386 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-01-07 18:24:04,445 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-01-07 18:24:04,448 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-01-07 18:24:04,450 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-01-07 18:24:04,453 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-01-07 18:24:04,454 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-01-07 18:24:04,455 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:24:04,455 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:24:04,540 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-01-07 18:24:04,541 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-01-07 18:24:04,543 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-01-07 18:24:04,545 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-01-07 18:24:04,547 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-01-07 18:24:04,547 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 5 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:24:04,567 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:24:04,568 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-07 18:24:04,568 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:24:04,568 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-07 18:24:04,568 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:24:04,568 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 18:24:04,586 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:24:04,586 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 18:24:04,586 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 18:24:04,587 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=66, Invalid=90, Unknown=0, NotChecked=0, Total=156 [2019-01-07 18:24:04,587 INFO L87 Difference]: Start difference. First operand 59 states and 250 transitions. Second operand 10 states. [2019-01-07 18:24:06,899 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:24:06,900 INFO L93 Difference]: Finished difference Result 105 states and 359 transitions. [2019-01-07 18:24:06,900 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-07 18:24:06,900 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-07 18:24:06,900 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:24:06,900 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:24:06,900 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 63 transitions. [2019-01-07 18:24:06,901 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:24:06,901 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 63 transitions. [2019-01-07 18:24:06,901 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 63 transitions. [2019-01-07 18:24:07,000 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 63 edges. 63 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:24:07,003 INFO L225 Difference]: With dead ends: 105 [2019-01-07 18:24:07,003 INFO L226 Difference]: Without dead ends: 97 [2019-01-07 18:24:07,003 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 1 SyntacticMatches, 0 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 53 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=84, Invalid=126, Unknown=0, NotChecked=0, Total=210 [2019-01-07 18:24:07,004 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 97 states. [2019-01-07 18:24:08,571 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 97 to 71. [2019-01-07 18:24:08,572 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:24:08,572 INFO L82 GeneralOperation]: Start isEquivalent. First operand 97 states. Second operand 71 states. [2019-01-07 18:24:08,572 INFO L74 IsIncluded]: Start isIncluded. First operand 97 states. Second operand 71 states. [2019-01-07 18:24:08,572 INFO L87 Difference]: Start difference. First operand 97 states. Second operand 71 states. [2019-01-07 18:24:08,574 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:24:08,574 INFO L93 Difference]: Finished difference Result 97 states and 344 transitions. [2019-01-07 18:24:08,574 INFO L276 IsEmpty]: Start isEmpty. Operand 97 states and 344 transitions. [2019-01-07 18:24:08,575 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:24:08,575 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:24:08,575 INFO L74 IsIncluded]: Start isIncluded. First operand 71 states. Second operand 97 states. [2019-01-07 18:24:08,575 INFO L87 Difference]: Start difference. First operand 71 states. Second operand 97 states. [2019-01-07 18:24:08,577 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:24:08,577 INFO L93 Difference]: Finished difference Result 97 states and 344 transitions. [2019-01-07 18:24:08,577 INFO L276 IsEmpty]: Start isEmpty. Operand 97 states and 344 transitions. [2019-01-07 18:24:08,578 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:24:08,578 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:24:08,578 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:24:08,578 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:24:08,578 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 71 states. [2019-01-07 18:24:08,580 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 71 states to 71 states and 308 transitions. [2019-01-07 18:24:08,580 INFO L78 Accepts]: Start accepts. Automaton has 71 states and 308 transitions. Word has length 5 [2019-01-07 18:24:08,580 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:24:08,581 INFO L480 AbstractCegarLoop]: Abstraction has 71 states and 308 transitions. [2019-01-07 18:24:08,581 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 18:24:08,581 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 308 transitions. [2019-01-07 18:24:08,581 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-07 18:24:08,581 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:24:08,582 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1] [2019-01-07 18:24:08,582 INFO L423 AbstractCegarLoop]: === Iteration 26 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:24:08,582 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:24:08,582 INFO L82 PathProgramCache]: Analyzing trace with hash 902776598, now seen corresponding path program 1 times [2019-01-07 18:24:08,582 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:24:08,583 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:24:08,583 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:24:08,583 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:24:08,583 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:24:08,586 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:24:08,754 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-01-07 18:24:08,755 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-01-07 18:24:08,756 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-01-07 18:24:08,757 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-01-07 18:24:08,757 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-01-07 18:24:08,758 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-01-07 18:24:08,758 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 18:24:08,759 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:24:08,759 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:24:08,759 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-07 18:24:08,759 INFO L207 CegarAbsIntRunner]: [0], [16], [20], [22], [23] [2019-01-07 18:24:08,764 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:24:08,764 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:24:08,780 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:24:08,780 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-01-07 18:24:08,780 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:24:08,780 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:24:08,781 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:24:08,781 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 24 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 24 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:24:08,789 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:24:08,790 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:24:08,793 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:24:08,797 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:24:08,798 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:24:08,818 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:24:08,828 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-07 18:24:08,845 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-01-07 18:24:08,888 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:08,889 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 1 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 25 [2019-01-07 18:24:08,899 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:24:08,912 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:24:08,923 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:24:08,935 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:24:08,950 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:24:08,950 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:19, output treesize:24 [2019-01-07 18:24:08,956 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:24:08,956 WARN L385 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-01-07 18:24:08,956 WARN L386 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-01-07 18:24:09,008 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:09,010 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:09,010 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 15 [2019-01-07 18:24:09,015 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:24:09,024 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:24:09,024 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:24, output treesize:14 [2019-01-07 18:24:09,032 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:24:09,032 WARN L385 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-01-07 18:24:09,032 WARN L386 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-01-07 18:24:09,083 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:09,084 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:09,085 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:09,086 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:09,087 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 4 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 27 [2019-01-07 18:24:09,107 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:24:09,120 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:24:09,121 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:26, output treesize:14 [2019-01-07 18:24:09,139 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:24:09,139 WARN L385 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-01-07 18:24:09,139 WARN L386 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-01-07 18:24:09,194 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-01-07 18:24:09,195 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-01-07 18:24:09,197 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-01-07 18:24:09,198 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-01-07 18:24:09,200 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-01-07 18:24:09,200 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-01-07 18:24:09,201 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:24:09,201 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:24:09,259 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-01-07 18:24:09,259 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-01-07 18:24:09,260 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-01-07 18:24:09,261 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-01-07 18:24:09,262 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-01-07 18:24:09,264 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-01-07 18:24:09,265 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:24:09,284 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:24:09,284 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 3, 3] total 8 [2019-01-07 18:24:09,284 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:24:09,284 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 6 [2019-01-07 18:24:09,284 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:24:09,285 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states. [2019-01-07 18:24:09,297 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:24:09,298 INFO L459 AbstractCegarLoop]: Interpolant automaton has 7 states [2019-01-07 18:24:09,298 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2019-01-07 18:24:09,298 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=37, Invalid=53, Unknown=0, NotChecked=0, Total=90 [2019-01-07 18:24:09,298 INFO L87 Difference]: Start difference. First operand 71 states and 308 transitions. Second operand 7 states. [2019-01-07 18:24:11,987 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:24:11,987 INFO L93 Difference]: Finished difference Result 85 states and 324 transitions. [2019-01-07 18:24:11,988 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-07 18:24:11,988 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 6 [2019-01-07 18:24:11,988 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:24:11,988 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2019-01-07 18:24:11,988 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 42 transitions. [2019-01-07 18:24:11,988 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2019-01-07 18:24:11,989 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 42 transitions. [2019-01-07 18:24:11,989 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 42 transitions. [2019-01-07 18:24:12,084 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 42 edges. 42 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:24:12,086 INFO L225 Difference]: With dead ends: 85 [2019-01-07 18:24:12,086 INFO L226 Difference]: Without dead ends: 80 [2019-01-07 18:24:12,087 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 5 SyntacticMatches, 0 SemanticMatches, 9 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 25 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-01-07 18:24:12,087 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 80 states. [2019-01-07 18:24:12,796 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 80 to 71. [2019-01-07 18:24:12,796 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:24:12,797 INFO L82 GeneralOperation]: Start isEquivalent. First operand 80 states. Second operand 71 states. [2019-01-07 18:24:12,797 INFO L74 IsIncluded]: Start isIncluded. First operand 80 states. Second operand 71 states. [2019-01-07 18:24:12,797 INFO L87 Difference]: Start difference. First operand 80 states. Second operand 71 states. [2019-01-07 18:24:12,800 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:24:12,800 INFO L93 Difference]: Finished difference Result 80 states and 318 transitions. [2019-01-07 18:24:12,800 INFO L276 IsEmpty]: Start isEmpty. Operand 80 states and 318 transitions. [2019-01-07 18:24:12,800 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:24:12,801 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:24:12,801 INFO L74 IsIncluded]: Start isIncluded. First operand 71 states. Second operand 80 states. [2019-01-07 18:24:12,801 INFO L87 Difference]: Start difference. First operand 71 states. Second operand 80 states. [2019-01-07 18:24:12,802 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:24:12,803 INFO L93 Difference]: Finished difference Result 80 states and 318 transitions. [2019-01-07 18:24:12,803 INFO L276 IsEmpty]: Start isEmpty. Operand 80 states and 318 transitions. [2019-01-07 18:24:12,803 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:24:12,803 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:24:12,803 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:24:12,803 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:24:12,803 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 71 states. [2019-01-07 18:24:12,805 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 71 states to 71 states and 307 transitions. [2019-01-07 18:24:12,805 INFO L78 Accepts]: Start accepts. Automaton has 71 states and 307 transitions. Word has length 6 [2019-01-07 18:24:12,805 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:24:12,805 INFO L480 AbstractCegarLoop]: Abstraction has 71 states and 307 transitions. [2019-01-07 18:24:12,805 INFO L481 AbstractCegarLoop]: Interpolant automaton has 7 states. [2019-01-07 18:24:12,805 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 307 transitions. [2019-01-07 18:24:12,806 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-07 18:24:12,806 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:24:12,806 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-07 18:24:12,806 INFO L423 AbstractCegarLoop]: === Iteration 27 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:24:12,806 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:24:12,806 INFO L82 PathProgramCache]: Analyzing trace with hash 902478688, now seen corresponding path program 1 times [2019-01-07 18:24:12,806 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:24:12,807 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:24:12,807 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:24:12,807 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:24:12,807 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:24:12,812 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:24:12,946 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-01-07 18:24:12,947 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-01-07 18:24:12,948 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-01-07 18:24:12,948 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-01-07 18:24:12,948 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-01-07 18:24:12,949 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-01-07 18:24:12,949 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:24:12,949 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:24:12,949 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:24:12,949 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-07 18:24:12,950 INFO L207 CegarAbsIntRunner]: [0], [6], [16], [20], [22], [23] [2019-01-07 18:24:12,952 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:24:12,952 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:24:12,973 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:24:12,973 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-01-07 18:24:12,973 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:24:12,974 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:24:12,974 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:24:12,974 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 25 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 25 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:24:12,982 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:24:12,983 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:24:12,986 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:24:12,991 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:24:12,991 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:24:13,013 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:24:13,020 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:13,021 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 18:24:13,048 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:13,049 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:13,050 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 18:24:13,063 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:13,065 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:13,066 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:13,067 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 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-01-07 18:24:13,070 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:24:13,090 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:24:13,102 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:24:13,112 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:24:13,129 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:24:13,129 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 18:24:13,134 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:24:13,134 WARN L385 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-01-07 18:24:13,134 WARN L386 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-01-07 18:24:13,185 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:13,186 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:13,188 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:13,189 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:13,190 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:13,192 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:13,193 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:13,194 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 18:24:13,198 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:24:13,229 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:24:13,229 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 18:24:15,234 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:24:15,235 WARN L385 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-01-07 18:24:15,235 WARN L386 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-01-07 18:24:15,365 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:15,368 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:15,369 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:15,370 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:15,373 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:15,375 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:15,378 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:15,384 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:15,386 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:15,386 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 59 [2019-01-07 18:24:15,389 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:24:15,447 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:24:15,447 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-07 18:24:15,457 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:24:15,457 WARN L385 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-01-07 18:24:15,457 WARN L386 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-01-07 18:24:15,522 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-01-07 18:24:15,524 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-01-07 18:24:15,527 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-01-07 18:24:15,528 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-01-07 18:24:15,529 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-01-07 18:24:15,530 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-01-07 18:24:15,531 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:24:15,531 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:24:15,581 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-01-07 18:24:15,582 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-01-07 18:24:15,583 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-01-07 18:24:15,584 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-01-07 18:24:15,585 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-01-07 18:24:15,587 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-01-07 18:24:15,588 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:24:15,607 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:24:15,607 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 18:24:15,608 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:24:15,608 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-07 18:24:15,608 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:24:15,608 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 18:24:15,627 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:24:15,627 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 18:24:15,628 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 18:24:15,628 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-07 18:24:15,628 INFO L87 Difference]: Start difference. First operand 71 states and 307 transitions. Second operand 8 states. [2019-01-07 18:24:17,202 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:24:17,202 INFO L93 Difference]: Finished difference Result 83 states and 322 transitions. [2019-01-07 18:24:17,202 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-07 18:24:17,202 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-07 18:24:17,203 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:24:17,203 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:24:17,203 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 38 transitions. [2019-01-07 18:24:17,203 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:24:17,203 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 38 transitions. [2019-01-07 18:24:17,203 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 38 transitions. [2019-01-07 18:24:17,257 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 38 edges. 38 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:24:17,259 INFO L225 Difference]: With dead ends: 83 [2019-01-07 18:24:17,260 INFO L226 Difference]: Without dead ends: 82 [2019-01-07 18:24:17,260 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 16 GetRequests, 5 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-01-07 18:24:17,260 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 82 states. [2019-01-07 18:24:18,539 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 82 to 71. [2019-01-07 18:24:18,539 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:24:18,539 INFO L82 GeneralOperation]: Start isEquivalent. First operand 82 states. Second operand 71 states. [2019-01-07 18:24:18,540 INFO L74 IsIncluded]: Start isIncluded. First operand 82 states. Second operand 71 states. [2019-01-07 18:24:18,540 INFO L87 Difference]: Start difference. First operand 82 states. Second operand 71 states. [2019-01-07 18:24:18,542 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:24:18,542 INFO L93 Difference]: Finished difference Result 82 states and 320 transitions. [2019-01-07 18:24:18,542 INFO L276 IsEmpty]: Start isEmpty. Operand 82 states and 320 transitions. [2019-01-07 18:24:18,543 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:24:18,543 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:24:18,543 INFO L74 IsIncluded]: Start isIncluded. First operand 71 states. Second operand 82 states. [2019-01-07 18:24:18,543 INFO L87 Difference]: Start difference. First operand 71 states. Second operand 82 states. [2019-01-07 18:24:18,545 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:24:18,545 INFO L93 Difference]: Finished difference Result 82 states and 320 transitions. [2019-01-07 18:24:18,545 INFO L276 IsEmpty]: Start isEmpty. Operand 82 states and 320 transitions. [2019-01-07 18:24:18,546 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:24:18,546 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:24:18,546 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:24:18,546 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:24:18,546 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 71 states. [2019-01-07 18:24:18,548 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 71 states to 71 states and 307 transitions. [2019-01-07 18:24:18,548 INFO L78 Accepts]: Start accepts. Automaton has 71 states and 307 transitions. Word has length 6 [2019-01-07 18:24:18,548 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:24:18,549 INFO L480 AbstractCegarLoop]: Abstraction has 71 states and 307 transitions. [2019-01-07 18:24:18,549 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 18:24:18,549 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 307 transitions. [2019-01-07 18:24:18,549 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-07 18:24:18,549 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:24:18,549 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-07 18:24:18,550 INFO L423 AbstractCegarLoop]: === Iteration 28 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:24:18,550 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:24:18,550 INFO L82 PathProgramCache]: Analyzing trace with hash 902469014, now seen corresponding path program 1 times [2019-01-07 18:24:18,550 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:24:18,551 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:24:18,551 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:24:18,551 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:24:18,551 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:24:18,556 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:24:18,877 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-01-07 18:24:18,878 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-01-07 18:24:18,879 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-01-07 18:24:18,880 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-01-07 18:24:18,880 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-01-07 18:24:18,881 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-01-07 18:24:18,881 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 18:24:18,881 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:24:18,882 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:24:18,882 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-07 18:24:18,882 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [16], [20], [21] [2019-01-07 18:24:18,883 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:24:18,884 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:24:18,902 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:24:18,903 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-01-07 18:24:18,903 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:24:18,903 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:24:18,903 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:24:18,903 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 26 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 26 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:24:18,912 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:24:18,912 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:24:18,916 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:24:18,921 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:24:18,922 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:24:18,963 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:24:18,978 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:18,979 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 18:24:18,996 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:18,997 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:18,998 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 18:24:19,021 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:19,023 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:19,024 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:19,025 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 18:24:19,032 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:24:19,052 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:24:19,066 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:24:19,077 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:24:19,096 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:24:19,096 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 18:24:19,105 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:24:19,106 WARN L385 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-01-07 18:24:19,106 WARN L386 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-01-07 18:24:19,185 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:19,186 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:19,188 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:19,189 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:19,190 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:19,192 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:19,193 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:19,194 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 18:24:19,201 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:24:19,237 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:24:19,238 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 18:24:19,630 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:24:19,630 WARN L385 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-01-07 18:24:19,631 WARN L386 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-01-07 18:24:19,740 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:19,742 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:19,743 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:19,744 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:19,746 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:19,747 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:19,748 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:19,749 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:19,751 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:19,752 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 59 [2019-01-07 18:24:19,759 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:24:19,798 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:24:19,798 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-07 18:24:19,820 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:24:19,821 WARN L385 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-01-07 18:24:19,821 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< 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-01-07 18:24:19,906 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:19,908 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:19,909 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:19,910 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:19,912 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:19,913 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:19,914 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:19,915 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:19,916 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:24:19,917 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:19,918 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 72 [2019-01-07 18:24:19,926 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:24:19,971 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:24:19,971 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:30 [2019-01-07 18:24:19,987 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:24:19,987 WARN L385 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-01-07 18:24:19,987 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 18:24:20,121 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-01-07 18:24:20,123 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-01-07 18:24:20,124 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-01-07 18:24:20,127 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-01-07 18:24:20,128 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-01-07 18:24:20,133 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-01-07 18:24:20,133 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:24:20,133 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:24:20,238 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-01-07 18:24:20,238 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-01-07 18:24:20,240 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-01-07 18:24:20,241 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-01-07 18:24:20,242 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-01-07 18:24:20,244 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-01-07 18:24:20,245 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 4 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:24:20,265 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:24:20,265 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-07 18:24:20,266 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:24:20,266 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-07 18:24:20,266 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:24:20,266 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 18:24:20,300 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:24:20,300 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 18:24:20,300 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 18:24:20,300 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=64, Invalid=92, Unknown=0, NotChecked=0, Total=156 [2019-01-07 18:24:20,300 INFO L87 Difference]: Start difference. First operand 71 states and 307 transitions. Second operand 10 states. [2019-01-07 18:24:23,643 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:24:23,643 INFO L93 Difference]: Finished difference Result 97 states and 346 transitions. [2019-01-07 18:24:23,643 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-07 18:24:23,643 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-07 18:24:23,644 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:24:23,644 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:24:23,645 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 56 transitions. [2019-01-07 18:24:23,646 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:24:23,647 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 56 transitions. [2019-01-07 18:24:23,647 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 56 transitions. [2019-01-07 18:24:23,739 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 56 edges. 56 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:24:23,742 INFO L225 Difference]: With dead ends: 97 [2019-01-07 18:24:23,742 INFO L226 Difference]: Without dead ends: 96 [2019-01-07 18:24:23,742 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 3 SyntacticMatches, 1 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 52 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=92, Invalid=148, Unknown=0, NotChecked=0, Total=240 [2019-01-07 18:24:23,743 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 96 states. [2019-01-07 18:24:24,964 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 96 to 71. [2019-01-07 18:24:24,964 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:24:24,964 INFO L82 GeneralOperation]: Start isEquivalent. First operand 96 states. Second operand 71 states. [2019-01-07 18:24:24,964 INFO L74 IsIncluded]: Start isIncluded. First operand 96 states. Second operand 71 states. [2019-01-07 18:24:24,965 INFO L87 Difference]: Start difference. First operand 96 states. Second operand 71 states. [2019-01-07 18:24:24,968 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:24:24,968 INFO L93 Difference]: Finished difference Result 96 states and 344 transitions. [2019-01-07 18:24:24,968 INFO L276 IsEmpty]: Start isEmpty. Operand 96 states and 344 transitions. [2019-01-07 18:24:24,968 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:24:24,968 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:24:24,968 INFO L74 IsIncluded]: Start isIncluded. First operand 71 states. Second operand 96 states. [2019-01-07 18:24:24,968 INFO L87 Difference]: Start difference. First operand 71 states. Second operand 96 states. [2019-01-07 18:24:24,971 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:24:24,971 INFO L93 Difference]: Finished difference Result 96 states and 344 transitions. [2019-01-07 18:24:24,971 INFO L276 IsEmpty]: Start isEmpty. Operand 96 states and 344 transitions. [2019-01-07 18:24:24,972 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:24:24,972 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:24:24,972 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:24:24,972 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:24:24,972 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 71 states. [2019-01-07 18:24:24,975 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 71 states to 71 states and 307 transitions. [2019-01-07 18:24:24,975 INFO L78 Accepts]: Start accepts. Automaton has 71 states and 307 transitions. Word has length 6 [2019-01-07 18:24:24,975 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:24:24,975 INFO L480 AbstractCegarLoop]: Abstraction has 71 states and 307 transitions. [2019-01-07 18:24:24,975 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 18:24:24,976 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 307 transitions. [2019-01-07 18:24:24,976 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-07 18:24:24,976 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:24:24,976 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-07 18:24:24,976 INFO L423 AbstractCegarLoop]: === Iteration 29 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:24:24,977 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:24:24,977 INFO L82 PathProgramCache]: Analyzing trace with hash 902472858, now seen corresponding path program 1 times [2019-01-07 18:24:24,977 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:24:24,977 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:24:24,977 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:24:24,978 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:24:24,978 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:24:24,982 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:24:25,278 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-01-07 18:24:25,280 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-01-07 18:24:25,281 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-01-07 18:24:25,286 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-01-07 18:24:25,286 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-01-07 18:24:25,288 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-01-07 18:24:25,288 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 18:24:25,288 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:24:25,288 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:24:25,288 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-07 18:24:25,288 INFO L207 CegarAbsIntRunner]: [0], [6], [14], [16], [20], [21] [2019-01-07 18:24:25,289 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:24:25,289 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:24:25,306 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:24:25,307 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-01-07 18:24:25,307 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:24:25,307 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:24:25,307 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:24:25,307 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 27 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 27 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:24:25,318 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:24:25,318 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:24:25,337 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:24:25,340 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:24:25,340 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:24:25,363 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:24:25,379 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:25,380 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 18:24:25,400 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:25,402 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:25,402 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 18:24:25,424 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:25,426 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:25,428 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:25,429 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 18:24:25,433 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:24:25,462 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:24:25,476 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:24:25,484 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:24:25,500 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:24:25,501 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-07 18:24:25,505 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:24:25,505 WARN L385 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-01-07 18:24:25,505 WARN L386 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-01-07 18:24:25,556 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:25,558 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:25,559 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:25,561 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:25,562 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:25,563 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:25,565 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:25,566 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 18:24:25,569 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:24:25,598 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:24:25,598 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-07 18:24:25,671 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:24:25,671 WARN L385 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-01-07 18:24:25,672 WARN L386 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-01-07 18:24:25,727 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:25,728 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:25,729 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:25,731 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:25,732 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:25,733 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:25,734 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:25,736 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:25,737 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:25,738 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 59 [2019-01-07 18:24:25,742 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:24:25,777 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:24:25,778 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-07 18:24:25,884 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:24:25,884 WARN L385 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-01-07 18:24:25,885 WARN L386 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-01-07 18:24:25,945 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:25,946 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:25,948 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:25,949 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:25,950 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:25,951 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:25,952 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:25,954 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:25,955 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:25,956 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:25,956 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:24:25,957 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 77 [2019-01-07 18:24:25,962 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:24:26,000 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:24:26,000 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-07 18:24:26,009 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:24:26,010 WARN L385 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-01-07 18:24:26,010 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< 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-01-07 18:24:26,059 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-01-07 18:24:26,061 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-01-07 18:24:26,063 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-01-07 18:24:26,066 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-01-07 18:24:26,067 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-01-07 18:24:26,068 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-01-07 18:24:26,068 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:24:26,068 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:24:26,154 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-01-07 18:24:26,155 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-01-07 18:24:26,156 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-01-07 18:24:26,156 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-01-07 18:24:26,158 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-01-07 18:24:26,160 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-01-07 18:24:26,160 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 1 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:24:26,180 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:24:26,181 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-07 18:24:26,181 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:24:26,181 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-07 18:24:26,181 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:24:26,181 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 18:24:26,197 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:24:26,197 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 18:24:26,197 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 18:24:26,198 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=65, Invalid=117, Unknown=0, NotChecked=0, Total=182 [2019-01-07 18:24:26,198 INFO L87 Difference]: Start difference. First operand 71 states and 307 transitions. Second operand 10 states. [2019-01-07 18:24:28,256 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:24:28,257 INFO L93 Difference]: Finished difference Result 102 states and 389 transitions. [2019-01-07 18:24:28,257 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-07 18:24:28,257 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-07 18:24:28,257 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:24:28,257 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:24:28,257 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 47 transitions. [2019-01-07 18:24:28,257 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:24:28,258 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 47 transitions. [2019-01-07 18:24:28,258 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 47 transitions. [2019-01-07 18:24:28,373 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 47 edges. 47 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:24:28,375 INFO L225 Difference]: With dead ends: 102 [2019-01-07 18:24:28,375 INFO L226 Difference]: Without dead ends: 101 [2019-01-07 18:24:28,376 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 2 SyntacticMatches, 1 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 61 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=98, Invalid=174, Unknown=0, NotChecked=0, Total=272 [2019-01-07 18:24:28,376 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 101 states. [2019-01-07 18:24:29,907 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 101 to 81. [2019-01-07 18:24:29,907 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:24:29,907 INFO L82 GeneralOperation]: Start isEquivalent. First operand 101 states. Second operand 81 states. [2019-01-07 18:24:29,907 INFO L74 IsIncluded]: Start isIncluded. First operand 101 states. Second operand 81 states. [2019-01-07 18:24:29,908 INFO L87 Difference]: Start difference. First operand 101 states. Second operand 81 states. [2019-01-07 18:24:29,911 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:24:29,911 INFO L93 Difference]: Finished difference Result 101 states and 386 transitions. [2019-01-07 18:24:29,911 INFO L276 IsEmpty]: Start isEmpty. Operand 101 states and 386 transitions. [2019-01-07 18:24:29,911 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:24:29,911 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:24:29,911 INFO L74 IsIncluded]: Start isIncluded. First operand 81 states. Second operand 101 states. [2019-01-07 18:24:29,912 INFO L87 Difference]: Start difference. First operand 81 states. Second operand 101 states. [2019-01-07 18:24:29,914 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:24:29,914 INFO L93 Difference]: Finished difference Result 101 states and 386 transitions. [2019-01-07 18:24:29,914 INFO L276 IsEmpty]: Start isEmpty. Operand 101 states and 386 transitions. [2019-01-07 18:24:29,914 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:24:29,914 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:24:29,915 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:24:29,915 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:24:29,915 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 81 states. [2019-01-07 18:24:29,917 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 81 states to 81 states and 357 transitions. [2019-01-07 18:24:29,917 INFO L78 Accepts]: Start accepts. Automaton has 81 states and 357 transitions. Word has length 6 [2019-01-07 18:24:29,918 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:24:29,918 INFO L480 AbstractCegarLoop]: Abstraction has 81 states and 357 transitions. [2019-01-07 18:24:29,918 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 18:24:29,918 INFO L276 IsEmpty]: Start isEmpty. Operand 81 states and 357 transitions. [2019-01-07 18:24:29,918 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-07 18:24:29,918 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:24:29,918 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-07 18:24:29,919 INFO L423 AbstractCegarLoop]: === Iteration 30 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:24:29,919 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:24:29,919 INFO L82 PathProgramCache]: Analyzing trace with hash 902592022, now seen corresponding path program 1 times [2019-01-07 18:24:29,919 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:24:29,920 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:24:29,920 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:24:29,920 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:24:29,920 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:24:29,923 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:24:30,300 WARN L181 SmtUtils]: Spent 323.00 ms on a formula simplification. DAG size of input: 30 DAG size of output: 17 [2019-01-07 18:24:30,477 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-01-07 18:24:30,478 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-01-07 18:24:30,480 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-01-07 18:24:30,483 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-01-07 18:24:30,483 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-01-07 18:24:30,485 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-01-07 18:24:30,485 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:24:30,485 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:24:30,485 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:24:30,485 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-07 18:24:30,486 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [16], [20], [21] [2019-01-07 18:24:30,488 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:24:30,488 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:24:30,504 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:24:30,504 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-01-07 18:24:30,504 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:24:30,504 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:24:30,504 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:24:30,504 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 28 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 28 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:24:30,514 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:24:30,514 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:24:30,519 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:24:30,532 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:24:30,532 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:24:30,562 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:24:30,579 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-07 18:24:30,600 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:30,601 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 26 [2019-01-07 18:24:30,633 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:30,635 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:30,635 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 33 [2019-01-07 18:24:30,645 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:24:30,669 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:24:30,686 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:24:30,704 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:24:30,728 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:24:30,728 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:22, output treesize:27 [2019-01-07 18:24:30,733 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:24:30,734 WARN L385 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-01-07 18:24:30,734 WARN L386 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-01-07 18:24:30,812 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:30,814 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:30,815 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:30,816 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:30,817 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 28 [2019-01-07 18:24:30,824 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:24:30,844 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:24:30,845 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:22 [2019-01-07 18:24:32,855 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:24:32,855 WARN L385 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-01-07 18:24:32,855 WARN L386 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-01-07 18:24:32,922 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:32,924 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:32,925 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:32,926 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:32,927 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:24:32,928 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 28 treesize of output 41 [2019-01-07 18:24:32,934 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:24:32,957 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:24:32,958 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:34, output treesize:22 [2019-01-07 18:24:32,968 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:24:32,969 WARN L385 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-01-07 18:24:32,969 WARN L386 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)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 18:24:33,032 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:33,034 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:33,035 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:33,036 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:33,038 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:33,039 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:33,040 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 30 treesize of output 44 [2019-01-07 18:24:33,045 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:24:33,071 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:24:33,071 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:36, output treesize:26 [2019-01-07 18:24:33,078 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:24:33,078 WARN L385 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-01-07 18:24:33,078 WARN L386 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-01-07 18:24:33,133 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-01-07 18:24:33,135 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-01-07 18:24:33,139 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-01-07 18:24:33,141 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-01-07 18:24:33,141 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-01-07 18:24:33,142 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-01-07 18:24:33,142 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:24:33,142 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:24:33,230 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-01-07 18:24:33,235 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-01-07 18:24:33,249 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-01-07 18:24:33,250 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-01-07 18:24:33,251 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-01-07 18:24:33,252 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-01-07 18:24:33,252 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 5 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:24:33,272 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:24:33,272 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-07 18:24:33,272 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:24:33,273 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-07 18:24:33,273 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:24:33,273 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 18:24:33,291 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:24:33,291 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 18:24:33,291 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 18:24:33,292 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=71, Invalid=111, Unknown=0, NotChecked=0, Total=182 [2019-01-07 18:24:33,292 INFO L87 Difference]: Start difference. First operand 81 states and 357 transitions. Second operand 10 states. [2019-01-07 18:24:36,574 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:24:36,574 INFO L93 Difference]: Finished difference Result 108 states and 386 transitions. [2019-01-07 18:24:36,574 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-07 18:24:36,574 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-07 18:24:36,574 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:24:36,574 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:24:36,575 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 57 transitions. [2019-01-07 18:24:36,575 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:24:36,576 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 57 transitions. [2019-01-07 18:24:36,576 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 57 transitions. [2019-01-07 18:24:36,947 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 57 edges. 57 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:24:36,949 INFO L225 Difference]: With dead ends: 108 [2019-01-07 18:24:36,950 INFO L226 Difference]: Without dead ends: 107 [2019-01-07 18:24:36,950 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 16 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 59 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=89, Invalid=151, Unknown=0, NotChecked=0, Total=240 [2019-01-07 18:24:36,950 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 107 states. [2019-01-07 18:24:37,978 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 107 to 77. [2019-01-07 18:24:37,978 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:24:37,978 INFO L82 GeneralOperation]: Start isEquivalent. First operand 107 states. Second operand 77 states. [2019-01-07 18:24:37,979 INFO L74 IsIncluded]: Start isIncluded. First operand 107 states. Second operand 77 states. [2019-01-07 18:24:37,979 INFO L87 Difference]: Start difference. First operand 107 states. Second operand 77 states. [2019-01-07 18:24:37,984 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:24:37,984 INFO L93 Difference]: Finished difference Result 107 states and 383 transitions. [2019-01-07 18:24:37,984 INFO L276 IsEmpty]: Start isEmpty. Operand 107 states and 383 transitions. [2019-01-07 18:24:37,984 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:24:37,984 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:24:37,985 INFO L74 IsIncluded]: Start isIncluded. First operand 77 states. Second operand 107 states. [2019-01-07 18:24:37,985 INFO L87 Difference]: Start difference. First operand 77 states. Second operand 107 states. [2019-01-07 18:24:37,990 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:24:37,990 INFO L93 Difference]: Finished difference Result 107 states and 383 transitions. [2019-01-07 18:24:37,990 INFO L276 IsEmpty]: Start isEmpty. Operand 107 states and 383 transitions. [2019-01-07 18:24:37,990 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:24:37,991 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:24:37,991 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:24:37,991 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:24:37,991 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 77 states. [2019-01-07 18:24:37,994 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 77 states to 77 states and 337 transitions. [2019-01-07 18:24:37,994 INFO L78 Accepts]: Start accepts. Automaton has 77 states and 337 transitions. Word has length 6 [2019-01-07 18:24:37,994 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:24:37,994 INFO L480 AbstractCegarLoop]: Abstraction has 77 states and 337 transitions. [2019-01-07 18:24:37,994 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 18:24:37,994 INFO L276 IsEmpty]: Start isEmpty. Operand 77 states and 337 transitions. [2019-01-07 18:24:37,995 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-07 18:24:37,995 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:24:37,995 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-07 18:24:37,995 INFO L423 AbstractCegarLoop]: === Iteration 31 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:24:37,995 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:24:37,995 INFO L82 PathProgramCache]: Analyzing trace with hash 902591586, now seen corresponding path program 1 times [2019-01-07 18:24:37,995 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:24:37,996 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:24:37,996 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:24:37,996 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:24:37,996 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:24:38,007 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:24:38,572 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-01-07 18:24:38,573 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-01-07 18:24:38,574 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-01-07 18:24:38,575 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-01-07 18:24:38,575 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-01-07 18:24:38,575 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-01-07 18:24:38,576 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:24:38,576 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:24:38,576 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:24:38,576 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-07 18:24:38,577 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [14], [16], [19] [2019-01-07 18:24:38,578 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:24:38,578 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:24:38,591 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:24:38,591 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-01-07 18:24:38,592 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:24:38,592 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:24:38,592 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:24:38,592 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 29 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 29 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:24:38,601 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:24:38,602 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:24:38,605 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:24:38,610 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:24:38,610 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:24:38,637 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:24:38,645 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:38,646 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 18:24:38,658 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:38,660 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:38,661 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 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-01-07 18:24:38,684 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:38,686 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:38,690 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:38,691 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 18:24:38,695 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:24:38,714 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:24:38,726 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:24:38,737 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:24:38,754 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:24:38,754 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-07 18:24:38,759 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:24:38,759 WARN L385 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-01-07 18:24:38,759 WARN L386 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-01-07 18:24:38,815 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:38,817 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:38,818 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:38,820 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:38,821 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:38,823 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:38,824 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:38,825 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 18:24:38,830 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:24:38,861 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:24:38,862 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-07 18:24:38,973 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:24:38,973 WARN L385 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-01-07 18:24:38,973 WARN L386 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-01-07 18:24:39,032 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:39,033 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:39,035 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:39,036 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:39,037 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:39,039 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:39,040 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:39,041 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:24:39,042 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 60 [2019-01-07 18:24:39,046 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:24:39,080 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:24:39,081 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:30 [2019-01-07 18:24:41,090 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:24:41,090 WARN L385 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-01-07 18:24:41,090 WARN L386 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)) (= (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-01-07 18:24:41,159 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:41,161 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:41,162 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:41,164 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:41,165 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:41,166 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:41,168 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:41,169 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:41,170 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:41,171 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 69 [2019-01-07 18:24:41,175 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:24:41,218 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:24:41,219 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:44, output treesize:34 [2019-01-07 18:24:41,952 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:24:41,953 WARN L385 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-01-07 18:24:41,953 WARN L386 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-01-07 18:24:42,090 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:42,091 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:42,092 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:42,093 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:42,095 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:42,096 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:42,097 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:42,098 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:42,099 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:42,100 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:42,101 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:42,102 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:24:42,103 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 75 [2019-01-07 18:24:42,117 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:24:42,158 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:24:42,158 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:44, output treesize:34 [2019-01-07 18:24:42,166 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:24:42,166 WARN L385 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-01-07 18:24:42,167 WARN L386 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-01-07 18:24:42,195 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-01-07 18:24:42,197 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-01-07 18:24:42,199 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-01-07 18:24:42,202 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-01-07 18:24:42,204 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-01-07 18:24:42,205 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-01-07 18:24:42,206 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:24:42,206 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:24:42,339 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-01-07 18:24:42,341 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-01-07 18:24:42,342 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-01-07 18:24:42,343 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-01-07 18:24:42,345 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-01-07 18:24:42,347 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-01-07 18:24:42,348 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 4 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:24:42,367 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:24:42,368 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5, 5] total 14 [2019-01-07 18:24:42,368 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:24:42,368 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-07 18:24:42,368 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:24:42,368 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-01-07 18:24:42,388 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:24:42,388 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-01-07 18:24:42,389 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-01-07 18:24:42,389 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=93, Invalid=147, Unknown=0, NotChecked=0, Total=240 [2019-01-07 18:24:42,389 INFO L87 Difference]: Start difference. First operand 77 states and 337 transitions. Second operand 12 states. [2019-01-07 18:24:45,506 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:24:45,506 INFO L93 Difference]: Finished difference Result 120 states and 459 transitions. [2019-01-07 18:24:45,506 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-07 18:24:45,506 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-07 18:24:45,507 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:24:45,507 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-07 18:24:45,507 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 63 transitions. [2019-01-07 18:24:45,507 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-07 18:24:45,508 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 63 transitions. [2019-01-07 18:24:45,508 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 63 transitions. [2019-01-07 18:24:45,616 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 63 edges. 63 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:24:45,619 INFO L225 Difference]: With dead ends: 120 [2019-01-07 18:24:45,620 INFO L226 Difference]: Without dead ends: 119 [2019-01-07 18:24:45,620 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 1 SyntacticMatches, 0 SemanticMatches, 17 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 86 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=129, Invalid=213, Unknown=0, NotChecked=0, Total=342 [2019-01-07 18:24:45,620 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 119 states. [2019-01-07 18:24:47,437 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 119 to 82. [2019-01-07 18:24:47,437 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:24:47,437 INFO L82 GeneralOperation]: Start isEquivalent. First operand 119 states. Second operand 82 states. [2019-01-07 18:24:47,437 INFO L74 IsIncluded]: Start isIncluded. First operand 119 states. Second operand 82 states. [2019-01-07 18:24:47,437 INFO L87 Difference]: Start difference. First operand 119 states. Second operand 82 states. [2019-01-07 18:24:47,442 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:24:47,442 INFO L93 Difference]: Finished difference Result 119 states and 455 transitions. [2019-01-07 18:24:47,442 INFO L276 IsEmpty]: Start isEmpty. Operand 119 states and 455 transitions. [2019-01-07 18:24:47,443 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:24:47,443 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:24:47,443 INFO L74 IsIncluded]: Start isIncluded. First operand 82 states. Second operand 119 states. [2019-01-07 18:24:47,443 INFO L87 Difference]: Start difference. First operand 82 states. Second operand 119 states. [2019-01-07 18:24:47,448 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:24:47,448 INFO L93 Difference]: Finished difference Result 119 states and 455 transitions. [2019-01-07 18:24:47,449 INFO L276 IsEmpty]: Start isEmpty. Operand 119 states and 455 transitions. [2019-01-07 18:24:47,449 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:24:47,449 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:24:47,449 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:24:47,449 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:24:47,450 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 82 states. [2019-01-07 18:24:47,452 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 82 states to 82 states and 362 transitions. [2019-01-07 18:24:47,452 INFO L78 Accepts]: Start accepts. Automaton has 82 states and 362 transitions. Word has length 6 [2019-01-07 18:24:47,453 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:24:47,453 INFO L480 AbstractCegarLoop]: Abstraction has 82 states and 362 transitions. [2019-01-07 18:24:47,453 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-01-07 18:24:47,453 INFO L276 IsEmpty]: Start isEmpty. Operand 82 states and 362 transitions. [2019-01-07 18:24:47,453 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-07 18:24:47,453 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:24:47,453 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-07 18:24:47,454 INFO L423 AbstractCegarLoop]: === Iteration 32 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:24:47,454 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:24:47,454 INFO L82 PathProgramCache]: Analyzing trace with hash 902703186, now seen corresponding path program 2 times [2019-01-07 18:24:47,454 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:24:47,455 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:24:47,455 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:24:47,455 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:24:47,455 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:24:47,459 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:24:48,050 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-01-07 18:24:48,051 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-01-07 18:24:48,052 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-01-07 18:24:48,053 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-01-07 18:24:48,053 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-01-07 18:24:48,054 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-01-07 18:24:48,054 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:24:48,054 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:24:48,054 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:24:48,054 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-07 18:24:48,055 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-07 18:24:48,055 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:24:48,055 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 30 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 30 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:24:48,067 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-07 18:24:48,067 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-07 18:24:48,076 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-07 18:24:48,076 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-07 18:24:48,080 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:24:48,080 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:24:48,120 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:24:48,134 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:48,135 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 18:24:48,151 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:48,153 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:48,154 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 18:24:48,179 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:48,181 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:48,182 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:48,183 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 18:24:48,192 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:24:48,214 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:24:48,228 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:24:48,239 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:24:48,258 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:24:48,259 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-07 18:24:48,264 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:24:48,265 WARN L385 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-01-07 18:24:48,265 WARN L386 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-01-07 18:24:48,358 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:48,359 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:48,360 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:48,362 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:48,363 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:48,364 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:48,365 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:48,366 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 18:24:48,373 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:24:48,406 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:24:48,406 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-07 18:24:50,667 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:24:50,668 WARN L385 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-01-07 18:24:50,668 WARN L386 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-01-07 18:24:50,803 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:50,804 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:50,806 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:50,810 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:50,812 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:50,814 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:50,816 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:50,818 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:50,821 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:50,821 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 67 [2019-01-07 18:24:50,830 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:24:50,881 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:24:50,881 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-07 18:24:50,890 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:24:50,891 WARN L385 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-01-07 18:24:50,891 WARN L386 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-01-07 18:24:51,039 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:51,041 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:51,043 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:51,046 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:51,048 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:51,051 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:51,054 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:51,057 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:51,060 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:51,063 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:51,066 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:51,066 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:24:51,067 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 73 [2019-01-07 18:24:51,078 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:24:51,129 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:24:51,130 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-07 18:24:51,135 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:24:51,135 WARN L385 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-01-07 18:24:51,136 WARN L386 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-01-07 18:24:51,227 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:51,229 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:51,230 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:51,231 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:51,233 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:51,234 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:51,235 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:51,236 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:51,237 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:24:51,238 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:51,239 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 72 [2019-01-07 18:24:51,247 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:24:51,292 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:24:51,292 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:30 [2019-01-07 18:24:53,299 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:24:53,299 WARN L385 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-01-07 18:24:53,300 WARN L386 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)) (= (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-01-07 18:24:53,356 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-01-07 18:24:53,358 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-01-07 18:24:53,360 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-01-07 18:24:53,362 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-01-07 18:24:53,364 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-01-07 18:24:53,364 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-01-07 18:24:53,365 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:24:53,365 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:24:53,552 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-01-07 18:24:53,553 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-01-07 18:24:53,554 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-01-07 18:24:53,556 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-01-07 18:24:53,558 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-01-07 18:24:53,561 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-01-07 18:24:53,561 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 6 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:24:53,581 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:24:53,582 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5, 5] total 15 [2019-01-07 18:24:53,582 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:24:53,582 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-07 18:24:53,582 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:24:53,582 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-01-07 18:24:53,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-01-07 18:24:53,602 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-01-07 18:24:53,602 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-01-07 18:24:53,603 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=102, Invalid=170, Unknown=0, NotChecked=0, Total=272 [2019-01-07 18:24:53,603 INFO L87 Difference]: Start difference. First operand 82 states and 362 transitions. Second operand 12 states. [2019-01-07 18:24:57,030 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:24:57,030 INFO L93 Difference]: Finished difference Result 146 states and 556 transitions. [2019-01-07 18:24:57,030 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-07 18:24:57,030 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-07 18:24:57,030 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:24:57,030 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-07 18:24:57,031 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 67 transitions. [2019-01-07 18:24:57,031 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-07 18:24:57,032 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 67 transitions. [2019-01-07 18:24:57,032 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 67 transitions. [2019-01-07 18:24:57,430 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 67 edges. 67 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:24:57,434 INFO L225 Difference]: With dead ends: 146 [2019-01-07 18:24:57,434 INFO L226 Difference]: Without dead ends: 145 [2019-01-07 18:24:57,434 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-01-07 18:24:57,434 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 145 states. [2019-01-07 18:24:58,705 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 145 to 98. [2019-01-07 18:24:58,705 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:24:58,706 INFO L82 GeneralOperation]: Start isEquivalent. First operand 145 states. Second operand 98 states. [2019-01-07 18:24:58,706 INFO L74 IsIncluded]: Start isIncluded. First operand 145 states. Second operand 98 states. [2019-01-07 18:24:58,706 INFO L87 Difference]: Start difference. First operand 145 states. Second operand 98 states. [2019-01-07 18:24:58,711 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:24:58,712 INFO L93 Difference]: Finished difference Result 145 states and 549 transitions. [2019-01-07 18:24:58,712 INFO L276 IsEmpty]: Start isEmpty. Operand 145 states and 549 transitions. [2019-01-07 18:24:58,712 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:24:58,712 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:24:58,712 INFO L74 IsIncluded]: Start isIncluded. First operand 98 states. Second operand 145 states. [2019-01-07 18:24:58,712 INFO L87 Difference]: Start difference. First operand 98 states. Second operand 145 states. [2019-01-07 18:24:58,716 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:24:58,716 INFO L93 Difference]: Finished difference Result 145 states and 549 transitions. [2019-01-07 18:24:58,716 INFO L276 IsEmpty]: Start isEmpty. Operand 145 states and 549 transitions. [2019-01-07 18:24:58,716 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:24:58,716 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:24:58,716 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:24:58,717 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:24:58,717 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 98 states. [2019-01-07 18:24:58,719 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 98 states to 98 states and 442 transitions. [2019-01-07 18:24:58,719 INFO L78 Accepts]: Start accepts. Automaton has 98 states and 442 transitions. Word has length 6 [2019-01-07 18:24:58,719 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:24:58,719 INFO L480 AbstractCegarLoop]: Abstraction has 98 states and 442 transitions. [2019-01-07 18:24:58,719 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-01-07 18:24:58,719 INFO L276 IsEmpty]: Start isEmpty. Operand 98 states and 442 transitions. [2019-01-07 18:24:58,719 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-07 18:24:58,720 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:24:58,720 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-07 18:24:58,720 INFO L423 AbstractCegarLoop]: === Iteration 33 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:24:58,720 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:24:58,720 INFO L82 PathProgramCache]: Analyzing trace with hash 893362642, now seen corresponding path program 1 times [2019-01-07 18:24:58,720 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:24:58,721 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:24:58,721 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-07 18:24:58,721 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:24:58,721 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:24:58,724 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:24:58,997 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-01-07 18:24:58,998 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-01-07 18:24:58,999 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-01-07 18:24:58,999 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-01-07 18:24:58,999 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-01-07 18:24:59,000 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-01-07 18:24:59,000 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 18:24:59,000 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:24:59,000 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:24:59,001 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-07 18:24:59,001 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [20], [22], [23] [2019-01-07 18:24:59,002 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:24:59,002 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:24:59,011 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:24:59,011 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-01-07 18:24:59,011 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:24:59,012 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:24:59,012 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:24:59,012 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 31 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 31 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:24:59,021 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:24:59,021 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:24:59,024 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:24:59,028 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:24:59,028 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:24:59,058 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:24:59,075 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:59,076 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 18:24:59,090 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:59,091 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:59,092 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 18:24:59,110 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:59,112 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:59,113 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:59,114 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 18:24:59,120 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:24:59,141 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:24:59,153 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:24:59,165 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:24:59,184 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:24:59,184 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 18:24:59,189 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:24:59,190 WARN L385 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-01-07 18:24:59,190 WARN L386 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-01-07 18:24:59,309 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:59,310 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:59,311 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:59,313 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:59,314 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:59,315 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:59,316 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:59,317 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 18:24:59,323 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:24:59,358 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:24:59,358 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 18:24:59,486 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:24:59,486 WARN L385 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-01-07 18:24:59,486 WARN L386 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-01-07 18:24:59,555 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:59,556 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:59,557 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:59,559 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:59,560 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:59,561 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:59,562 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:59,563 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:59,564 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:24:59,565 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 65 [2019-01-07 18:24:59,572 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:24:59,611 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:24:59,611 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-07 18:24:59,624 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:24:59,625 WARN L385 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-01-07 18:24:59,625 WARN L386 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-01-07 18:24:59,726 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-01-07 18:24:59,727 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-01-07 18:24:59,729 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-01-07 18:24:59,729 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-01-07 18:24:59,730 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-01-07 18:24:59,731 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-01-07 18:24:59,732 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:24:59,732 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:24:59,791 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-01-07 18:24:59,792 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-01-07 18:24:59,792 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-01-07 18:24:59,793 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-01-07 18:24:59,795 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-01-07 18:24:59,797 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-01-07 18:24:59,797 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:24:59,817 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:24:59,818 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 3, 3] total 8 [2019-01-07 18:24:59,818 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:24:59,818 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 6 [2019-01-07 18:24:59,818 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:24:59,818 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states. [2019-01-07 18:24:59,836 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:24:59,836 INFO L459 AbstractCegarLoop]: Interpolant automaton has 7 states [2019-01-07 18:24:59,836 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2019-01-07 18:24:59,836 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=35, Invalid=55, Unknown=0, NotChecked=0, Total=90 [2019-01-07 18:24:59,837 INFO L87 Difference]: Start difference. First operand 98 states and 442 transitions. Second operand 7 states. [2019-01-07 18:25:02,414 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:25:02,414 INFO L93 Difference]: Finished difference Result 111 states and 462 transitions. [2019-01-07 18:25:02,415 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-07 18:25:02,415 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 6 [2019-01-07 18:25:02,415 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:25:02,415 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2019-01-07 18:25:02,415 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 38 transitions. [2019-01-07 18:25:02,415 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2019-01-07 18:25:02,415 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 38 transitions. [2019-01-07 18:25:02,416 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 38 transitions. [2019-01-07 18:25:02,469 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 38 edges. 38 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:25:02,472 INFO L225 Difference]: With dead ends: 111 [2019-01-07 18:25:02,472 INFO L226 Difference]: Without dead ends: 110 [2019-01-07 18:25:02,472 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-01-07 18:25:02,473 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 110 states. [2019-01-07 18:25:05,357 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 110 to 100. [2019-01-07 18:25:05,357 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:25:05,357 INFO L82 GeneralOperation]: Start isEquivalent. First operand 110 states. Second operand 100 states. [2019-01-07 18:25:05,357 INFO L74 IsIncluded]: Start isIncluded. First operand 110 states. Second operand 100 states. [2019-01-07 18:25:05,357 INFO L87 Difference]: Start difference. First operand 110 states. Second operand 100 states. [2019-01-07 18:25:05,360 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:25:05,360 INFO L93 Difference]: Finished difference Result 110 states and 460 transitions. [2019-01-07 18:25:05,360 INFO L276 IsEmpty]: Start isEmpty. Operand 110 states and 460 transitions. [2019-01-07 18:25:05,360 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:25:05,361 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:25:05,361 INFO L74 IsIncluded]: Start isIncluded. First operand 100 states. Second operand 110 states. [2019-01-07 18:25:05,361 INFO L87 Difference]: Start difference. First operand 100 states. Second operand 110 states. [2019-01-07 18:25:05,363 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:25:05,363 INFO L93 Difference]: Finished difference Result 110 states and 460 transitions. [2019-01-07 18:25:05,363 INFO L276 IsEmpty]: Start isEmpty. Operand 110 states and 460 transitions. [2019-01-07 18:25:05,364 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:25:05,364 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:25:05,364 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:25:05,364 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:25:05,364 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 100 states. [2019-01-07 18:25:05,366 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 100 states to 100 states and 452 transitions. [2019-01-07 18:25:05,366 INFO L78 Accepts]: Start accepts. Automaton has 100 states and 452 transitions. Word has length 6 [2019-01-07 18:25:05,366 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:25:05,366 INFO L480 AbstractCegarLoop]: Abstraction has 100 states and 452 transitions. [2019-01-07 18:25:05,366 INFO L481 AbstractCegarLoop]: Interpolant automaton has 7 states. [2019-01-07 18:25:05,367 INFO L276 IsEmpty]: Start isEmpty. Operand 100 states and 452 transitions. [2019-01-07 18:25:05,367 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-07 18:25:05,367 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:25:05,367 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-07 18:25:05,367 INFO L423 AbstractCegarLoop]: === Iteration 34 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:25:05,367 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:25:05,367 INFO L82 PathProgramCache]: Analyzing trace with hash 893472132, now seen corresponding path program 1 times [2019-01-07 18:25:05,367 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:25:05,368 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:25:05,368 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:25:05,368 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:25:05,368 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:25:05,372 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:25:05,680 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-01-07 18:25:05,681 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-01-07 18:25:05,682 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-01-07 18:25:05,683 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-01-07 18:25:05,684 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-01-07 18:25:05,684 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-01-07 18:25:05,685 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 18:25:05,685 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:25:05,685 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:25:05,686 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-07 18:25:05,686 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [14], [20], [21] [2019-01-07 18:25:05,687 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:25:05,687 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:25:05,713 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:25:05,713 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-01-07 18:25:05,713 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:25:05,713 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:25:05,714 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:25:05,714 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 32 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 32 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:25:05,751 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:25:05,751 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:25:05,759 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:25:05,761 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:25:05,762 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:25:05,786 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:25:05,792 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:05,793 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 18:25:05,800 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:05,802 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:05,803 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 18:25:05,815 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:05,817 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:05,818 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:05,819 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 18:25:05,822 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:25:05,841 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:25:05,852 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:25:05,861 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:25:05,877 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:25:05,877 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 18:25:05,883 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:25:05,883 WARN L385 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-01-07 18:25:05,883 WARN L386 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-01-07 18:25:05,928 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:05,929 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:05,931 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:05,932 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:05,934 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:05,935 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:05,936 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:05,937 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 18:25:05,969 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:25:06,004 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:25:06,005 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 18:25:06,048 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:25:06,049 WARN L385 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-01-07 18:25:06,049 WARN L386 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-01-07 18:25:06,095 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:06,097 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:06,098 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:06,099 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:06,101 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:06,102 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:06,103 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:06,104 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:06,105 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:25:06,108 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 59 [2019-01-07 18:25:06,110 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:25:06,141 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:25:06,142 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-07 18:25:06,165 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:25:06,165 WARN L385 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-01-07 18:25:06,165 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< 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-01-07 18:25:06,270 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:06,272 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:06,276 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:06,279 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:06,282 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:06,284 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:06,286 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:06,290 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:06,293 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:06,293 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 65 [2019-01-07 18:25:06,295 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:25:06,401 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:25:06,401 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-07 18:25:06,415 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:25:06,416 WARN L385 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-01-07 18:25:06,416 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< 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-01-07 18:25:06,510 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-01-07 18:25:06,513 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-01-07 18:25:06,515 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-01-07 18:25:06,518 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-01-07 18:25:06,522 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-01-07 18:25:06,523 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-01-07 18:25:06,523 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:25:06,524 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:25:06,571 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-01-07 18:25:06,572 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-01-07 18:25:06,573 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-01-07 18:25:06,574 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-01-07 18:25:06,575 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-01-07 18:25:06,578 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-01-07 18:25:06,578 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 2 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:25:06,597 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:25:06,598 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-07 18:25:06,598 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:25:06,598 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-07 18:25:06,598 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:25:06,598 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 18:25:06,619 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:25:06,620 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 18:25:06,620 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 18:25:06,620 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=61, Invalid=95, Unknown=0, NotChecked=0, Total=156 [2019-01-07 18:25:06,620 INFO L87 Difference]: Start difference. First operand 100 states and 452 transitions. Second operand 10 states. [2019-01-07 18:25:08,952 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:25:08,953 INFO L93 Difference]: Finished difference Result 153 states and 620 transitions. [2019-01-07 18:25:08,953 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-07 18:25:08,953 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-07 18:25:08,953 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:25:08,953 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:25:08,953 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 57 transitions. [2019-01-07 18:25:08,953 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:25:08,954 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 57 transitions. [2019-01-07 18:25:08,954 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 57 transitions. [2019-01-07 18:25:09,035 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 57 edges. 57 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:25:09,039 INFO L225 Difference]: With dead ends: 153 [2019-01-07 18:25:09,039 INFO L226 Difference]: Without dead ends: 152 [2019-01-07 18:25:09,039 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 3 SyntacticMatches, 1 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 45 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=89, Invalid=151, Unknown=0, NotChecked=0, Total=240 [2019-01-07 18:25:09,040 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 152 states. [2019-01-07 18:25:11,478 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 152 to 127. [2019-01-07 18:25:11,478 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:25:11,478 INFO L82 GeneralOperation]: Start isEquivalent. First operand 152 states. Second operand 127 states. [2019-01-07 18:25:11,478 INFO L74 IsIncluded]: Start isIncluded. First operand 152 states. Second operand 127 states. [2019-01-07 18:25:11,479 INFO L87 Difference]: Start difference. First operand 152 states. Second operand 127 states. [2019-01-07 18:25:11,483 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:25:11,483 INFO L93 Difference]: Finished difference Result 152 states and 617 transitions. [2019-01-07 18:25:11,483 INFO L276 IsEmpty]: Start isEmpty. Operand 152 states and 617 transitions. [2019-01-07 18:25:11,484 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:25:11,484 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:25:11,484 INFO L74 IsIncluded]: Start isIncluded. First operand 127 states. Second operand 152 states. [2019-01-07 18:25:11,484 INFO L87 Difference]: Start difference. First operand 127 states. Second operand 152 states. [2019-01-07 18:25:11,488 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:25:11,489 INFO L93 Difference]: Finished difference Result 152 states and 617 transitions. [2019-01-07 18:25:11,489 INFO L276 IsEmpty]: Start isEmpty. Operand 152 states and 617 transitions. [2019-01-07 18:25:11,489 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:25:11,489 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:25:11,489 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:25:11,490 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:25:11,490 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 127 states. [2019-01-07 18:25:11,493 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 127 states to 127 states and 589 transitions. [2019-01-07 18:25:11,493 INFO L78 Accepts]: Start accepts. Automaton has 127 states and 589 transitions. Word has length 6 [2019-01-07 18:25:11,494 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:25:11,494 INFO L480 AbstractCegarLoop]: Abstraction has 127 states and 589 transitions. [2019-01-07 18:25:11,494 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 18:25:11,494 INFO L276 IsEmpty]: Start isEmpty. Operand 127 states and 589 transitions. [2019-01-07 18:25:11,494 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-07 18:25:11,494 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:25:11,495 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-07 18:25:11,495 INFO L423 AbstractCegarLoop]: === Iteration 35 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:25:11,495 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:25:11,495 INFO L82 PathProgramCache]: Analyzing trace with hash 897235472, now seen corresponding path program 1 times [2019-01-07 18:25:11,495 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:25:11,496 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:25:11,496 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:25:11,496 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:25:11,496 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:25:11,500 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:25:11,744 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-01-07 18:25:11,745 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-01-07 18:25:11,746 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-01-07 18:25:11,747 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-01-07 18:25:11,748 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-01-07 18:25:11,748 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-01-07 18:25:11,749 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 18:25:11,749 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:25:11,749 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:25:11,749 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-07 18:25:11,750 INFO L207 CegarAbsIntRunner]: [0], [10], [16], [20], [22], [23] [2019-01-07 18:25:11,751 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:25:11,751 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:25:11,776 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:25:11,776 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-01-07 18:25:11,776 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:25:11,777 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:25:11,777 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:25:11,777 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 33 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 33 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:25:11,792 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:25:11,793 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:25:11,797 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:25:11,799 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:25:11,800 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:25:11,824 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 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-01-07 18:25:11,839 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-07 18:25:11,854 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:11,855 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 26 [2019-01-07 18:25:11,883 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:11,885 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:11,885 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 33 [2019-01-07 18:25:11,893 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:25:11,908 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:25:11,919 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:25:11,930 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:25:11,946 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:25:11,947 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:22, output treesize:27 [2019-01-07 18:25:11,952 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:25:11,952 WARN L385 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-01-07 18:25:11,952 WARN L386 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-01-07 18:25:12,025 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:12,027 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:12,028 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:12,029 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:12,030 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 34 [2019-01-07 18:25:12,037 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:25:12,058 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:25:12,058 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:22 [2019-01-07 18:25:14,082 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:25:14,082 WARN L385 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-01-07 18:25:14,082 WARN L386 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-01-07 18:25:14,162 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:14,164 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:14,165 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:14,166 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:14,167 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:14,168 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:25:14,169 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 28 treesize of output 41 [2019-01-07 18:25:14,174 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:25:14,198 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:25:14,199 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:34, output treesize:24 [2019-01-07 18:25:14,212 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:25:14,213 WARN L385 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-01-07 18:25:14,213 WARN L386 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-01-07 18:25:14,323 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-01-07 18:25:14,324 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-01-07 18:25:14,326 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-01-07 18:25:14,327 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-01-07 18:25:14,329 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-01-07 18:25:14,330 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-01-07 18:25:14,331 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:25:14,331 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:25:14,396 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-01-07 18:25:14,397 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-01-07 18:25:14,397 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-01-07 18:25:14,398 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-01-07 18:25:14,400 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-01-07 18:25:14,402 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-01-07 18:25:14,402 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:25:14,422 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:25:14,422 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 18:25:14,422 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:25:14,422 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-07 18:25:14,423 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:25:14,423 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 18:25:14,439 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:25:14,439 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 18:25:14,439 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 18:25:14,440 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=41, Invalid=69, Unknown=0, NotChecked=0, Total=110 [2019-01-07 18:25:14,440 INFO L87 Difference]: Start difference. First operand 127 states and 589 transitions. Second operand 8 states. [2019-01-07 18:25:18,313 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:25:18,314 INFO L93 Difference]: Finished difference Result 143 states and 607 transitions. [2019-01-07 18:25:18,314 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-07 18:25:18,314 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-07 18:25:18,314 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:25:18,314 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:25:18,314 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 42 transitions. [2019-01-07 18:25:18,314 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:25:18,315 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 42 transitions. [2019-01-07 18:25:18,315 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 42 transitions. [2019-01-07 18:25:18,371 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 42 edges. 42 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:25:18,374 INFO L225 Difference]: With dead ends: 143 [2019-01-07 18:25:18,375 INFO L226 Difference]: Without dead ends: 138 [2019-01-07 18:25:18,375 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 16 GetRequests, 4 SyntacticMatches, 1 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 30 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=59, Invalid=97, Unknown=0, NotChecked=0, Total=156 [2019-01-07 18:25:18,375 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 138 states. [2019-01-07 18:25:19,865 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 138 to 127. [2019-01-07 18:25:19,866 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:25:19,866 INFO L82 GeneralOperation]: Start isEquivalent. First operand 138 states. Second operand 127 states. [2019-01-07 18:25:19,866 INFO L74 IsIncluded]: Start isIncluded. First operand 138 states. Second operand 127 states. [2019-01-07 18:25:19,866 INFO L87 Difference]: Start difference. First operand 138 states. Second operand 127 states. [2019-01-07 18:25:19,870 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:25:19,870 INFO L93 Difference]: Finished difference Result 138 states and 601 transitions. [2019-01-07 18:25:19,871 INFO L276 IsEmpty]: Start isEmpty. Operand 138 states and 601 transitions. [2019-01-07 18:25:19,871 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:25:19,871 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:25:19,871 INFO L74 IsIncluded]: Start isIncluded. First operand 127 states. Second operand 138 states. [2019-01-07 18:25:19,872 INFO L87 Difference]: Start difference. First operand 127 states. Second operand 138 states. [2019-01-07 18:25:19,876 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:25:19,876 INFO L93 Difference]: Finished difference Result 138 states and 601 transitions. [2019-01-07 18:25:19,876 INFO L276 IsEmpty]: Start isEmpty. Operand 138 states and 601 transitions. [2019-01-07 18:25:19,876 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:25:19,876 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:25:19,877 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:25:19,877 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:25:19,877 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 127 states. [2019-01-07 18:25:19,880 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 127 states to 127 states and 588 transitions. [2019-01-07 18:25:19,880 INFO L78 Accepts]: Start accepts. Automaton has 127 states and 588 transitions. Word has length 6 [2019-01-07 18:25:19,880 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:25:19,880 INFO L480 AbstractCegarLoop]: Abstraction has 127 states and 588 transitions. [2019-01-07 18:25:19,880 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 18:25:19,880 INFO L276 IsEmpty]: Start isEmpty. Operand 127 states and 588 transitions. [2019-01-07 18:25:19,880 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-07 18:25:19,880 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:25:19,880 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-07 18:25:19,881 INFO L423 AbstractCegarLoop]: === Iteration 36 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:25:19,881 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:25:19,881 INFO L82 PathProgramCache]: Analyzing trace with hash 896931732, now seen corresponding path program 2 times [2019-01-07 18:25:19,881 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:25:19,881 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:25:19,882 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:25:19,882 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:25:19,882 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:25:19,886 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:25:20,342 WARN L181 SmtUtils]: Spent 169.00 ms on a formula simplification. DAG size of input: 26 DAG size of output: 13 [2019-01-07 18:25:20,471 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-01-07 18:25:20,472 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-01-07 18:25:20,473 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-01-07 18:25:20,474 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-01-07 18:25:20,475 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-01-07 18:25:20,475 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-01-07 18:25:20,476 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 18:25:20,476 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:25:20,476 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:25:20,476 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-07 18:25:20,477 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-07 18:25:20,477 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:25:20,477 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 34 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 34 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:25:20,487 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-07 18:25:20,487 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-07 18:25:20,493 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-07 18:25:20,493 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-07 18:25:20,496 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:25:20,496 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:25:20,518 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:25:20,532 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:20,533 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 18:25:20,546 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:20,548 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:20,549 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 18:25:20,566 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:20,568 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:20,569 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:20,570 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 18:25:20,575 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:25:20,593 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:25:20,606 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:25:20,616 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:25:20,635 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:25:20,635 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 18:25:20,641 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:25:20,641 WARN L385 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-01-07 18:25:20,641 WARN L386 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-01-07 18:25:20,706 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:20,707 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:20,708 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:20,710 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:20,711 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:20,712 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:20,713 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:20,714 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 18:25:20,720 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:25:20,753 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:25:20,754 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-07 18:25:20,768 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:25:20,768 WARN L385 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-01-07 18:25:20,768 WARN L386 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-01-07 18:25:20,843 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:20,844 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:20,845 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:20,847 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:20,848 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:20,849 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:20,850 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:20,851 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:20,853 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:20,853 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 67 [2019-01-07 18:25:20,859 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:25:20,895 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:25:20,896 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-07 18:25:22,904 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:25:22,904 WARN L385 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-01-07 18:25:22,904 WARN L386 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-01-07 18:25:22,980 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:22,981 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:22,983 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:22,984 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:22,985 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:22,986 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:22,987 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:22,988 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:22,990 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:22,991 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:22,991 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:25:22,992 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 77 [2019-01-07 18:25:22,997 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:25:23,039 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:25:23,039 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-07 18:25:25,056 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:25:25,056 WARN L385 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-01-07 18:25:25,056 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< 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-01-07 18:25:25,169 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-01-07 18:25:25,172 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-01-07 18:25:25,174 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-01-07 18:25:25,176 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-01-07 18:25:25,177 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-01-07 18:25:25,178 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-01-07 18:25:25,179 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:25:25,179 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:25:25,259 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-01-07 18:25:25,260 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-01-07 18:25:25,261 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-01-07 18:25:25,263 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-01-07 18:25:25,264 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-01-07 18:25:25,266 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-01-07 18:25:25,267 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 2 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:25:25,287 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:25:25,287 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-07 18:25:25,288 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:25:25,288 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-07 18:25:25,288 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:25:25,288 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 18:25:25,322 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:25:25,322 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 18:25:25,322 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 18:25:25,322 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=59, Invalid=97, Unknown=0, NotChecked=0, Total=156 [2019-01-07 18:25:25,323 INFO L87 Difference]: Start difference. First operand 127 states and 588 transitions. Second operand 10 states. [2019-01-07 18:25:30,288 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:25:30,289 INFO L93 Difference]: Finished difference Result 196 states and 812 transitions. [2019-01-07 18:25:30,289 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2019-01-07 18:25:30,289 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-07 18:25:30,289 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:25:30,289 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:25:30,289 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 66 transitions. [2019-01-07 18:25:30,290 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:25:30,290 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 66 transitions. [2019-01-07 18:25:30,290 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 66 transitions. [2019-01-07 18:25:30,393 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 66 edges. 66 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:25:30,399 INFO L225 Difference]: With dead ends: 196 [2019-01-07 18:25:30,399 INFO L226 Difference]: Without dead ends: 195 [2019-01-07 18:25:30,400 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 17 GetRequests, 3 SyntacticMatches, 1 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 40 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=77, Invalid=133, Unknown=0, NotChecked=0, Total=210 [2019-01-07 18:25:30,400 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 195 states. [2019-01-07 18:25:32,952 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 195 to 141. [2019-01-07 18:25:32,952 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:25:32,953 INFO L82 GeneralOperation]: Start isEquivalent. First operand 195 states. Second operand 141 states. [2019-01-07 18:25:32,953 INFO L74 IsIncluded]: Start isIncluded. First operand 195 states. Second operand 141 states. [2019-01-07 18:25:32,953 INFO L87 Difference]: Start difference. First operand 195 states. Second operand 141 states. [2019-01-07 18:25:32,958 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:25:32,958 INFO L93 Difference]: Finished difference Result 195 states and 809 transitions. [2019-01-07 18:25:32,959 INFO L276 IsEmpty]: Start isEmpty. Operand 195 states and 809 transitions. [2019-01-07 18:25:32,959 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:25:32,959 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:25:32,959 INFO L74 IsIncluded]: Start isIncluded. First operand 141 states. Second operand 195 states. [2019-01-07 18:25:32,960 INFO L87 Difference]: Start difference. First operand 141 states. Second operand 195 states. [2019-01-07 18:25:32,964 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:25:32,964 INFO L93 Difference]: Finished difference Result 195 states and 809 transitions. [2019-01-07 18:25:32,964 INFO L276 IsEmpty]: Start isEmpty. Operand 195 states and 809 transitions. [2019-01-07 18:25:32,965 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:25:32,965 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:25:32,965 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:25:32,965 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:25:32,965 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 141 states. [2019-01-07 18:25:32,968 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 141 states to 141 states and 664 transitions. [2019-01-07 18:25:32,968 INFO L78 Accepts]: Start accepts. Automaton has 141 states and 664 transitions. Word has length 6 [2019-01-07 18:25:32,968 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:25:32,968 INFO L480 AbstractCegarLoop]: Abstraction has 141 states and 664 transitions. [2019-01-07 18:25:32,968 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 18:25:32,968 INFO L276 IsEmpty]: Start isEmpty. Operand 141 states and 664 transitions. [2019-01-07 18:25:32,969 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-07 18:25:32,969 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:25:32,969 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-07 18:25:32,969 INFO L423 AbstractCegarLoop]: === Iteration 37 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:25:32,969 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:25:32,969 INFO L82 PathProgramCache]: Analyzing trace with hash 897162246, now seen corresponding path program 3 times [2019-01-07 18:25:32,970 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:25:32,970 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:25:32,970 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-07 18:25:32,970 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:25:32,970 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:25:32,974 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:25:33,705 WARN L181 SmtUtils]: Spent 361.00 ms on a formula simplification. DAG size of input: 41 DAG size of output: 21 [2019-01-07 18:25:33,833 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-01-07 18:25:33,834 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-01-07 18:25:33,835 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-01-07 18:25:33,836 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-01-07 18:25:33,836 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-01-07 18:25:33,837 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-01-07 18:25:33,837 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:25:33,838 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:25:33,838 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:25:33,838 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-07 18:25:33,838 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-07 18:25:33,838 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:25:33,838 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 35 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 35 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:25:33,848 INFO L103 rtionOrderModulation]: Keeping assertion order TERMS_WITH_SMALL_CONSTANTS_FIRST [2019-01-07 18:25:33,848 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder TERMS_WITH_SMALL_CONSTANTS_FIRST (IT: FPandBP) [2019-01-07 18:25:33,852 INFO L249 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2019-01-07 18:25:33,853 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-07 18:25:33,856 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:25:33,856 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:25:33,870 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:25:33,878 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:33,879 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 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-01-07 18:25:33,890 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:33,892 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:33,893 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 18:25:33,908 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:33,909 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:33,911 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:33,911 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 18:25:33,916 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:25:33,935 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:25:33,946 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:25:33,956 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:25:33,973 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:25:33,973 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-07 18:25:33,977 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:25:33,977 WARN L385 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-01-07 18:25:33,977 WARN L386 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-01-07 18:25:34,028 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:34,030 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:34,031 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:34,035 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:34,036 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:34,037 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:34,038 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:34,039 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 18:25:34,043 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:25:34,073 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:25:34,073 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-07 18:25:34,136 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:25:34,137 WARN L385 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-01-07 18:25:34,137 WARN L386 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-01-07 18:25:34,194 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:34,196 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:34,197 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:34,198 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:34,200 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:34,201 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:34,202 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:34,204 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:34,205 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:34,206 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 67 [2019-01-07 18:25:34,210 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:25:34,249 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:25:34,249 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-07 18:25:36,280 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:25:36,280 WARN L385 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-01-07 18:25:36,280 WARN L386 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-01-07 18:25:36,351 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:36,353 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:36,354 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:36,355 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:36,357 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:36,358 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:36,359 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:36,360 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:36,361 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:36,362 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:36,363 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:36,364 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:25:36,365 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 83 [2019-01-07 18:25:36,370 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:25:36,411 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:25:36,411 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-07 18:25:36,418 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:25:36,418 WARN L385 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-01-07 18:25:36,418 WARN L386 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-01-07 18:25:36,479 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:36,480 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:36,482 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:36,483 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:36,484 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:36,486 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:36,487 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:36,488 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:36,493 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:36,494 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:36,495 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:36,495 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:25:36,496 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 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 78 [2019-01-07 18:25:36,500 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:25:36,540 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:25:36,541 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-07 18:25:38,882 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:25:38,882 WARN L385 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-01-07 18:25:38,882 WARN L386 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-01-07 18:25:38,959 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-01-07 18:25:38,961 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-01-07 18:25:38,963 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-01-07 18:25:38,966 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-01-07 18:25:38,969 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-01-07 18:25:38,970 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-01-07 18:25:38,970 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:25:38,970 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:25:39,061 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-01-07 18:25:39,063 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-01-07 18:25:39,064 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-01-07 18:25:39,066 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-01-07 18:25:39,069 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-01-07 18:25:39,071 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-01-07 18:25:39,071 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 6 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:25:39,090 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:25:39,090 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5, 5] total 14 [2019-01-07 18:25:39,091 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:25:39,091 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-07 18:25:39,091 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:25:39,091 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-01-07 18:25:39,110 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:25:39,110 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-01-07 18:25:39,111 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-01-07 18:25:39,111 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=98, Invalid=142, Unknown=0, NotChecked=0, Total=240 [2019-01-07 18:25:39,111 INFO L87 Difference]: Start difference. First operand 141 states and 664 transitions. Second operand 12 states. [2019-01-07 18:25:43,522 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:25:43,522 INFO L93 Difference]: Finished difference Result 205 states and 871 transitions. [2019-01-07 18:25:43,522 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2019-01-07 18:25:43,522 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-07 18:25:43,522 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:25:43,522 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-07 18:25:43,523 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 66 transitions. [2019-01-07 18:25:43,523 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-07 18:25:43,523 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 66 transitions. [2019-01-07 18:25:43,523 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 66 transitions. [2019-01-07 18:25:43,631 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 66 edges. 66 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:25:43,636 INFO L225 Difference]: With dead ends: 205 [2019-01-07 18:25:43,636 INFO L226 Difference]: Without dead ends: 197 [2019-01-07 18:25:43,637 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 1 SyntacticMatches, 0 SemanticMatches, 17 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 90 ImplicationChecksByTransitivity, 1.1s TimeCoverageRelationStatistics Valid=131, Invalid=211, Unknown=0, NotChecked=0, Total=342 [2019-01-07 18:25:43,637 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 197 states. [2019-01-07 18:25:47,399 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 197 to 149. [2019-01-07 18:25:47,399 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:25:47,399 INFO L82 GeneralOperation]: Start isEquivalent. First operand 197 states. Second operand 149 states. [2019-01-07 18:25:47,399 INFO L74 IsIncluded]: Start isIncluded. First operand 197 states. Second operand 149 states. [2019-01-07 18:25:47,399 INFO L87 Difference]: Start difference. First operand 197 states. Second operand 149 states. [2019-01-07 18:25:47,404 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:25:47,404 INFO L93 Difference]: Finished difference Result 197 states and 852 transitions. [2019-01-07 18:25:47,405 INFO L276 IsEmpty]: Start isEmpty. Operand 197 states and 852 transitions. [2019-01-07 18:25:47,405 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:25:47,405 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:25:47,405 INFO L74 IsIncluded]: Start isIncluded. First operand 149 states. Second operand 197 states. [2019-01-07 18:25:47,405 INFO L87 Difference]: Start difference. First operand 149 states. Second operand 197 states. [2019-01-07 18:25:47,410 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:25:47,410 INFO L93 Difference]: Finished difference Result 197 states and 852 transitions. [2019-01-07 18:25:47,410 INFO L276 IsEmpty]: Start isEmpty. Operand 197 states and 852 transitions. [2019-01-07 18:25:47,411 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:25:47,411 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:25:47,411 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:25:47,411 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:25:47,411 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 149 states. [2019-01-07 18:25:47,414 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 149 states to 149 states and 702 transitions. [2019-01-07 18:25:47,415 INFO L78 Accepts]: Start accepts. Automaton has 149 states and 702 transitions. Word has length 6 [2019-01-07 18:25:47,415 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:25:47,415 INFO L480 AbstractCegarLoop]: Abstraction has 149 states and 702 transitions. [2019-01-07 18:25:47,415 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-01-07 18:25:47,415 INFO L276 IsEmpty]: Start isEmpty. Operand 149 states and 702 transitions. [2019-01-07 18:25:47,415 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-07 18:25:47,415 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:25:47,415 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-07 18:25:47,415 INFO L423 AbstractCegarLoop]: === Iteration 38 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:25:47,416 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:25:47,416 INFO L82 PathProgramCache]: Analyzing trace with hash 900929556, now seen corresponding path program 1 times [2019-01-07 18:25:47,416 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:25:47,416 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:25:47,416 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-07 18:25:47,416 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:25:47,417 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:25:47,419 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:25:47,631 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-01-07 18:25:47,632 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-01-07 18:25:47,633 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-01-07 18:25:47,634 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-01-07 18:25:47,634 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-01-07 18:25:47,635 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-01-07 18:25:47,635 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:25:47,636 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:25:47,636 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:25:47,636 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-07 18:25:47,636 INFO L207 CegarAbsIntRunner]: [0], [14], [16], [20], [22], [23] [2019-01-07 18:25:47,637 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:25:47,637 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:25:47,647 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:25:47,647 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-01-07 18:25:47,647 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:25:47,647 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:25:47,647 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:25:47,648 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 36 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 36 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:25:47,656 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:25:47,656 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:25:47,660 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:25:47,663 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:25:47,664 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:25:47,673 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:25:47,679 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-07 18:25:47,689 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-01-07 18:25:47,700 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:47,701 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 1 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 25 [2019-01-07 18:25:47,704 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:25:47,713 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:25:47,723 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:25:47,733 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:25:47,745 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:25:47,745 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:19, output treesize:24 [2019-01-07 18:25:47,750 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:25:47,750 WARN L385 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-01-07 18:25:47,750 WARN L386 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-01-07 18:25:47,792 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:47,793 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:47,794 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 21 [2019-01-07 18:25:47,796 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:25:47,804 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:25:47,804 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:24, output treesize:14 [2019-01-07 18:25:47,815 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:25:47,815 WARN L385 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-01-07 18:25:47,815 WARN L386 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-01-07 18:25:47,845 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:47,846 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:47,847 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:47,849 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:47,849 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 4 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 27 [2019-01-07 18:25:47,884 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:25:47,938 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:25:47,939 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:24, output treesize:14 [2019-01-07 18:25:49,992 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:25:49,993 WARN L385 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-01-07 18:25:49,993 WARN L386 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-01-07 18:25:50,037 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-01-07 18:25:50,038 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-01-07 18:25:50,039 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-01-07 18:25:50,040 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-01-07 18:25:50,041 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-01-07 18:25:50,042 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-01-07 18:25:50,042 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:25:50,042 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:25:50,083 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-01-07 18:25:50,084 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-01-07 18:25:50,084 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-01-07 18:25:50,102 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-01-07 18:25:50,117 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-01-07 18:25:50,131 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-01-07 18:25:50,131 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:25:50,162 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:25:50,162 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 18:25:50,162 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:25:50,163 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-07 18:25:50,163 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:25:50,163 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 18:25:50,191 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:25:50,191 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 18:25:50,191 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 18:25:50,192 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-01-07 18:25:50,192 INFO L87 Difference]: Start difference. First operand 149 states and 702 transitions. Second operand 8 states. [2019-01-07 18:25:52,735 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:25:52,735 INFO L93 Difference]: Finished difference Result 165 states and 720 transitions. [2019-01-07 18:25:52,736 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-07 18:25:52,736 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-07 18:25:52,736 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:25:52,736 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:25:52,736 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 46 transitions. [2019-01-07 18:25:52,736 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:25:52,737 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 46 transitions. [2019-01-07 18:25:52,737 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 46 transitions. [2019-01-07 18:25:52,791 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 46 edges. 46 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:25:52,796 INFO L225 Difference]: With dead ends: 165 [2019-01-07 18:25:52,796 INFO L226 Difference]: Without dead ends: 164 [2019-01-07 18:25:52,796 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 4 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 28 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=53, Invalid=79, Unknown=0, NotChecked=0, Total=132 [2019-01-07 18:25:52,797 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 164 states. [2019-01-07 18:25:56,162 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 164 to 149. [2019-01-07 18:25:56,162 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:25:56,162 INFO L82 GeneralOperation]: Start isEquivalent. First operand 164 states. Second operand 149 states. [2019-01-07 18:25:56,162 INFO L74 IsIncluded]: Start isIncluded. First operand 164 states. Second operand 149 states. [2019-01-07 18:25:56,162 INFO L87 Difference]: Start difference. First operand 164 states. Second operand 149 states. [2019-01-07 18:25:56,167 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:25:56,167 INFO L93 Difference]: Finished difference Result 164 states and 718 transitions. [2019-01-07 18:25:56,168 INFO L276 IsEmpty]: Start isEmpty. Operand 164 states and 718 transitions. [2019-01-07 18:25:56,168 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:25:56,168 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:25:56,168 INFO L74 IsIncluded]: Start isIncluded. First operand 149 states. Second operand 164 states. [2019-01-07 18:25:56,168 INFO L87 Difference]: Start difference. First operand 149 states. Second operand 164 states. [2019-01-07 18:25:56,173 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:25:56,174 INFO L93 Difference]: Finished difference Result 164 states and 718 transitions. [2019-01-07 18:25:56,174 INFO L276 IsEmpty]: Start isEmpty. Operand 164 states and 718 transitions. [2019-01-07 18:25:56,174 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:25:56,174 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:25:56,174 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:25:56,175 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:25:56,175 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 149 states. [2019-01-07 18:25:56,178 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 149 states to 149 states and 702 transitions. [2019-01-07 18:25:56,179 INFO L78 Accepts]: Start accepts. Automaton has 149 states and 702 transitions. Word has length 6 [2019-01-07 18:25:56,179 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:25:56,179 INFO L480 AbstractCegarLoop]: Abstraction has 149 states and 702 transitions. [2019-01-07 18:25:56,179 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 18:25:56,179 INFO L276 IsEmpty]: Start isEmpty. Operand 149 states and 702 transitions. [2019-01-07 18:25:56,179 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-07 18:25:56,179 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:25:56,179 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-07 18:25:56,180 INFO L423 AbstractCegarLoop]: === Iteration 39 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:25:56,180 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:25:56,180 INFO L82 PathProgramCache]: Analyzing trace with hash 900750810, now seen corresponding path program 1 times [2019-01-07 18:25:56,180 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:25:56,181 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:25:56,181 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:25:56,181 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:25:56,181 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:25:56,184 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:25:56,588 WARN L181 SmtUtils]: Spent 221.00 ms on a formula simplification. DAG size of input: 14 DAG size of output: 9 [2019-01-07 18:25:57,107 WARN L181 SmtUtils]: Spent 285.00 ms on a formula simplification. DAG size of input: 18 DAG size of output: 13 [2019-01-07 18:25:57,450 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-01-07 18:25:57,451 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-01-07 18:25:57,456 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-01-07 18:25:57,456 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-01-07 18:25:57,458 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-01-07 18:25:57,460 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-01-07 18:25:57,460 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:25:57,460 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:25:57,460 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:25:57,460 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-07 18:25:57,460 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [20], [22], [23] [2019-01-07 18:25:57,461 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:25:57,461 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:25:57,481 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:25:57,481 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-01-07 18:25:57,482 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:25:57,482 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:25:57,482 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:25:57,482 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 37 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 37 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:25:57,492 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:25:57,492 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:25:57,497 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:25:57,500 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:25:57,501 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:25:57,543 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:25:57,564 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-07 18:25:57,592 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:57,593 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 26 [2019-01-07 18:25:57,628 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:57,631 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:57,631 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 33 [2019-01-07 18:25:57,643 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:25:57,675 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:25:57,692 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:25:57,716 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:25:57,744 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:25:57,744 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:22, output treesize:27 [2019-01-07 18:25:57,761 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:25:57,761 WARN L385 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-01-07 18:25:57,762 WARN L386 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-01-07 18:25:57,914 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:57,915 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:57,916 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:57,917 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:57,918 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 34 [2019-01-07 18:25:57,926 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:25:57,950 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:25:57,951 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:22 [2019-01-07 18:25:57,958 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:25:57,959 WARN L385 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-01-07 18:25:57,959 WARN L386 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-01-07 18:25:58,032 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:58,034 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:58,035 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:58,036 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:58,037 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:58,038 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:25:58,039 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 48 [2019-01-07 18:25:58,074 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:25:58,104 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:25:58,104 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:32, output treesize:22 [2019-01-07 18:26:00,334 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:26:00,334 WARN L385 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-01-07 18:26:00,334 WARN L386 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-01-07 18:26:00,467 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-01-07 18:26:00,469 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-01-07 18:26:00,471 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-01-07 18:26:00,472 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-01-07 18:26:00,473 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-01-07 18:26:00,474 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-01-07 18:26:00,474 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:26:00,475 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:26:00,551 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-01-07 18:26:00,551 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-01-07 18:26:00,552 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-01-07 18:26:00,553 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-01-07 18:26:00,554 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-01-07 18:26:00,556 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-01-07 18:26:00,557 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:26:00,577 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:26:00,577 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 18:26:00,577 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:26:00,578 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-07 18:26:00,578 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:26:00,578 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 18:26:00,594 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:26:00,594 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 18:26:00,594 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 18:26:00,594 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-01-07 18:26:00,595 INFO L87 Difference]: Start difference. First operand 149 states and 702 transitions. Second operand 8 states. [2019-01-07 18:26:03,635 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:26:03,636 INFO L93 Difference]: Finished difference Result 174 states and 765 transitions. [2019-01-07 18:26:03,636 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-07 18:26:03,636 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-07 18:26:03,636 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:26:03,636 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:26:03,636 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 46 transitions. [2019-01-07 18:26:03,636 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:26:03,637 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 46 transitions. [2019-01-07 18:26:03,637 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 46 transitions. [2019-01-07 18:26:03,697 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 46 edges. 46 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:26:03,701 INFO L225 Difference]: With dead ends: 174 [2019-01-07 18:26:03,701 INFO L226 Difference]: Without dead ends: 173 [2019-01-07 18:26:03,702 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 15 GetRequests, 5 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 28 ImplicationChecksByTransitivity, 1.3s TimeCoverageRelationStatistics Valid=53, Invalid=79, Unknown=0, NotChecked=0, Total=132 [2019-01-07 18:26:03,702 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 173 states. [2019-01-07 18:26:06,711 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 173 to 158. [2019-01-07 18:26:06,711 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:26:06,711 INFO L82 GeneralOperation]: Start isEquivalent. First operand 173 states. Second operand 158 states. [2019-01-07 18:26:06,711 INFO L74 IsIncluded]: Start isIncluded. First operand 173 states. Second operand 158 states. [2019-01-07 18:26:06,711 INFO L87 Difference]: Start difference. First operand 173 states. Second operand 158 states. [2019-01-07 18:26:06,715 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:26:06,715 INFO L93 Difference]: Finished difference Result 173 states and 763 transitions. [2019-01-07 18:26:06,716 INFO L276 IsEmpty]: Start isEmpty. Operand 173 states and 763 transitions. [2019-01-07 18:26:06,716 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:26:06,716 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:26:06,716 INFO L74 IsIncluded]: Start isIncluded. First operand 158 states. Second operand 173 states. [2019-01-07 18:26:06,716 INFO L87 Difference]: Start difference. First operand 158 states. Second operand 173 states. [2019-01-07 18:26:06,720 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:26:06,720 INFO L93 Difference]: Finished difference Result 173 states and 763 transitions. [2019-01-07 18:26:06,721 INFO L276 IsEmpty]: Start isEmpty. Operand 173 states and 763 transitions. [2019-01-07 18:26:06,721 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:26:06,721 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:26:06,721 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:26:06,721 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:26:06,721 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 158 states. [2019-01-07 18:26:06,725 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 158 states to 158 states and 747 transitions. [2019-01-07 18:26:06,725 INFO L78 Accepts]: Start accepts. Automaton has 158 states and 747 transitions. Word has length 6 [2019-01-07 18:26:06,725 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:26:06,725 INFO L480 AbstractCegarLoop]: Abstraction has 158 states and 747 transitions. [2019-01-07 18:26:06,725 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 18:26:06,725 INFO L276 IsEmpty]: Start isEmpty. Operand 158 states and 747 transitions. [2019-01-07 18:26:06,725 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-07 18:26:06,725 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:26:06,726 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1] [2019-01-07 18:26:06,726 INFO L423 AbstractCegarLoop]: === Iteration 40 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:26:06,726 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:26:06,726 INFO L82 PathProgramCache]: Analyzing trace with hash -2078696478, now seen corresponding path program 1 times [2019-01-07 18:26:06,726 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:26:06,727 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:26:06,727 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:26:06,727 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:26:06,727 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:26:06,729 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:26:06,792 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-01-07 18:26:06,793 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-01-07 18:26:06,794 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-01-07 18:26:06,794 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-01-07 18:26:06,795 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-01-07 18:26:06,795 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-01-07 18:26:06,796 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-01-07 18:26:06,796 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:26:06,796 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:26:06,796 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:26:06,797 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-01-07 18:26:06,797 INFO L207 CegarAbsIntRunner]: [0], [16], [20], [22], [24], [25] [2019-01-07 18:26:06,799 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:26:06,799 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:26:06,821 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:26:06,821 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-01-07 18:26:06,822 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:26:06,822 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:26:06,822 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:26:06,822 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 38 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 38 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:26:06,831 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:26:06,831 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:26:06,835 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:26:06,840 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:26:06,841 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:26:06,863 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:26:06,906 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-07 18:26:07,044 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-01-07 18:26:07,063 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 0 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 21 [2019-01-07 18:26:07,086 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:26:07,188 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:26:07,199 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:26:07,209 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:26:07,221 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:26:07,222 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 4 variables, input treesize:15, output treesize:21 [2019-01-07 18:26:07,226 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:26:07,227 WARN L385 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-01-07 18:26:07,227 WARN L386 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-01-07 18:26:07,246 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:07,247 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 16 treesize of output 5 [2019-01-07 18:26:07,250 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:26:07,252 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:26:07,253 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:16, output treesize:5 [2019-01-07 18:26:07,264 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:26:07,264 WARN L385 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-01-07 18:26:07,264 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) [2019-01-07 18:26:07,284 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:07,285 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 5 [2019-01-07 18:26:07,287 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:26:07,290 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:26:07,290 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:18, output treesize:5 [2019-01-07 18:26:07,300 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:26:07,300 WARN L385 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-01-07 18:26:07,300 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (= (select |#memory_int| ULTIMATE.start_main_p4) (- 2)) [2019-01-07 18:26:07,317 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-01-07 18:26:07,318 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-01-07 18:26:07,319 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-01-07 18:26:07,322 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-01-07 18:26:07,322 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-01-07 18:26:07,323 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-01-07 18:26:07,323 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-01-07 18:26:07,323 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:26:07,323 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:26:07,368 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-01-07 18:26:07,368 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-01-07 18:26:07,369 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-01-07 18:26:07,369 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-01-07 18:26:07,370 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-01-07 18:26:07,371 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-01-07 18:26:07,373 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-01-07 18:26:07,373 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 3 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:26:07,393 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-01-07 18:26:07,393 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [3] imperfect sequences [3, 3] total 8 [2019-01-07 18:26:07,393 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-07 18:26:07,393 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 7 [2019-01-07 18:26:07,393 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:26:07,394 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states. [2019-01-07 18:26:07,402 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 7 edges. 7 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:26:07,403 INFO L459 AbstractCegarLoop]: Interpolant automaton has 5 states [2019-01-07 18:26:07,403 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2019-01-07 18:26:07,403 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=39, Invalid=51, Unknown=0, NotChecked=0, Total=90 [2019-01-07 18:26:07,403 INFO L87 Difference]: Start difference. First operand 158 states and 747 transitions. Second operand 5 states. [2019-01-07 18:26:15,509 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:26:15,510 INFO L93 Difference]: Finished difference Result 357 states and 1628 transitions. [2019-01-07 18:26:15,510 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-07 18:26:15,510 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 7 [2019-01-07 18:26:15,510 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:26:15,510 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2019-01-07 18:26:15,510 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 45 transitions. [2019-01-07 18:26:15,511 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2019-01-07 18:26:15,511 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 45 transitions. [2019-01-07 18:26:15,511 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 45 transitions. [2019-01-07 18:26:15,558 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 45 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:26:15,569 INFO L225 Difference]: With dead ends: 357 [2019-01-07 18:26:15,569 INFO L226 Difference]: Without dead ends: 353 [2019-01-07 18:26:15,569 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 15 GetRequests, 6 SyntacticMatches, 1 SemanticMatches, 8 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 18 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=39, Invalid=51, Unknown=0, NotChecked=0, Total=90 [2019-01-07 18:26:15,569 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 353 states. [2019-01-07 18:26:25,254 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 353 to 329. [2019-01-07 18:26:25,254 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:26:25,255 INFO L82 GeneralOperation]: Start isEquivalent. First operand 353 states. Second operand 329 states. [2019-01-07 18:26:25,255 INFO L74 IsIncluded]: Start isIncluded. First operand 353 states. Second operand 329 states. [2019-01-07 18:26:25,255 INFO L87 Difference]: Start difference. First operand 353 states. Second operand 329 states. [2019-01-07 18:26:25,267 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:26:25,267 INFO L93 Difference]: Finished difference Result 353 states and 1611 transitions. [2019-01-07 18:26:25,267 INFO L276 IsEmpty]: Start isEmpty. Operand 353 states and 1611 transitions. [2019-01-07 18:26:25,268 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:26:25,268 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:26:25,268 INFO L74 IsIncluded]: Start isIncluded. First operand 329 states. Second operand 353 states. [2019-01-07 18:26:25,268 INFO L87 Difference]: Start difference. First operand 329 states. Second operand 353 states. [2019-01-07 18:26:25,279 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:26:25,279 INFO L93 Difference]: Finished difference Result 353 states and 1611 transitions. [2019-01-07 18:26:25,279 INFO L276 IsEmpty]: Start isEmpty. Operand 353 states and 1611 transitions. [2019-01-07 18:26:25,279 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:26:25,280 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:26:25,280 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:26:25,280 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:26:25,280 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 329 states. [2019-01-07 18:26:25,290 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 329 states to 329 states and 1593 transitions. [2019-01-07 18:26:25,290 INFO L78 Accepts]: Start accepts. Automaton has 329 states and 1593 transitions. Word has length 7 [2019-01-07 18:26:25,290 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:26:25,290 INFO L480 AbstractCegarLoop]: Abstraction has 329 states and 1593 transitions. [2019-01-07 18:26:25,290 INFO L481 AbstractCegarLoop]: Interpolant automaton has 5 states. [2019-01-07 18:26:25,290 INFO L276 IsEmpty]: Start isEmpty. Operand 329 states and 1593 transitions. [2019-01-07 18:26:25,291 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-07 18:26:25,291 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:26:25,291 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-07 18:26:25,291 INFO L423 AbstractCegarLoop]: === Iteration 41 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:26:25,291 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:26:25,291 INFO L82 PathProgramCache]: Analyzing trace with hash -2087931688, now seen corresponding path program 1 times [2019-01-07 18:26:25,292 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:26:25,292 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:26:25,292 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:26:25,292 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:26:25,292 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:26:25,295 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:26:25,417 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-01-07 18:26:25,418 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-01-07 18:26:25,419 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-01-07 18:26:25,419 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-01-07 18:26:25,420 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-01-07 18:26:25,420 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-01-07 18:26:25,421 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-01-07 18:26:25,422 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:26:25,422 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:26:25,422 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:26:25,422 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-01-07 18:26:25,423 INFO L207 CegarAbsIntRunner]: [0], [6], [16], [20], [22], [24], [25] [2019-01-07 18:26:25,424 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:26:25,424 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:26:25,433 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:26:25,433 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-01-07 18:26:25,433 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:26:25,433 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:26:25,434 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:26:25,434 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 39 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 39 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:26:25,443 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:26:25,443 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:26:25,447 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:26:25,451 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:26:25,451 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:26:25,477 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:26:25,488 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:25,489 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 18:26:25,506 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:25,507 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:25,508 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 18:26:25,524 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:25,525 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:25,526 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:25,527 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 18:26:25,531 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:26:25,549 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:26:25,560 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:26:25,570 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:26:25,587 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:26:25,587 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-01-07 18:26:25,593 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:26:25,593 WARN L385 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-01-07 18:26:25,594 WARN L386 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-01-07 18:26:25,646 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:25,648 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:25,649 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:25,650 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:25,651 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:25,653 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:25,654 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:25,655 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 18:26:25,659 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:26:25,688 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:26:25,689 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 18:26:25,696 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:26:25,696 WARN L385 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-01-07 18:26:25,696 WARN L386 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-01-07 18:26:25,747 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:25,748 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:25,749 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:25,751 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:25,752 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:25,753 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:25,754 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:25,756 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:25,757 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:25,758 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 59 [2019-01-07 18:26:25,763 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:26:25,797 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:26:25,797 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-07 18:26:25,811 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:26:25,812 WARN L385 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-01-07 18:26:25,812 WARN L386 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-01-07 18:26:25,895 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-01-07 18:26:25,897 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-01-07 18:26:25,899 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-01-07 18:26:25,899 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-01-07 18:26:25,900 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-01-07 18:26:25,900 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-01-07 18:26:25,901 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-01-07 18:26:25,901 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:26:25,902 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:26:25,950 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-01-07 18:26:25,950 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-01-07 18:26:25,951 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-01-07 18:26:25,951 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-01-07 18:26:25,952 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-01-07 18:26:25,953 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-01-07 18:26:25,955 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-01-07 18:26:25,956 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:26:25,976 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:26:25,976 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 18:26:25,976 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:26:25,977 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 7 [2019-01-07 18:26:25,977 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:26:25,977 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 18:26:26,000 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:26:26,000 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 18:26:26,000 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 18:26:26,001 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-01-07 18:26:26,001 INFO L87 Difference]: Start difference. First operand 329 states and 1593 transitions. Second operand 8 states. [2019-01-07 18:26:34,190 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:26:34,191 INFO L93 Difference]: Finished difference Result 348 states and 1627 transitions. [2019-01-07 18:26:34,191 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-07 18:26:34,191 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 7 [2019-01-07 18:26:34,191 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:26:34,191 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:26:34,191 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 45 transitions. [2019-01-07 18:26:34,192 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:26:34,192 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 45 transitions. [2019-01-07 18:26:34,192 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 45 transitions. [2019-01-07 18:26:34,250 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 45 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:26:34,259 INFO L225 Difference]: With dead ends: 348 [2019-01-07 18:26:34,259 INFO L226 Difference]: Without dead ends: 338 [2019-01-07 18:26:34,259 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-01-07 18:26:34,260 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 338 states. [2019-01-07 18:26:44,122 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 338 to 333. [2019-01-07 18:26:44,123 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:26:44,123 INFO L82 GeneralOperation]: Start isEquivalent. First operand 338 states. Second operand 333 states. [2019-01-07 18:26:44,123 INFO L74 IsIncluded]: Start isIncluded. First operand 338 states. Second operand 333 states. [2019-01-07 18:26:44,123 INFO L87 Difference]: Start difference. First operand 338 states. Second operand 333 states. [2019-01-07 18:26:44,134 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:26:44,134 INFO L93 Difference]: Finished difference Result 338 states and 1608 transitions. [2019-01-07 18:26:44,135 INFO L276 IsEmpty]: Start isEmpty. Operand 338 states and 1608 transitions. [2019-01-07 18:26:44,135 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:26:44,135 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:26:44,135 INFO L74 IsIncluded]: Start isIncluded. First operand 333 states. Second operand 338 states. [2019-01-07 18:26:44,135 INFO L87 Difference]: Start difference. First operand 333 states. Second operand 338 states. [2019-01-07 18:26:44,146 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:26:44,146 INFO L93 Difference]: Finished difference Result 338 states and 1608 transitions. [2019-01-07 18:26:44,146 INFO L276 IsEmpty]: Start isEmpty. Operand 338 states and 1608 transitions. [2019-01-07 18:26:44,147 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:26:44,147 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:26:44,147 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:26:44,147 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:26:44,147 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 333 states. [2019-01-07 18:26:44,157 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 333 states to 333 states and 1604 transitions. [2019-01-07 18:26:44,157 INFO L78 Accepts]: Start accepts. Automaton has 333 states and 1604 transitions. Word has length 7 [2019-01-07 18:26:44,157 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:26:44,157 INFO L480 AbstractCegarLoop]: Abstraction has 333 states and 1604 transitions. [2019-01-07 18:26:44,157 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 18:26:44,157 INFO L276 IsEmpty]: Start isEmpty. Operand 333 states and 1604 transitions. [2019-01-07 18:26:44,158 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-07 18:26:44,158 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:26:44,158 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-07 18:26:44,158 INFO L423 AbstractCegarLoop]: === Iteration 42 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:26:44,158 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:26:44,158 INFO L82 PathProgramCache]: Analyzing trace with hash -2088231584, now seen corresponding path program 1 times [2019-01-07 18:26:44,158 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:26:44,159 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:26:44,159 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:26:44,159 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:26:44,159 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:26:44,162 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:26:44,409 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-01-07 18:26:44,410 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-01-07 18:26:44,411 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-01-07 18:26:44,412 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-01-07 18:26:44,413 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-01-07 18:26:44,413 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-01-07 18:26:44,414 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-01-07 18:26:44,414 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 18:26:44,415 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:26:44,415 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:26:44,415 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-01-07 18:26:44,415 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [16], [20], [22], [23] [2019-01-07 18:26:44,416 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:26:44,416 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:26:44,425 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:26:44,425 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-01-07 18:26:44,426 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:26:44,426 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:26:44,426 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:26:44,426 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 40 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 40 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:26:44,435 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:26:44,436 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:26:44,442 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:26:44,445 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:26:44,445 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:26:44,457 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:26:44,464 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:44,465 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 18:26:44,474 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:44,476 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:44,476 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 18:26:44,489 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:44,490 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:44,491 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:44,492 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 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-01-07 18:26:44,495 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:26:44,515 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:26:44,526 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:26:44,534 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:26:44,550 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:26:44,550 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-07 18:26:44,556 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:26:44,556 WARN L385 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-01-07 18:26:44,557 WARN L386 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-01-07 18:26:44,603 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:44,604 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:44,605 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:44,606 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:44,608 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:44,609 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:44,610 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:44,611 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 18:26:44,614 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:26:44,643 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:26:44,643 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-07 18:26:45,810 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:26:45,810 WARN L385 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-01-07 18:26:45,810 WARN L386 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-01-07 18:26:45,928 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:45,929 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:45,930 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:45,932 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:45,933 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:45,934 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:45,936 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:45,937 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:45,938 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:45,939 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 59 [2019-01-07 18:26:45,942 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:26:45,976 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:26:45,976 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-07 18:26:46,263 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:26:46,264 WARN L385 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-01-07 18:26:46,264 WARN L386 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-01-07 18:26:46,320 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:46,321 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:46,322 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:46,324 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:46,325 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:46,326 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:46,327 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:46,329 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:46,329 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:26:46,330 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:26:46,331 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 72 [2019-01-07 18:26:46,334 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:26:46,370 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:26:46,371 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:30 [2019-01-07 18:26:46,381 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:26:46,381 WARN L385 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-01-07 18:26:46,381 WARN L386 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)) (= (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-01-07 18:26:46,451 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-01-07 18:26:46,453 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-01-07 18:26:46,454 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-01-07 18:26:46,456 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-01-07 18:26:46,457 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-01-07 18:26:46,458 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-01-07 18:26:46,458 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-01-07 18:26:46,459 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:26:46,459 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:26:46,552 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-01-07 18:26:46,552 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-01-07 18:26:46,553 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-01-07 18:26:46,554 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-01-07 18:26:46,555 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-01-07 18:26:46,558 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-01-07 18:26:46,561 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-01-07 18:26:46,561 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 1 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:26:46,581 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:26:46,581 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-07 18:26:46,581 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:26:46,582 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-01-07 18:26:46,582 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:26:46,582 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 18:26:46,604 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:26:46,604 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 18:26:46,604 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 18:26:46,604 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=66, Invalid=116, Unknown=0, NotChecked=0, Total=182 [2019-01-07 18:26:46,605 INFO L87 Difference]: Start difference. First operand 333 states and 1604 transitions. Second operand 10 states. [2019-01-07 18:26:54,517 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:26:54,517 INFO L93 Difference]: Finished difference Result 348 states and 1634 transitions. [2019-01-07 18:26:54,517 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-07 18:26:54,517 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-01-07 18:26:54,517 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:26:54,517 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:26:54,518 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 40 transitions. [2019-01-07 18:26:54,518 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:26:54,518 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 40 transitions. [2019-01-07 18:26:54,518 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 40 transitions. [2019-01-07 18:26:54,577 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 40 edges. 40 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:26:54,586 INFO L225 Difference]: With dead ends: 348 [2019-01-07 18:26:54,586 INFO L226 Difference]: Without dead ends: 343 [2019-01-07 18:26:54,587 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 21 GetRequests, 4 SyntacticMatches, 2 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 63 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=99, Invalid=173, Unknown=0, NotChecked=0, Total=272 [2019-01-07 18:26:54,587 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 343 states. [2019-01-07 18:27:03,768 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 343 to 334. [2019-01-07 18:27:03,768 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:27:03,768 INFO L82 GeneralOperation]: Start isEquivalent. First operand 343 states. Second operand 334 states. [2019-01-07 18:27:03,769 INFO L74 IsIncluded]: Start isIncluded. First operand 343 states. Second operand 334 states. [2019-01-07 18:27:03,769 INFO L87 Difference]: Start difference. First operand 343 states. Second operand 334 states. [2019-01-07 18:27:03,779 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:27:03,780 INFO L93 Difference]: Finished difference Result 343 states and 1623 transitions. [2019-01-07 18:27:03,780 INFO L276 IsEmpty]: Start isEmpty. Operand 343 states and 1623 transitions. [2019-01-07 18:27:03,780 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:27:03,780 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:27:03,780 INFO L74 IsIncluded]: Start isIncluded. First operand 334 states. Second operand 343 states. [2019-01-07 18:27:03,781 INFO L87 Difference]: Start difference. First operand 334 states. Second operand 343 states. [2019-01-07 18:27:03,793 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:27:03,794 INFO L93 Difference]: Finished difference Result 343 states and 1623 transitions. [2019-01-07 18:27:03,794 INFO L276 IsEmpty]: Start isEmpty. Operand 343 states and 1623 transitions. [2019-01-07 18:27:03,794 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:27:03,794 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:27:03,795 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:27:03,795 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:27:03,795 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 334 states. [2019-01-07 18:27:03,839 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 334 states to 334 states and 1603 transitions. [2019-01-07 18:27:03,840 INFO L78 Accepts]: Start accepts. Automaton has 334 states and 1603 transitions. Word has length 7 [2019-01-07 18:27:03,840 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:27:03,840 INFO L480 AbstractCegarLoop]: Abstraction has 334 states and 1603 transitions. [2019-01-07 18:27:03,840 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 18:27:03,840 INFO L276 IsEmpty]: Start isEmpty. Operand 334 states and 1603 transitions. [2019-01-07 18:27:03,841 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-07 18:27:03,841 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:27:03,841 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-07 18:27:03,841 INFO L423 AbstractCegarLoop]: === Iteration 43 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:27:03,850 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:27:03,850 INFO L82 PathProgramCache]: Analyzing trace with hash -2088122094, now seen corresponding path program 1 times [2019-01-07 18:27:03,850 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:27:03,851 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:27:03,851 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:27:03,851 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:27:03,852 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:27:03,855 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:27:04,280 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-01-07 18:27:04,282 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-01-07 18:27:04,284 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-01-07 18:27:04,284 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-01-07 18:27:04,287 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-01-07 18:27:04,287 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-01-07 18:27:04,289 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-01-07 18:27:04,289 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 9 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 18:27:04,289 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:27:04,289 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:27:04,289 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-01-07 18:27:04,289 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [14], [16], [20], [21] [2019-01-07 18:27:04,290 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:27:04,290 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:27:04,301 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:27:04,302 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-01-07 18:27:04,302 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:27:04,302 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:27:04,302 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:27:04,302 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 41 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 41 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:27:04,312 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:27:04,312 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:27:04,316 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:27:04,324 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:27:04,324 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:27:04,344 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:27:04,350 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:04,351 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 18:27:04,361 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:04,362 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:04,363 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 18:27:04,375 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:04,376 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:04,377 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:04,378 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 18:27:04,381 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:27:04,415 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:27:04,426 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:27:04,435 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:27:04,450 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:27:04,451 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-07 18:27:04,455 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:27:04,455 WARN L385 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-01-07 18:27:04,456 WARN L386 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-01-07 18:27:04,499 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:04,500 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:04,502 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:04,503 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:04,504 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:04,505 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:04,506 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:04,507 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 18:27:04,510 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:27:04,540 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:27:04,540 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-07 18:27:06,552 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:27:06,553 WARN L385 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-01-07 18:27:06,553 WARN L386 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-01-07 18:27:06,607 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:06,609 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:06,610 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:06,611 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:06,613 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:06,614 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:06,615 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:06,616 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:06,618 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:06,619 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 59 [2019-01-07 18:27:06,624 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:27:06,677 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:27:06,677 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-07 18:27:06,713 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:27:06,713 WARN L385 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-01-07 18:27:06,714 WARN L386 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-01-07 18:27:06,765 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:06,766 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:06,767 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:06,769 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:06,770 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:06,771 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:06,772 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:06,773 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:06,774 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:06,775 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:06,776 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:27:06,777 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 77 [2019-01-07 18:27:06,779 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:27:06,817 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:27:06,817 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-07 18:27:08,830 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:27:08,831 WARN L385 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-01-07 18:27:08,831 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< 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-01-07 18:27:08,912 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:08,914 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:08,915 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:08,917 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:08,918 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:08,919 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:08,921 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:08,922 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:08,923 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:27:08,924 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:08,925 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 72 [2019-01-07 18:27:08,928 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:27:08,967 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:27:08,967 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:30 [2019-01-07 18:27:08,977 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:27:08,977 WARN L385 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-01-07 18:27:08,977 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 18:27:09,023 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-01-07 18:27:09,025 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-01-07 18:27:09,028 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-01-07 18:27:09,030 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-01-07 18:27:09,033 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-01-07 18:27:09,035 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-01-07 18:27:09,035 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-01-07 18:27:09,036 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:27:09,036 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:27:09,179 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-01-07 18:27:09,181 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-01-07 18:27:09,181 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-01-07 18:27:09,183 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-01-07 18:27:09,184 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-01-07 18:27:09,186 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-01-07 18:27:09,188 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-01-07 18:27:09,189 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 3 proven. 7 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:27:09,209 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:27:09,209 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5, 5] total 14 [2019-01-07 18:27:09,210 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:27:09,210 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 7 [2019-01-07 18:27:09,210 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:27:09,210 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-01-07 18:27:09,243 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:27:09,243 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-01-07 18:27:09,243 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-01-07 18:27:09,243 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=91, Invalid=149, Unknown=0, NotChecked=0, Total=240 [2019-01-07 18:27:09,243 INFO L87 Difference]: Start difference. First operand 334 states and 1603 transitions. Second operand 12 states. [2019-01-07 18:27:18,165 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:27:18,165 INFO L93 Difference]: Finished difference Result 457 states and 2102 transitions. [2019-01-07 18:27:18,165 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2019-01-07 18:27:18,166 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 7 [2019-01-07 18:27:18,166 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:27:18,166 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-07 18:27:18,166 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 62 transitions. [2019-01-07 18:27:18,166 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-07 18:27:18,167 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 62 transitions. [2019-01-07 18:27:18,167 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 62 transitions. [2019-01-07 18:27:18,268 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 62 edges. 62 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:27:18,281 INFO L225 Difference]: With dead ends: 457 [2019-01-07 18:27:18,281 INFO L226 Difference]: Without dead ends: 456 [2019-01-07 18:27:18,282 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-01-07 18:27:18,282 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 456 states. [2019-01-07 18:27:26,241 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 456 to 329. [2019-01-07 18:27:26,242 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:27:26,242 INFO L82 GeneralOperation]: Start isEquivalent. First operand 456 states. Second operand 329 states. [2019-01-07 18:27:26,242 INFO L74 IsIncluded]: Start isIncluded. First operand 456 states. Second operand 329 states. [2019-01-07 18:27:26,242 INFO L87 Difference]: Start difference. First operand 456 states. Second operand 329 states. [2019-01-07 18:27:26,260 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:27:26,260 INFO L93 Difference]: Finished difference Result 456 states and 2098 transitions. [2019-01-07 18:27:26,260 INFO L276 IsEmpty]: Start isEmpty. Operand 456 states and 2098 transitions. [2019-01-07 18:27:26,261 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:27:26,261 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:27:26,262 INFO L74 IsIncluded]: Start isIncluded. First operand 329 states. Second operand 456 states. [2019-01-07 18:27:26,262 INFO L87 Difference]: Start difference. First operand 329 states. Second operand 456 states. [2019-01-07 18:27:26,282 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:27:26,282 INFO L93 Difference]: Finished difference Result 456 states and 2098 transitions. [2019-01-07 18:27:26,282 INFO L276 IsEmpty]: Start isEmpty. Operand 456 states and 2098 transitions. [2019-01-07 18:27:26,283 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:27:26,283 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:27:26,284 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:27:26,284 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:27:26,284 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 329 states. [2019-01-07 18:27:26,296 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 329 states to 329 states and 1582 transitions. [2019-01-07 18:27:26,296 INFO L78 Accepts]: Start accepts. Automaton has 329 states and 1582 transitions. Word has length 7 [2019-01-07 18:27:26,297 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:27:26,297 INFO L480 AbstractCegarLoop]: Abstraction has 329 states and 1582 transitions. [2019-01-07 18:27:26,297 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-01-07 18:27:26,297 INFO L276 IsEmpty]: Start isEmpty. Operand 329 states and 1582 transitions. [2019-01-07 18:27:26,298 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-07 18:27:26,298 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:27:26,298 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-07 18:27:26,298 INFO L423 AbstractCegarLoop]: === Iteration 44 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:27:26,298 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:27:26,298 INFO L82 PathProgramCache]: Analyzing trace with hash -2084662494, now seen corresponding path program 2 times [2019-01-07 18:27:26,299 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:27:26,299 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:27:26,299 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:27:26,299 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:27:26,299 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:27:26,302 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:27:26,585 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-01-07 18:27:26,586 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-01-07 18:27:26,587 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-01-07 18:27:26,588 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-01-07 18:27:26,589 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-01-07 18:27:26,590 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-01-07 18:27:26,590 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-01-07 18:27:26,591 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 9 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 18:27:26,591 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:27:26,591 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:27:26,591 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-07 18:27:26,592 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-07 18:27:26,592 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:27:26,592 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 42 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 42 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:27:26,602 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-07 18:27:26,602 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-07 18:27:26,618 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-07 18:27:26,618 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-07 18:27:26,625 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:27:26,625 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:27:26,643 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:27:26,652 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:26,653 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 18:27:26,667 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:26,668 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:26,669 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 18:27:26,691 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:26,692 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:26,694 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:26,695 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 18:27:26,700 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:27:26,720 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:27:26,733 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:27:26,744 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:27:26,762 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:27:26,762 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-07 18:27:26,768 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:27:26,768 WARN L385 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-01-07 18:27:26,768 WARN L386 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-01-07 18:27:26,837 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:26,838 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:26,839 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:26,840 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:26,842 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:26,843 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:26,844 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:26,845 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 18:27:26,850 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:27:26,884 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:27:26,884 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-07 18:27:28,896 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:27:28,896 WARN L385 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-01-07 18:27:28,896 WARN L386 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-01-07 18:27:28,970 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:28,972 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:28,973 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:28,974 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:28,976 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:28,977 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:28,978 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:28,979 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:27:28,980 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 60 [2019-01-07 18:27:28,987 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:27:29,022 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:27:29,023 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:42, output treesize:30 [2019-01-07 18:27:29,039 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:27:29,040 WARN L385 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-01-07 18:27:29,040 WARN L386 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)) (= (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-01-07 18:27:29,118 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:29,119 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:29,121 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:29,122 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:29,123 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:29,124 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:29,125 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:29,126 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:29,127 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:29,129 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 61 [2019-01-07 18:27:29,134 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:27:29,172 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:27:29,172 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:44, output treesize:34 [2019-01-07 18:27:31,090 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:27:31,091 WARN L385 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-01-07 18:27:31,091 WARN L386 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-01-07 18:27:31,166 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:31,168 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:31,169 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:31,170 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:31,171 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:31,172 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:31,173 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:31,174 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:31,176 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:31,177 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:31,177 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:27:31,178 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 75 [2019-01-07 18:27:31,185 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:27:31,225 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:27:31,225 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:44, output treesize:34 [2019-01-07 18:27:31,236 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:27:31,236 WARN L385 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-01-07 18:27:31,237 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< 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-01-07 18:27:31,300 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-01-07 18:27:31,301 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-01-07 18:27:31,302 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-01-07 18:27:31,303 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-01-07 18:27:31,306 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-01-07 18:27:31,307 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-01-07 18:27:31,308 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-01-07 18:27:31,309 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:27:31,309 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:27:31,426 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-01-07 18:27:31,427 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-01-07 18:27:31,428 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-01-07 18:27:31,429 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-01-07 18:27:31,431 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-01-07 18:27:31,433 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-01-07 18:27:31,436 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-01-07 18:27:31,436 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 5 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:27:31,456 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:27:31,456 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 5, 5] total 14 [2019-01-07 18:27:31,456 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:27:31,456 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 7 [2019-01-07 18:27:31,456 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:27:31,456 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states. [2019-01-07 18:27:31,479 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:27:31,480 INFO L459 AbstractCegarLoop]: Interpolant automaton has 11 states [2019-01-07 18:27:31,480 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2019-01-07 18:27:31,480 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=89, Invalid=151, Unknown=0, NotChecked=0, Total=240 [2019-01-07 18:27:31,480 INFO L87 Difference]: Start difference. First operand 329 states and 1582 transitions. Second operand 11 states. [2019-01-07 18:27:40,127 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:27:40,127 INFO L93 Difference]: Finished difference Result 346 states and 1608 transitions. [2019-01-07 18:27:40,127 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-07 18:27:40,128 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 7 [2019-01-07 18:27:40,128 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:27:40,128 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2019-01-07 18:27:40,128 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 47 transitions. [2019-01-07 18:27:40,128 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2019-01-07 18:27:40,128 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 47 transitions. [2019-01-07 18:27:40,128 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 47 transitions. [2019-01-07 18:27:40,215 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 47 edges. 47 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:27:40,224 INFO L225 Difference]: With dead ends: 346 [2019-01-07 18:27:40,224 INFO L226 Difference]: Without dead ends: 345 [2019-01-07 18:27:40,224 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 21 GetRequests, 3 SyntacticMatches, 1 SemanticMatches, 17 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 90 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=119, Invalid=223, Unknown=0, NotChecked=0, Total=342 [2019-01-07 18:27:40,225 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 345 states. [2019-01-07 18:27:45,387 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 345 to 213. [2019-01-07 18:27:45,388 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:27:45,388 INFO L82 GeneralOperation]: Start isEquivalent. First operand 345 states. Second operand 213 states. [2019-01-07 18:27:45,388 INFO L74 IsIncluded]: Start isIncluded. First operand 345 states. Second operand 213 states. [2019-01-07 18:27:45,388 INFO L87 Difference]: Start difference. First operand 345 states. Second operand 213 states. [2019-01-07 18:27:45,399 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:27:45,400 INFO L93 Difference]: Finished difference Result 345 states and 1604 transitions. [2019-01-07 18:27:45,400 INFO L276 IsEmpty]: Start isEmpty. Operand 345 states and 1604 transitions. [2019-01-07 18:27:45,400 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:27:45,400 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:27:45,400 INFO L74 IsIncluded]: Start isIncluded. First operand 213 states. Second operand 345 states. [2019-01-07 18:27:45,400 INFO L87 Difference]: Start difference. First operand 213 states. Second operand 345 states. [2019-01-07 18:27:45,411 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:27:45,411 INFO L93 Difference]: Finished difference Result 345 states and 1604 transitions. [2019-01-07 18:27:45,411 INFO L276 IsEmpty]: Start isEmpty. Operand 345 states and 1604 transitions. [2019-01-07 18:27:45,412 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:27:45,412 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:27:45,412 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:27:45,412 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:27:45,412 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 213 states. [2019-01-07 18:27:45,417 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 213 states to 213 states and 1003 transitions. [2019-01-07 18:27:45,417 INFO L78 Accepts]: Start accepts. Automaton has 213 states and 1003 transitions. Word has length 7 [2019-01-07 18:27:45,417 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:27:45,418 INFO L480 AbstractCegarLoop]: Abstraction has 213 states and 1003 transitions. [2019-01-07 18:27:45,418 INFO L481 AbstractCegarLoop]: Interpolant automaton has 11 states. [2019-01-07 18:27:45,418 INFO L276 IsEmpty]: Start isEmpty. Operand 213 states and 1003 transitions. [2019-01-07 18:27:45,418 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-07 18:27:45,418 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:27:45,418 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-07 18:27:45,418 INFO L423 AbstractCegarLoop]: === Iteration 45 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:27:45,419 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:27:45,419 INFO L82 PathProgramCache]: Analyzing trace with hash -2084418336, now seen corresponding path program 1 times [2019-01-07 18:27:45,419 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:27:45,419 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:27:45,419 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-07 18:27:45,419 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:27:45,420 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:27:45,423 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:27:45,621 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-01-07 18:27:45,622 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-01-07 18:27:45,623 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-01-07 18:27:45,623 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-01-07 18:27:45,624 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-01-07 18:27:45,624 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-01-07 18:27:45,625 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-01-07 18:27:45,625 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 18:27:45,625 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:27:45,625 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:27:45,626 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-01-07 18:27:45,626 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [16], [20], [22], [23] [2019-01-07 18:27:45,628 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:27:45,628 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:27:45,642 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:27:45,642 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-01-07 18:27:45,642 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:27:45,643 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:27:45,643 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:27:45,643 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 43 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 43 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:27:45,652 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:27:45,653 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:27:45,658 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:27:45,661 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:27:45,661 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:27:45,684 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:27:45,695 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-07 18:27:45,707 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:45,708 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 26 [2019-01-07 18:27:45,724 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:45,726 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:45,726 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 33 [2019-01-07 18:27:45,732 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:27:45,747 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:27:45,758 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:27:45,769 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:27:45,784 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:27:45,784 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:22, output treesize:27 [2019-01-07 18:27:45,789 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:27:45,789 WARN L385 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-01-07 18:27:45,789 WARN L386 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-01-07 18:27:45,849 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:45,850 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:45,851 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:45,852 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:45,853 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 28 [2019-01-07 18:27:45,858 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:27:45,877 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:27:45,878 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:22 [2019-01-07 18:27:47,905 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:27:47,906 WARN L385 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-01-07 18:27:47,906 WARN L386 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-01-07 18:27:47,966 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:47,968 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:47,969 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:47,970 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:47,971 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:27:47,971 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 28 treesize of output 41 [2019-01-07 18:27:47,976 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:27:48,000 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:27:48,000 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:34, output treesize:22 [2019-01-07 18:27:48,080 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:27:48,080 WARN L385 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-01-07 18:27:48,080 WARN L386 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)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 18:27:48,136 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:48,137 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:48,138 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:48,140 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:48,141 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:48,142 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:27:48,143 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 30 treesize of output 44 [2019-01-07 18:27:48,148 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:27:48,172 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:27:48,172 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:36, output treesize:26 [2019-01-07 18:27:48,179 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:27:48,179 WARN L385 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-01-07 18:27:48,179 WARN L386 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-01-07 18:27:48,267 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-01-07 18:27:48,268 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-01-07 18:27:48,269 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-01-07 18:27:48,271 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-01-07 18:27:48,272 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-01-07 18:27:48,294 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-01-07 18:27:48,295 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-01-07 18:27:48,295 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:27:48,296 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:27:48,357 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-01-07 18:27:48,358 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-01-07 18:27:48,359 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-01-07 18:27:48,359 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-01-07 18:27:48,360 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-01-07 18:27:48,362 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-01-07 18:27:48,364 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-01-07 18:27:48,364 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 2 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:27:48,386 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:27:48,386 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-07 18:27:48,386 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:27:48,386 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-01-07 18:27:48,387 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:27:48,387 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 18:27:48,408 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:27:48,408 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 18:27:48,408 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 18:27:48,408 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=63, Invalid=93, Unknown=0, NotChecked=0, Total=156 [2019-01-07 18:27:48,409 INFO L87 Difference]: Start difference. First operand 213 states and 1003 transitions. Second operand 10 states. [2019-01-07 18:27:55,580 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:27:55,580 INFO L93 Difference]: Finished difference Result 280 states and 1278 transitions. [2019-01-07 18:27:55,580 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-07 18:27:55,580 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-01-07 18:27:55,580 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:27:55,580 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:27:55,581 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 45 transitions. [2019-01-07 18:27:55,581 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:27:55,581 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 45 transitions. [2019-01-07 18:27:55,581 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 45 transitions. [2019-01-07 18:27:55,646 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 45 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:27:55,653 INFO L225 Difference]: With dead ends: 280 [2019-01-07 18:27:55,653 INFO L226 Difference]: Without dead ends: 277 [2019-01-07 18:27:55,653 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-01-07 18:27:55,654 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 277 states. [2019-01-07 18:28:02,525 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 277 to 242. [2019-01-07 18:28:02,525 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:28:02,525 INFO L82 GeneralOperation]: Start isEquivalent. First operand 277 states. Second operand 242 states. [2019-01-07 18:28:02,525 INFO L74 IsIncluded]: Start isIncluded. First operand 277 states. Second operand 242 states. [2019-01-07 18:28:02,526 INFO L87 Difference]: Start difference. First operand 277 states. Second operand 242 states. [2019-01-07 18:28:02,534 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:28:02,534 INFO L93 Difference]: Finished difference Result 277 states and 1273 transitions. [2019-01-07 18:28:02,534 INFO L276 IsEmpty]: Start isEmpty. Operand 277 states and 1273 transitions. [2019-01-07 18:28:02,535 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:28:02,535 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:28:02,535 INFO L74 IsIncluded]: Start isIncluded. First operand 242 states. Second operand 277 states. [2019-01-07 18:28:02,535 INFO L87 Difference]: Start difference. First operand 242 states. Second operand 277 states. [2019-01-07 18:28:02,542 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:28:02,542 INFO L93 Difference]: Finished difference Result 277 states and 1273 transitions. [2019-01-07 18:28:02,543 INFO L276 IsEmpty]: Start isEmpty. Operand 277 states and 1273 transitions. [2019-01-07 18:28:02,543 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:28:02,543 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:28:02,543 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:28:02,543 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:28:02,543 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 242 states. [2019-01-07 18:28:02,548 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 242 states to 242 states and 1141 transitions. [2019-01-07 18:28:02,549 INFO L78 Accepts]: Start accepts. Automaton has 242 states and 1141 transitions. Word has length 7 [2019-01-07 18:28:02,549 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:28:02,549 INFO L480 AbstractCegarLoop]: Abstraction has 242 states and 1141 transitions. [2019-01-07 18:28:02,549 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 18:28:02,549 INFO L276 IsEmpty]: Start isEmpty. Operand 242 states and 1141 transitions. [2019-01-07 18:28:02,549 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-07 18:28:02,549 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:28:02,549 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-07 18:28:02,550 INFO L423 AbstractCegarLoop]: === Iteration 46 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:28:02,550 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:28:02,550 INFO L82 PathProgramCache]: Analyzing trace with hash -2080543520, now seen corresponding path program 1 times [2019-01-07 18:28:02,550 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:28:02,551 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:28:02,551 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:28:02,551 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:28:02,551 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:28:02,554 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:28:02,703 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-01-07 18:28:02,704 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-01-07 18:28:02,705 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-01-07 18:28:02,706 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-01-07 18:28:02,707 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-01-07 18:28:02,707 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-01-07 18:28:02,708 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-01-07 18:28:02,708 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:28:02,708 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:28:02,708 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:28:02,709 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-01-07 18:28:02,709 INFO L207 CegarAbsIntRunner]: [0], [14], [16], [20], [22], [24], [25] [2019-01-07 18:28:02,710 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:28:02,711 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:28:02,725 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:28:02,725 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-01-07 18:28:02,725 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:28:02,725 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:28:02,725 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:28:02,726 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 44 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 44 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:28:02,735 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:28:02,735 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:28:02,739 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:28:02,742 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:28:02,742 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:28:02,765 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:28:02,776 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-07 18:28:02,791 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 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-01-07 18:28:02,811 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:02,812 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 1 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 25 [2019-01-07 18:28:02,817 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:28:02,829 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:28:02,840 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:28:02,851 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:28:02,863 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:28:02,863 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:19, output treesize:24 [2019-01-07 18:28:02,869 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:28:02,869 WARN L385 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-01-07 18:28:02,869 WARN L386 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-01-07 18:28:02,914 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:02,915 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:02,916 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 15 [2019-01-07 18:28:02,919 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:28:02,929 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:28:02,929 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:24, output treesize:14 [2019-01-07 18:28:02,938 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:28:02,938 WARN L385 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-01-07 18:28:02,938 WARN L386 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-01-07 18:28:02,975 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:02,977 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:02,978 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:02,979 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:02,980 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 4 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 29 [2019-01-07 18:28:02,983 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:28:02,996 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:28:02,996 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:26, output treesize:16 [2019-01-07 18:28:05,004 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:28:05,005 WARN L385 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-01-07 18:28:05,005 WARN L386 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-01-07 18:28:05,066 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-01-07 18:28:05,067 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-01-07 18:28:05,068 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-01-07 18:28:05,069 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-01-07 18:28:05,070 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-01-07 18:28:05,070 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-01-07 18:28:05,071 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-01-07 18:28:05,072 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:28:05,072 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:28:05,115 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-01-07 18:28:05,115 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-01-07 18:28:05,116 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-01-07 18:28:05,116 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-01-07 18:28:05,117 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-01-07 18:28:05,118 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-01-07 18:28:05,120 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-01-07 18:28:05,121 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:28:05,141 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:28:05,141 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 3, 3] total 9 [2019-01-07 18:28:05,141 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:28:05,141 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 7 [2019-01-07 18:28:05,141 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:28:05,142 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states. [2019-01-07 18:28:05,158 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:28:05,159 INFO L459 AbstractCegarLoop]: Interpolant automaton has 9 states [2019-01-07 18:28:05,159 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2019-01-07 18:28:05,159 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=46, Invalid=64, Unknown=0, NotChecked=0, Total=110 [2019-01-07 18:28:05,159 INFO L87 Difference]: Start difference. First operand 242 states and 1141 transitions. Second operand 9 states. [2019-01-07 18:28:16,198 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:28:16,198 INFO L93 Difference]: Finished difference Result 390 states and 1798 transitions. [2019-01-07 18:28:16,198 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-07 18:28:16,198 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 7 [2019-01-07 18:28:16,198 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:28:16,198 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2019-01-07 18:28:16,199 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 55 transitions. [2019-01-07 18:28:16,199 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2019-01-07 18:28:16,199 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 55 transitions. [2019-01-07 18:28:16,199 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 55 transitions. [2019-01-07 18:28:16,315 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 55 edges. 55 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:28:16,325 INFO L225 Difference]: With dead ends: 390 [2019-01-07 18:28:16,325 INFO L226 Difference]: Without dead ends: 377 [2019-01-07 18:28:16,325 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-01-07 18:28:16,326 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 377 states. [2019-01-07 18:28:25,252 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 377 to 367. [2019-01-07 18:28:25,253 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:28:25,253 INFO L82 GeneralOperation]: Start isEquivalent. First operand 377 states. Second operand 367 states. [2019-01-07 18:28:25,253 INFO L74 IsIncluded]: Start isIncluded. First operand 377 states. Second operand 367 states. [2019-01-07 18:28:25,253 INFO L87 Difference]: Start difference. First operand 377 states. Second operand 367 states. [2019-01-07 18:28:25,265 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:28:25,266 INFO L93 Difference]: Finished difference Result 377 states and 1660 transitions. [2019-01-07 18:28:25,266 INFO L276 IsEmpty]: Start isEmpty. Operand 377 states and 1660 transitions. [2019-01-07 18:28:25,266 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:28:25,266 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:28:25,266 INFO L74 IsIncluded]: Start isIncluded. First operand 367 states. Second operand 377 states. [2019-01-07 18:28:25,266 INFO L87 Difference]: Start difference. First operand 367 states. Second operand 377 states. [2019-01-07 18:28:25,278 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:28:25,278 INFO L93 Difference]: Finished difference Result 377 states and 1660 transitions. [2019-01-07 18:28:25,278 INFO L276 IsEmpty]: Start isEmpty. Operand 377 states and 1660 transitions. [2019-01-07 18:28:25,279 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:28:25,279 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:28:25,279 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:28:25,279 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:28:25,279 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 367 states. [2019-01-07 18:28:25,290 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 367 states to 367 states and 1654 transitions. [2019-01-07 18:28:25,290 INFO L78 Accepts]: Start accepts. Automaton has 367 states and 1654 transitions. Word has length 7 [2019-01-07 18:28:25,290 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:28:25,290 INFO L480 AbstractCegarLoop]: Abstraction has 367 states and 1654 transitions. [2019-01-07 18:28:25,290 INFO L481 AbstractCegarLoop]: Interpolant automaton has 9 states. [2019-01-07 18:28:25,290 INFO L276 IsEmpty]: Start isEmpty. Operand 367 states and 1654 transitions. [2019-01-07 18:28:25,291 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-07 18:28:25,291 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:28:25,291 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1] [2019-01-07 18:28:25,291 INFO L423 AbstractCegarLoop]: === Iteration 47 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:28:25,291 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:28:25,291 INFO L82 PathProgramCache]: Analyzing trace with hash -2080966800, now seen corresponding path program 4 times [2019-01-07 18:28:25,291 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:28:25,292 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:28:25,292 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:28:25,292 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:28:25,292 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:28:25,295 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:28:25,599 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-01-07 18:28:25,600 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-01-07 18:28:25,601 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-01-07 18:28:25,603 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-01-07 18:28:25,604 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-01-07 18:28:25,605 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-01-07 18:28:25,605 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-01-07 18:28:25,606 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 0 proven. 14 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 18:28:25,606 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:28:25,606 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:28:25,607 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-07 18:28:25,607 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-07 18:28:25,607 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:28:25,607 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 45 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 45 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:28:25,618 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:28:25,618 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:28:25,623 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:28:25,630 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:28:25,630 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:28:25,645 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:28:25,654 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:25,654 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 18:28:25,667 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:25,668 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:25,669 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 18:28:25,686 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:25,687 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:25,689 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:25,689 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 18:28:25,694 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:28:25,716 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:28:25,729 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:28:25,740 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:28:25,757 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:28:25,758 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-07 18:28:25,764 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:28:25,764 WARN L385 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-01-07 18:28:25,764 WARN L386 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-01-07 18:28:25,842 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:25,844 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:25,846 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:25,848 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:25,850 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:25,854 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:25,856 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:25,856 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 18:28:25,864 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:28:25,899 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:28:25,899 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:40, output treesize:30 [2019-01-07 18:28:25,914 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:28:25,915 WARN L385 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-01-07 18:28:25,915 WARN L386 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-01-07 18:28:26,023 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:26,025 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:26,027 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:26,029 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:26,031 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:26,033 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:26,035 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:26,037 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:26,039 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:26,039 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 67 [2019-01-07 18:28:26,047 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:28:26,099 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:28:26,099 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:42, output treesize:32 [2019-01-07 18:28:28,131 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:28:28,131 WARN L385 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-01-07 18:28:28,131 WARN L386 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-01-07 18:28:28,202 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:28,203 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:28,205 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:28,206 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:28,207 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:28,208 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:28,209 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:28,210 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:28,211 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:28,212 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:28,213 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:28,214 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:28:28,215 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 73 [2019-01-07 18:28:28,220 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:28:28,260 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:28:28,261 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:42, output treesize:32 [2019-01-07 18:28:28,271 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:28:28,271 WARN L385 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-01-07 18:28:28,271 WARN L386 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-01-07 18:28:28,335 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:28,336 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:28,337 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:28,337 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:28,338 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:28,340 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:28,341 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:28,342 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:28,343 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:28,344 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:28,346 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:28,347 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:28,348 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 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 77 [2019-01-07 18:28:28,353 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:28:28,433 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:28:28,434 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:30 [2019-01-07 18:28:28,486 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:28:28,487 WARN L385 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-01-07 18:28:28,487 WARN L386 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-01-07 18:28:28,553 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:28,555 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:28,556 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:28,557 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:28,559 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:28,560 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:28,561 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:28,562 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:28,564 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:28,565 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:28,566 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:28,567 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:28,568 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 12 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 79 [2019-01-07 18:28:28,574 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:28:28,615 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:28:28,615 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-07 18:28:28,630 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:28:28,631 WARN L385 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-01-07 18:28:28,631 WARN L386 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-01-07 18:28:28,670 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-01-07 18:28:28,671 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-01-07 18:28:28,673 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-01-07 18:28:28,675 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-01-07 18:28:28,677 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-01-07 18:28:28,679 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-01-07 18:28:28,680 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-01-07 18:28:28,681 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 0 proven. 15 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:28:28,681 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:28:28,852 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-01-07 18:28:28,853 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-01-07 18:28:28,854 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-01-07 18:28:28,856 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-01-07 18:28:28,858 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-01-07 18:28:28,862 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-01-07 18:28:28,864 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-01-07 18:28:28,865 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 6 proven. 9 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:28:28,885 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:28:28,885 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 6, 6] total 17 [2019-01-07 18:28:28,885 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:28:28,885 INFO L78 Accepts]: Start accepts. Automaton has 13 states. Word has length 7 [2019-01-07 18:28:28,886 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:28:28,886 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 13 states. [2019-01-07 18:28:28,911 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:28:28,911 INFO L459 AbstractCegarLoop]: Interpolant automaton has 13 states [2019-01-07 18:28:28,912 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2019-01-07 18:28:28,912 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=122, Invalid=220, Unknown=0, NotChecked=0, Total=342 [2019-01-07 18:28:28,912 INFO L87 Difference]: Start difference. First operand 367 states and 1654 transitions. Second operand 13 states. [2019-01-07 18:28:39,363 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:28:39,364 INFO L93 Difference]: Finished difference Result 375 states and 1668 transitions. [2019-01-07 18:28:39,364 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2019-01-07 18:28:39,364 INFO L78 Accepts]: Start accepts. Automaton has 13 states. Word has length 7 [2019-01-07 18:28:39,364 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:28:39,364 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2019-01-07 18:28:39,364 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 46 transitions. [2019-01-07 18:28:39,364 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2019-01-07 18:28:39,365 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 46 transitions. [2019-01-07 18:28:39,365 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 46 transitions. [2019-01-07 18:28:39,442 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 46 edges. 46 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:28:39,452 INFO L225 Difference]: With dead ends: 375 [2019-01-07 18:28:39,453 INFO L226 Difference]: Without dead ends: 374 [2019-01-07 18:28:39,453 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 21 GetRequests, 0 SyntacticMatches, 1 SemanticMatches, 20 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 136 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=157, Invalid=305, Unknown=0, NotChecked=0, Total=462 [2019-01-07 18:28:39,453 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 374 states. [2019-01-07 18:28:45,693 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 374 to 147. [2019-01-07 18:28:45,693 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:28:45,693 INFO L82 GeneralOperation]: Start isEquivalent. First operand 374 states. Second operand 147 states. [2019-01-07 18:28:45,693 INFO L74 IsIncluded]: Start isIncluded. First operand 374 states. Second operand 147 states. [2019-01-07 18:28:45,693 INFO L87 Difference]: Start difference. First operand 374 states. Second operand 147 states. [2019-01-07 18:28:45,706 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:28:45,706 INFO L93 Difference]: Finished difference Result 374 states and 1638 transitions. [2019-01-07 18:28:45,706 INFO L276 IsEmpty]: Start isEmpty. Operand 374 states and 1638 transitions. [2019-01-07 18:28:45,707 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:28:45,707 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:28:45,707 INFO L74 IsIncluded]: Start isIncluded. First operand 147 states. Second operand 374 states. [2019-01-07 18:28:45,707 INFO L87 Difference]: Start difference. First operand 147 states. Second operand 374 states. [2019-01-07 18:28:45,720 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:28:45,720 INFO L93 Difference]: Finished difference Result 374 states and 1638 transitions. [2019-01-07 18:28:45,720 INFO L276 IsEmpty]: Start isEmpty. Operand 374 states and 1638 transitions. [2019-01-07 18:28:45,721 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:28:45,721 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:28:45,721 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:28:45,721 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:28:45,721 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 147 states. [2019-01-07 18:28:45,724 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 147 states to 147 states and 607 transitions. [2019-01-07 18:28:45,724 INFO L78 Accepts]: Start accepts. Automaton has 147 states and 607 transitions. Word has length 7 [2019-01-07 18:28:45,724 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:28:45,724 INFO L480 AbstractCegarLoop]: Abstraction has 147 states and 607 transitions. [2019-01-07 18:28:45,725 INFO L481 AbstractCegarLoop]: Interpolant automaton has 13 states. [2019-01-07 18:28:45,725 INFO L276 IsEmpty]: Start isEmpty. Operand 147 states and 607 transitions. [2019-01-07 18:28:45,725 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-07 18:28:45,725 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:28:45,725 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-07 18:28:45,725 INFO L423 AbstractCegarLoop]: === Iteration 48 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:28:45,725 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:28:45,725 INFO L82 PathProgramCache]: Analyzing trace with hash 1924438182, now seen corresponding path program 1 times [2019-01-07 18:28:45,726 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:28:45,726 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:28:45,726 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:28:45,726 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:28:45,726 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:28:45,728 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:28:46,000 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-01-07 18:28:46,001 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-01-07 18:28:46,002 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-01-07 18:28:46,003 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-01-07 18:28:46,003 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-01-07 18:28:46,003 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-01-07 18:28:46,004 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-01-07 18:28:46,005 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 18:28:46,005 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:28:46,005 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:28:46,005 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-01-07 18:28:46,005 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [20], [22], [24], [25] [2019-01-07 18:28:46,007 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:28:46,007 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:28:46,023 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:28:46,023 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-01-07 18:28:46,024 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:28:46,024 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:28:46,024 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:28:46,024 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 46 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 46 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:28:46,037 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:28:46,037 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:28:46,040 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:28:46,045 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:28:46,046 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:28:46,072 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:28:46,081 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:46,081 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 18:28:46,095 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:46,097 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:46,097 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 18:28:46,116 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:46,117 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:46,119 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:46,120 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 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-01-07 18:28:46,125 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:28:46,146 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:28:46,158 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:28:46,169 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:28:46,187 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:28:46,188 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 18:28:46,196 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:28:46,197 WARN L385 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-01-07 18:28:46,197 WARN L386 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-01-07 18:28:46,260 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:46,261 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:46,263 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:46,264 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:46,265 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:46,266 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:46,267 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:46,268 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 18:28:46,274 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:28:46,305 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:28:46,305 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 18:28:46,338 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:28:46,339 WARN L385 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-01-07 18:28:46,339 WARN L386 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-01-07 18:28:46,443 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:46,445 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:46,447 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:46,449 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:46,451 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:46,453 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:46,455 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:46,457 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:46,459 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:28:46,459 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 65 [2019-01-07 18:28:46,464 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:28:46,514 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:28:46,514 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-07 18:28:46,544 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:28:46,545 WARN L385 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-01-07 18:28:46,545 WARN L386 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-01-07 18:28:46,752 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-01-07 18:28:46,753 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-01-07 18:28:46,755 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-01-07 18:28:46,756 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-01-07 18:28:46,757 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-01-07 18:28:46,758 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-01-07 18:28:46,759 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-01-07 18:28:46,759 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:28:46,760 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:28:46,830 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-01-07 18:28:46,830 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-01-07 18:28:46,831 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-01-07 18:28:46,831 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-01-07 18:28:46,832 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-01-07 18:28:46,834 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-01-07 18:28:46,836 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-01-07 18:28:46,836 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:28:46,856 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:28:46,856 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 3, 3] total 8 [2019-01-07 18:28:46,856 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:28:46,856 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 7 [2019-01-07 18:28:46,856 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:28:46,856 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states. [2019-01-07 18:28:46,877 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:28:46,877 INFO L459 AbstractCegarLoop]: Interpolant automaton has 7 states [2019-01-07 18:28:46,878 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2019-01-07 18:28:46,878 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=36, Invalid=54, Unknown=0, NotChecked=0, Total=90 [2019-01-07 18:28:46,878 INFO L87 Difference]: Start difference. First operand 147 states and 607 transitions. Second operand 7 states. [2019-01-07 18:28:53,330 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:28:53,331 INFO L93 Difference]: Finished difference Result 157 states and 628 transitions. [2019-01-07 18:28:53,331 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-07 18:28:53,331 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 7 [2019-01-07 18:28:53,331 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:28:53,331 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2019-01-07 18:28:53,332 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 34 transitions. [2019-01-07 18:28:53,332 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2019-01-07 18:28:53,332 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 34 transitions. [2019-01-07 18:28:53,332 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 34 transitions. [2019-01-07 18:28:53,379 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 34 edges. 34 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:28:53,381 INFO L225 Difference]: With dead ends: 157 [2019-01-07 18:28:53,382 INFO L226 Difference]: Without dead ends: 150 [2019-01-07 18:28:53,382 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 19 GetRequests, 7 SyntacticMatches, 2 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 25 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=52, Invalid=80, Unknown=0, NotChecked=0, Total=132 [2019-01-07 18:28:53,383 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 150 states. [2019-01-07 18:28:59,913 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 150 to 149. [2019-01-07 18:28:59,914 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:28:59,914 INFO L82 GeneralOperation]: Start isEquivalent. First operand 150 states. Second operand 149 states. [2019-01-07 18:28:59,914 INFO L74 IsIncluded]: Start isIncluded. First operand 150 states. Second operand 149 states. [2019-01-07 18:28:59,914 INFO L87 Difference]: Start difference. First operand 150 states. Second operand 149 states. [2019-01-07 18:28:59,917 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:28:59,917 INFO L93 Difference]: Finished difference Result 150 states and 615 transitions. [2019-01-07 18:28:59,918 INFO L276 IsEmpty]: Start isEmpty. Operand 150 states and 615 transitions. [2019-01-07 18:28:59,918 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:28:59,918 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:28:59,918 INFO L74 IsIncluded]: Start isIncluded. First operand 149 states. Second operand 150 states. [2019-01-07 18:28:59,918 INFO L87 Difference]: Start difference. First operand 149 states. Second operand 150 states. [2019-01-07 18:28:59,921 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:28:59,922 INFO L93 Difference]: Finished difference Result 150 states and 615 transitions. [2019-01-07 18:28:59,922 INFO L276 IsEmpty]: Start isEmpty. Operand 150 states and 615 transitions. [2019-01-07 18:28:59,922 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:28:59,922 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:28:59,922 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:28:59,922 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:28:59,922 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 149 states. [2019-01-07 18:28:59,925 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 149 states to 149 states and 611 transitions. [2019-01-07 18:28:59,926 INFO L78 Accepts]: Start accepts. Automaton has 149 states and 611 transitions. Word has length 7 [2019-01-07 18:28:59,926 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:28:59,926 INFO L480 AbstractCegarLoop]: Abstraction has 149 states and 611 transitions. [2019-01-07 18:28:59,926 INFO L481 AbstractCegarLoop]: Interpolant automaton has 7 states. [2019-01-07 18:28:59,926 INFO L276 IsEmpty]: Start isEmpty. Operand 149 states and 611 transitions. [2019-01-07 18:28:59,926 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-07 18:28:59,926 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:28:59,926 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-07 18:28:59,927 INFO L423 AbstractCegarLoop]: === Iteration 49 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:28:59,927 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:28:59,927 INFO L82 PathProgramCache]: Analyzing trace with hash 1928011116, now seen corresponding path program 1 times [2019-01-07 18:28:59,927 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:28:59,928 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:28:59,928 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:28:59,928 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:28:59,928 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:28:59,930 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:29:00,323 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-01-07 18:29:00,324 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-01-07 18:29:00,325 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-01-07 18:29:00,326 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-01-07 18:29:00,327 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-01-07 18:29:00,328 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-01-07 18:29:00,328 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-01-07 18:29:00,329 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 18:29:00,329 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:29:00,329 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:29:00,329 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-01-07 18:29:00,330 INFO L207 CegarAbsIntRunner]: [0], [6], [14], [16], [20], [22], [23] [2019-01-07 18:29:00,331 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:29:00,331 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:29:00,339 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:29:00,340 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-01-07 18:29:00,340 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:29:00,340 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:29:00,340 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:29:00,340 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 47 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 47 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:29:00,350 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:29:00,350 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:29:00,354 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:29:00,357 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:29:00,358 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:29:00,396 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:29:00,410 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:00,410 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 18:29:00,429 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:00,431 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:00,431 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 18:29:00,454 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:00,455 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:00,457 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:00,457 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 18:29:00,466 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:29:00,488 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:29:00,500 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:29:00,512 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:29:00,531 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:29:00,532 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 18:29:00,541 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:29:00,541 WARN L385 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-01-07 18:29:00,542 WARN L386 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-01-07 18:29:00,625 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:00,626 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:00,627 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:00,628 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:00,630 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:00,631 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:00,632 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:00,633 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 18:29:00,642 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:29:00,675 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:29:00,675 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 18:29:00,685 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:29:00,685 WARN L385 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-01-07 18:29:00,685 WARN L386 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-01-07 18:29:00,768 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:00,770 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:00,771 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:00,773 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:00,774 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:00,775 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:00,776 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:00,778 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:00,778 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:29:00,779 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 59 [2019-01-07 18:29:00,788 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:29:00,820 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:29:00,820 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 18:29:00,827 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:29:00,827 WARN L385 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-01-07 18:29:00,828 WARN L386 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-01-07 18:29:00,920 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:00,922 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:00,923 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:00,924 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:00,926 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:00,927 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:00,928 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:00,930 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:00,931 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:00,932 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 57 [2019-01-07 18:29:00,934 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:29:00,968 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:29:00,969 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-07 18:29:03,076 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:29:03,076 WARN L385 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-01-07 18:29:03,076 WARN L386 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-01-07 18:29:03,167 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-01-07 18:29:03,169 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-01-07 18:29:03,171 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-01-07 18:29:03,174 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-01-07 18:29:03,175 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-01-07 18:29:03,176 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-01-07 18:29:03,176 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-01-07 18:29:03,177 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:29:03,177 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:29:03,241 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-01-07 18:29:03,242 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-01-07 18:29:03,242 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-01-07 18:29:03,243 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-01-07 18:29:03,245 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-01-07 18:29:03,246 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-01-07 18:29:03,249 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-01-07 18:29:03,249 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 5 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:29:03,269 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:29:03,269 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-07 18:29:03,269 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:29:03,270 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-01-07 18:29:03,270 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:29:03,270 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 18:29:03,293 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:29:03,294 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 18:29:03,294 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 18:29:03,294 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=69, Invalid=113, Unknown=0, NotChecked=0, Total=182 [2019-01-07 18:29:03,294 INFO L87 Difference]: Start difference. First operand 149 states and 611 transitions. Second operand 10 states. [2019-01-07 18:29:11,599 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:29:11,599 INFO L93 Difference]: Finished difference Result 206 states and 810 transitions. [2019-01-07 18:29:11,599 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-07 18:29:11,599 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-01-07 18:29:11,599 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:29:11,599 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:29:11,600 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 48 transitions. [2019-01-07 18:29:11,600 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:29:11,600 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 48 transitions. [2019-01-07 18:29:11,600 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 48 transitions. [2019-01-07 18:29:11,672 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 48 edges. 48 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:29:11,677 INFO L225 Difference]: With dead ends: 206 [2019-01-07 18:29:11,677 INFO L226 Difference]: Without dead ends: 199 [2019-01-07 18:29:11,677 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-01-07 18:29:11,678 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 199 states. [2019-01-07 18:29:19,581 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 199 to 158. [2019-01-07 18:29:19,581 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:29:19,581 INFO L82 GeneralOperation]: Start isEquivalent. First operand 199 states. Second operand 158 states. [2019-01-07 18:29:19,581 INFO L74 IsIncluded]: Start isIncluded. First operand 199 states. Second operand 158 states. [2019-01-07 18:29:19,581 INFO L87 Difference]: Start difference. First operand 199 states. Second operand 158 states. [2019-01-07 18:29:19,587 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:29:19,587 INFO L93 Difference]: Finished difference Result 199 states and 789 transitions. [2019-01-07 18:29:19,587 INFO L276 IsEmpty]: Start isEmpty. Operand 199 states and 789 transitions. [2019-01-07 18:29:19,588 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:29:19,588 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:29:19,588 INFO L74 IsIncluded]: Start isIncluded. First operand 158 states. Second operand 199 states. [2019-01-07 18:29:19,588 INFO L87 Difference]: Start difference. First operand 158 states. Second operand 199 states. [2019-01-07 18:29:19,593 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:29:19,593 INFO L93 Difference]: Finished difference Result 199 states and 789 transitions. [2019-01-07 18:29:19,593 INFO L276 IsEmpty]: Start isEmpty. Operand 199 states and 789 transitions. [2019-01-07 18:29:19,593 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:29:19,594 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:29:19,594 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:29:19,594 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:29:19,594 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 158 states. [2019-01-07 18:29:19,598 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 158 states to 158 states and 646 transitions. [2019-01-07 18:29:19,599 INFO L78 Accepts]: Start accepts. Automaton has 158 states and 646 transitions. Word has length 7 [2019-01-07 18:29:19,599 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:29:19,599 INFO L480 AbstractCegarLoop]: Abstraction has 158 states and 646 transitions. [2019-01-07 18:29:19,599 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 18:29:19,599 INFO L276 IsEmpty]: Start isEmpty. Operand 158 states and 646 transitions. [2019-01-07 18:29:19,600 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-07 18:29:19,600 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:29:19,600 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-07 18:29:19,600 INFO L423 AbstractCegarLoop]: === Iteration 50 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:29:19,600 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:29:19,600 INFO L82 PathProgramCache]: Analyzing trace with hash 2042527720, now seen corresponding path program 2 times [2019-01-07 18:29:19,600 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:29:19,601 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:29:19,601 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:29:19,601 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:29:19,601 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:29:19,604 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:29:19,804 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-01-07 18:29:19,806 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-01-07 18:29:19,807 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-01-07 18:29:19,808 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-01-07 18:29:19,809 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-01-07 18:29:19,809 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-01-07 18:29:19,810 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-01-07 18:29:19,810 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 18:29:19,810 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:29:19,811 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:29:19,811 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-07 18:29:19,811 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-07 18:29:19,811 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:29:19,811 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 48 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 48 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:29:19,820 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-07 18:29:19,821 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-07 18:29:19,827 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-07 18:29:19,827 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-07 18:29:19,837 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:29:19,838 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:29:19,858 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:29:19,865 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-07 18:29:19,876 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:19,877 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 26 [2019-01-07 18:29:19,895 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:19,897 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:19,898 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 33 [2019-01-07 18:29:19,901 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:29:19,913 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:29:19,924 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:29:19,935 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:29:19,949 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:29:19,950 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:22, output treesize:27 [2019-01-07 18:29:19,955 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:29:19,956 WARN L385 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-01-07 18:29:19,956 WARN L386 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-01-07 18:29:20,007 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:20,008 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:20,010 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:20,011 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:20,011 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 34 [2019-01-07 18:29:20,014 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:29:20,030 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:29:20,030 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:22 [2019-01-07 18:29:20,825 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:29:20,825 WARN L385 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-01-07 18:29:20,825 WARN L386 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-01-07 18:29:20,871 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:20,873 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:20,874 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:20,875 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:20,876 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:20,877 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:20,878 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 28 treesize of output 50 [2019-01-07 18:29:20,882 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:29:20,903 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:29:20,904 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:34, output treesize:24 [2019-01-07 18:29:20,913 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:29:20,914 WARN L385 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-01-07 18:29:20,914 WARN L386 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-01-07 18:29:20,959 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:20,960 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:20,961 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:20,962 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:20,963 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:20,964 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:20,965 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:20,966 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:29:20,966 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 28 treesize of output 55 [2019-01-07 18:29:20,970 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:29:20,994 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:29:20,995 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:34, output treesize:24 [2019-01-07 18:29:21,316 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:29:21,316 WARN L385 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-01-07 18:29:21,316 WARN L386 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-01-07 18:29:21,392 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-01-07 18:29:21,393 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-01-07 18:29:21,394 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-01-07 18:29:21,396 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-01-07 18:29:21,397 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-01-07 18:29:21,398 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-01-07 18:29:21,399 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-01-07 18:29:21,399 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:29:21,400 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:29:21,466 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-01-07 18:29:21,467 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-01-07 18:29:21,467 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-01-07 18:29:21,468 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-01-07 18:29:21,491 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-01-07 18:29:21,505 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-01-07 18:29:21,519 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-01-07 18:29:21,520 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 3 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:29:21,545 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:29:21,546 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-07 18:29:21,546 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:29:21,546 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-01-07 18:29:21,546 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:29:21,546 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 18:29:21,568 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:29:21,568 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 18:29:21,568 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 18:29:21,568 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=61, Invalid=95, Unknown=0, NotChecked=0, Total=156 [2019-01-07 18:29:21,568 INFO L87 Difference]: Start difference. First operand 158 states and 646 transitions. Second operand 10 states. [2019-01-07 18:29:29,785 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:29:29,785 INFO L93 Difference]: Finished difference Result 161 states and 653 transitions. [2019-01-07 18:29:29,785 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-07 18:29:29,785 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-01-07 18:29:29,785 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:29:29,785 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:29:29,786 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 33 transitions. [2019-01-07 18:29:29,786 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:29:29,786 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 33 transitions. [2019-01-07 18:29:29,786 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 33 transitions. [2019-01-07 18:29:29,837 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 33 edges. 33 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:29:29,841 INFO L225 Difference]: With dead ends: 161 [2019-01-07 18:29:29,841 INFO L226 Difference]: Without dead ends: 156 [2019-01-07 18:29:29,841 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 20 GetRequests, 5 SyntacticMatches, 1 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 43 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=89, Invalid=151, Unknown=0, NotChecked=0, Total=240 [2019-01-07 18:29:29,841 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 156 states. [2019-01-07 18:29:31,444 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 156 to 33. [2019-01-07 18:29:31,444 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:29:31,444 INFO L82 GeneralOperation]: Start isEquivalent. First operand 156 states. Second operand 33 states. [2019-01-07 18:29:31,444 INFO L74 IsIncluded]: Start isIncluded. First operand 156 states. Second operand 33 states. [2019-01-07 18:29:31,444 INFO L87 Difference]: Start difference. First operand 156 states. Second operand 33 states. [2019-01-07 18:29:31,448 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:29:31,448 INFO L93 Difference]: Finished difference Result 156 states and 632 transitions. [2019-01-07 18:29:31,448 INFO L276 IsEmpty]: Start isEmpty. Operand 156 states and 632 transitions. [2019-01-07 18:29:31,449 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:29:31,449 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:29:31,449 INFO L74 IsIncluded]: Start isIncluded. First operand 33 states. Second operand 156 states. [2019-01-07 18:29:31,449 INFO L87 Difference]: Start difference. First operand 33 states. Second operand 156 states. [2019-01-07 18:29:31,452 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:29:31,452 INFO L93 Difference]: Finished difference Result 156 states and 632 transitions. [2019-01-07 18:29:31,453 INFO L276 IsEmpty]: Start isEmpty. Operand 156 states and 632 transitions. [2019-01-07 18:29:31,453 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:29:31,453 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:29:31,453 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:29:31,453 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:29:31,453 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 33 states. [2019-01-07 18:29:31,454 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 33 states to 33 states and 119 transitions. [2019-01-07 18:29:31,454 INFO L78 Accepts]: Start accepts. Automaton has 33 states and 119 transitions. Word has length 7 [2019-01-07 18:29:31,454 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:29:31,454 INFO L480 AbstractCegarLoop]: Abstraction has 33 states and 119 transitions. [2019-01-07 18:29:31,454 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 18:29:31,454 INFO L276 IsEmpty]: Start isEmpty. Operand 33 states and 119 transitions. [2019-01-07 18:29:31,454 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 9 [2019-01-07 18:29:31,454 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:29:31,455 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1] [2019-01-07 18:29:31,455 INFO L423 AbstractCegarLoop]: === Iteration 51 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:29:31,455 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:29:31,455 INFO L82 PathProgramCache]: Analyzing trace with hash -305786232, now seen corresponding path program 1 times [2019-01-07 18:29:31,455 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:29:31,456 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:29:31,456 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-07 18:29:31,456 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:29:31,456 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:29:31,459 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:29:31,791 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-01-07 18:29:31,792 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-01-07 18:29:31,793 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-01-07 18:29:31,794 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-01-07 18:29:31,794 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-01-07 18:29:31,794 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-01-07 18:29:31,795 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-01-07 18:29:31,795 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-01-07 18:29:31,795 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:29:31,796 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:29:31,796 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:29:31,796 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 9 with the following transitions: [2019-01-07 18:29:31,796 INFO L207 CegarAbsIntRunner]: [0], [6], [14], [16], [20], [22], [24], [25] [2019-01-07 18:29:31,797 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:29:31,798 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:29:31,808 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:29:31,808 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-01-07 18:29:31,808 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:29:31,808 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:29:31,809 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:29:31,809 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 49 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 49 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:29:31,819 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:29:31,820 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:29:31,824 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:29:31,828 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:29:31,829 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:29:31,851 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:29:31,862 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:31,863 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 18:29:31,877 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:31,878 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:31,879 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 18:29:31,897 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:31,901 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:31,902 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:31,903 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 18:29:31,908 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:29:31,928 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:29:31,940 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:29:31,951 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:29:31,967 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:29:31,968 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 18:29:31,973 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:29:31,974 WARN L385 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-01-07 18:29:31,974 WARN L386 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-01-07 18:29:32,038 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:32,039 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:32,041 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:32,042 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:32,043 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:32,045 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:32,046 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:32,047 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 18:29:32,052 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:29:32,085 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:29:32,085 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 18:29:32,133 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:29:32,133 WARN L385 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-01-07 18:29:32,133 WARN L386 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-01-07 18:29:32,195 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:32,197 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:32,198 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:32,199 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:32,200 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:32,227 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:32,249 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:32,271 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:32,289 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:32,290 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 57 [2019-01-07 18:29:32,295 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:29:32,326 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:29:32,326 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 18:29:32,334 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:29:32,334 WARN L385 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-01-07 18:29:32,334 WARN L386 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-01-07 18:29:32,422 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:32,424 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:32,426 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:32,428 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:32,430 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:32,432 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:32,434 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:32,437 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:32,439 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:32,441 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:32,441 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:29:32,442 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 77 [2019-01-07 18:29:32,450 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:29:32,504 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:29:32,505 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-07 18:29:32,520 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:29:32,520 WARN L385 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-01-07 18:29:32,520 WARN L386 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-01-07 18:29:32,685 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-01-07 18:29:32,709 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-01-07 18:29:32,720 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-01-07 18:29:32,722 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-01-07 18:29:32,723 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-01-07 18:29:32,727 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-01-07 18:29:32,727 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-01-07 18:29:32,736 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-01-07 18:29:32,737 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:29:32,737 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:29:32,828 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-01-07 18:29:32,829 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-01-07 18:29:32,829 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-01-07 18:29:32,830 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-01-07 18:29:32,831 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-01-07 18:29:32,832 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-01-07 18:29:32,834 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-01-07 18:29:32,836 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-01-07 18:29:32,836 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 3 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:29:32,857 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:29:32,857 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-07 18:29:32,857 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:29:32,858 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 8 [2019-01-07 18:29:32,858 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:29:32,858 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 18:29:32,884 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 16 edges. 16 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:29:32,884 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 18:29:32,884 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 18:29:32,885 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=70, Invalid=112, Unknown=0, NotChecked=0, Total=182 [2019-01-07 18:29:32,885 INFO L87 Difference]: Start difference. First operand 33 states and 119 transitions. Second operand 10 states. [2019-01-07 18:29:36,470 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:29:36,470 INFO L93 Difference]: Finished difference Result 62 states and 209 transitions. [2019-01-07 18:29:36,470 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-07 18:29:36,470 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 8 [2019-01-07 18:29:36,471 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:29:36,471 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:29:36,471 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 45 transitions. [2019-01-07 18:29:36,472 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:29:36,472 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 45 transitions. [2019-01-07 18:29:36,472 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 45 transitions. [2019-01-07 18:29:36,536 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 45 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:29:36,537 INFO L225 Difference]: With dead ends: 62 [2019-01-07 18:29:36,537 INFO L226 Difference]: Without dead ends: 52 [2019-01-07 18:29:36,537 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-01-07 18:29:36,538 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 52 states. [2019-01-07 18:29:39,444 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 52 to 45. [2019-01-07 18:29:39,445 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:29:39,445 INFO L82 GeneralOperation]: Start isEquivalent. First operand 52 states. Second operand 45 states. [2019-01-07 18:29:39,445 INFO L74 IsIncluded]: Start isIncluded. First operand 52 states. Second operand 45 states. [2019-01-07 18:29:39,445 INFO L87 Difference]: Start difference. First operand 52 states. Second operand 45 states. [2019-01-07 18:29:39,447 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:29:39,447 INFO L93 Difference]: Finished difference Result 52 states and 195 transitions. [2019-01-07 18:29:39,447 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 195 transitions. [2019-01-07 18:29:39,448 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:29:39,448 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:29:39,448 INFO L74 IsIncluded]: Start isIncluded. First operand 45 states. Second operand 52 states. [2019-01-07 18:29:39,448 INFO L87 Difference]: Start difference. First operand 45 states. Second operand 52 states. [2019-01-07 18:29:39,449 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:29:39,449 INFO L93 Difference]: Finished difference Result 52 states and 195 transitions. [2019-01-07 18:29:39,449 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 195 transitions. [2019-01-07 18:29:39,450 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:29:39,450 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:29:39,450 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:29:39,450 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:29:39,450 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 45 states. [2019-01-07 18:29:39,451 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 45 states to 45 states and 167 transitions. [2019-01-07 18:29:39,451 INFO L78 Accepts]: Start accepts. Automaton has 45 states and 167 transitions. Word has length 8 [2019-01-07 18:29:39,451 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:29:39,451 INFO L480 AbstractCegarLoop]: Abstraction has 45 states and 167 transitions. [2019-01-07 18:29:39,451 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 18:29:39,451 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 167 transitions. [2019-01-07 18:29:39,452 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 9 [2019-01-07 18:29:39,452 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:29:39,452 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1] [2019-01-07 18:29:39,452 INFO L423 AbstractCegarLoop]: === Iteration 52 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:29:39,452 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:29:39,452 INFO L82 PathProgramCache]: Analyzing trace with hash -477561138, now seen corresponding path program 1 times [2019-01-07 18:29:39,452 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:29:39,453 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:29:39,453 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:29:39,453 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:29:39,453 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:29:39,456 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:29:40,345 WARN L181 SmtUtils]: Spent 527.00 ms on a formula simplification. DAG size of input: 38 DAG size of output: 21 [2019-01-07 18:29:40,474 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-01-07 18:29:40,475 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-01-07 18:29:40,476 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-01-07 18:29:40,477 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-01-07 18:29:40,478 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-01-07 18:29:40,478 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-01-07 18:29:40,479 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-01-07 18:29:40,479 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-01-07 18:29:40,480 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2019-01-07 18:29:40,480 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:29:40,480 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:29:40,481 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 9 with the following transitions: [2019-01-07 18:29:40,481 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [14], [20], [22], [24], [25] [2019-01-07 18:29:40,482 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:29:40,482 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:29:40,514 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:29:40,515 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-01-07 18:29:40,515 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:29:40,515 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:29:40,515 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:29:40,515 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 50 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 50 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:29:40,524 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:29:40,524 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:29:40,528 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:29:40,543 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:29:40,543 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:29:40,561 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:29:40,569 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:40,570 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 18:29:40,583 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:40,585 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:40,586 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 18:29:40,602 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:40,603 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:40,605 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:40,605 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 18:29:40,610 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:29:40,631 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:29:40,642 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:29:40,653 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:29:40,668 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:29:40,669 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-07 18:29:40,673 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:29:40,673 WARN L385 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-01-07 18:29:40,674 WARN L386 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-01-07 18:29:40,730 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:40,731 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:40,732 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:40,734 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:40,735 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:40,736 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:40,738 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:40,739 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 18:29:40,743 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:29:40,774 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:29:40,774 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-07 18:29:40,947 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:29:40,947 WARN L385 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-01-07 18:29:40,947 WARN L386 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-01-07 18:29:41,008 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:41,009 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:41,010 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:41,012 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:41,013 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:41,014 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:41,015 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:41,016 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:41,017 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:41,018 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 65 [2019-01-07 18:29:41,023 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:29:41,059 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:29:41,060 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 18:29:41,782 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:29:41,783 WARN L385 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-01-07 18:29:41,783 WARN L386 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-01-07 18:29:41,861 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:41,862 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:41,863 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:41,865 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:41,866 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:41,867 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:41,868 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:41,869 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:41,870 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:41,871 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:41,872 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:29:41,873 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 77 [2019-01-07 18:29:41,877 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:29:41,918 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:29:41,918 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-07 18:29:41,932 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:29:41,933 WARN L385 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-01-07 18:29:41,933 WARN L386 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-01-07 18:29:42,041 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-01-07 18:29:42,043 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-01-07 18:29:42,045 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-01-07 18:29:42,048 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-01-07 18:29:42,049 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-01-07 18:29:42,049 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-01-07 18:29:42,050 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-01-07 18:29:42,050 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-01-07 18:29:42,051 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:29:42,051 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:29:42,123 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-01-07 18:29:42,124 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-01-07 18:29:42,124 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-01-07 18:29:42,125 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-01-07 18:29:42,126 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-01-07 18:29:42,127 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-01-07 18:29:42,129 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-01-07 18:29:42,131 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-01-07 18:29:42,132 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 1 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:29:42,153 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:29:42,153 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 4, 4] total 10 [2019-01-07 18:29:42,153 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:29:42,153 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 8 [2019-01-07 18:29:42,154 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:29:42,154 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 18:29:42,181 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 16 edges. 16 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:29:42,182 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 18:29:42,182 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 18:29:42,182 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=46, Invalid=86, Unknown=0, NotChecked=0, Total=132 [2019-01-07 18:29:42,182 INFO L87 Difference]: Start difference. First operand 45 states and 167 transitions. Second operand 8 states. [2019-01-07 18:29:45,898 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:29:45,898 INFO L93 Difference]: Finished difference Result 59 states and 204 transitions. [2019-01-07 18:29:45,898 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-07 18:29:45,898 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 8 [2019-01-07 18:29:45,899 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:29:45,899 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:29:45,899 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 37 transitions. [2019-01-07 18:29:45,900 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 18:29:45,900 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 37 transitions. [2019-01-07 18:29:45,900 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 37 transitions. [2019-01-07 18:29:46,045 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 37 edges. 37 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:29:46,046 INFO L225 Difference]: With dead ends: 59 [2019-01-07 18:29:46,047 INFO L226 Difference]: Without dead ends: 52 [2019-01-07 18:29:46,047 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 24 GetRequests, 7 SyntacticMatches, 4 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 41 ImplicationChecksByTransitivity, 1.1s TimeCoverageRelationStatistics Valid=73, Invalid=137, Unknown=0, NotChecked=0, Total=210 [2019-01-07 18:29:46,047 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 52 states. [2019-01-07 18:29:49,105 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 52 to 45. [2019-01-07 18:29:49,105 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:29:49,105 INFO L82 GeneralOperation]: Start isEquivalent. First operand 52 states. Second operand 45 states. [2019-01-07 18:29:49,105 INFO L74 IsIncluded]: Start isIncluded. First operand 52 states. Second operand 45 states. [2019-01-07 18:29:49,105 INFO L87 Difference]: Start difference. First operand 52 states. Second operand 45 states. [2019-01-07 18:29:49,106 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:29:49,107 INFO L93 Difference]: Finished difference Result 52 states and 195 transitions. [2019-01-07 18:29:49,107 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 195 transitions. [2019-01-07 18:29:49,107 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:29:49,107 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:29:49,107 INFO L74 IsIncluded]: Start isIncluded. First operand 45 states. Second operand 52 states. [2019-01-07 18:29:49,107 INFO L87 Difference]: Start difference. First operand 45 states. Second operand 52 states. [2019-01-07 18:29:49,109 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:29:49,109 INFO L93 Difference]: Finished difference Result 52 states and 195 transitions. [2019-01-07 18:29:49,109 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 195 transitions. [2019-01-07 18:29:49,109 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:29:49,109 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:29:49,109 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:29:49,109 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:29:49,109 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 45 states. [2019-01-07 18:29:49,110 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 45 states to 45 states and 167 transitions. [2019-01-07 18:29:49,110 INFO L78 Accepts]: Start accepts. Automaton has 45 states and 167 transitions. Word has length 8 [2019-01-07 18:29:49,110 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:29:49,110 INFO L480 AbstractCegarLoop]: Abstraction has 45 states and 167 transitions. [2019-01-07 18:29:49,110 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 18:29:49,111 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 167 transitions. [2019-01-07 18:29:49,111 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 10 [2019-01-07 18:29:49,111 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:29:49,111 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1, 1, 1] [2019-01-07 18:29:49,111 INFO L423 AbstractCegarLoop]: === Iteration 53 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:29:49,111 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:29:49,111 INFO L82 PathProgramCache]: Analyzing trace with hash -1160942496, now seen corresponding path program 2 times [2019-01-07 18:29:49,111 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:29:49,112 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:29:49,112 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:29:49,112 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:29:49,112 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:29:49,115 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:29:49,371 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-01-07 18:29:49,372 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-01-07 18:29:49,373 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-01-07 18:29:49,374 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-01-07 18:29:49,375 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-01-07 18:29:49,375 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-01-07 18:29:49,376 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-01-07 18:29:49,376 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-01-07 18:29:49,377 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-01-07 18:29:49,378 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 7 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2019-01-07 18:29:49,378 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:29:49,378 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:29:49,378 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-07 18:29:49,378 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-07 18:29:49,379 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:29:49,379 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 51 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 51 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:29:49,392 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-07 18:29:49,392 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-07 18:29:49,399 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-07 18:29:49,400 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-07 18:29:49,403 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:29:49,403 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:29:49,430 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:29:49,442 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,443 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 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-01-07 18:29:49,463 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,464 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,465 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 18:29:49,481 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,482 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,484 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,485 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 18:29:49,490 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:29:49,510 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:29:49,522 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:29:49,533 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:29:49,549 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:29:49,550 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 18:29:49,559 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:29:49,559 WARN L385 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-01-07 18:29:49,559 WARN L386 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-01-07 18:29:49,614 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,615 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,616 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,617 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,619 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,620 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,621 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,622 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 18:29:49,631 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:29:49,659 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:29:49,660 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-07 18:29:49,678 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:29:49,678 WARN L385 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-01-07 18:29:49,678 WARN L386 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-01-07 18:29:49,733 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,734 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,736 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,737 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,738 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,740 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,741 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,742 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,743 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,744 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 59 [2019-01-07 18:29:49,749 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:29:49,783 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:29:49,783 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:42, output treesize:32 [2019-01-07 18:29:49,788 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:29:49,788 WARN L385 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-01-07 18:29:49,788 WARN L386 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-01-07 18:29:49,844 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,846 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,847 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,849 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,850 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,851 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,852 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,854 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,855 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,856 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,857 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,858 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,859 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 12 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 79 [2019-01-07 18:29:49,863 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:29:49,901 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:29:49,902 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-07 18:29:49,909 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:29:49,909 WARN L385 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-01-07 18:29:49,909 WARN L386 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-01-07 18:29:49,968 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,969 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,970 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,972 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,973 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,974 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,975 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,976 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,977 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,978 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,980 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,981 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:49,981 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 12 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 89 [2019-01-07 18:29:49,985 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:29:50,028 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:29:50,028 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-07 18:29:50,041 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:29:50,041 WARN L385 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-01-07 18:29:50,042 WARN L386 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-01-07 18:29:50,133 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-01-07 18:29:50,135 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-01-07 18:29:50,137 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-01-07 18:29:50,139 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-01-07 18:29:50,142 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-01-07 18:29:50,143 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-01-07 18:29:50,144 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-01-07 18:29:50,145 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-01-07 18:29:50,146 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-01-07 18:29:50,147 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:29:50,147 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:29:50,264 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-01-07 18:29:50,264 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-01-07 18:29:50,265 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-01-07 18:29:50,265 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-01-07 18:29:50,266 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-01-07 18:29:50,268 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-01-07 18:29:50,269 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-01-07 18:29:50,271 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-01-07 18:29:50,273 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-01-07 18:29:50,274 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 2 proven. 8 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:29:50,294 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:29:50,294 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 5, 5] total 13 [2019-01-07 18:29:50,294 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:29:50,294 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 9 [2019-01-07 18:29:50,294 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:29:50,295 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 18:29:50,354 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 17 edges. 17 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:29:50,354 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 18:29:50,354 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 18:29:50,354 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=76, Invalid=134, Unknown=0, NotChecked=0, Total=210 [2019-01-07 18:29:50,354 INFO L87 Difference]: Start difference. First operand 45 states and 167 transitions. Second operand 10 states. [2019-01-07 18:29:55,162 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:29:55,162 INFO L93 Difference]: Finished difference Result 67 states and 237 transitions. [2019-01-07 18:29:55,162 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-07 18:29:55,162 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 9 [2019-01-07 18:29:55,162 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:29:55,162 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:29:55,163 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 45 transitions. [2019-01-07 18:29:55,163 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:29:55,163 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 45 transitions. [2019-01-07 18:29:55,163 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 45 transitions. [2019-01-07 18:29:55,231 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 45 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:29:55,231 INFO L225 Difference]: With dead ends: 67 [2019-01-07 18:29:55,231 INFO L226 Difference]: Without dead ends: 32 [2019-01-07 18:29:55,232 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 25 GetRequests, 8 SyntacticMatches, 2 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 73 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=96, Invalid=176, Unknown=0, NotChecked=0, Total=272 [2019-01-07 18:29:55,232 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 32 states. [2019-01-07 18:29:57,103 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 32 to 30. [2019-01-07 18:29:57,104 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:29:57,104 INFO L82 GeneralOperation]: Start isEquivalent. First operand 32 states. Second operand 30 states. [2019-01-07 18:29:57,104 INFO L74 IsIncluded]: Start isIncluded. First operand 32 states. Second operand 30 states. [2019-01-07 18:29:57,104 INFO L87 Difference]: Start difference. First operand 32 states. Second operand 30 states. [2019-01-07 18:29:57,105 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:29:57,105 INFO L93 Difference]: Finished difference Result 32 states and 106 transitions. [2019-01-07 18:29:57,105 INFO L276 IsEmpty]: Start isEmpty. Operand 32 states and 106 transitions. [2019-01-07 18:29:57,105 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:29:57,105 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:29:57,105 INFO L74 IsIncluded]: Start isIncluded. First operand 30 states. Second operand 32 states. [2019-01-07 18:29:57,105 INFO L87 Difference]: Start difference. First operand 30 states. Second operand 32 states. [2019-01-07 18:29:57,106 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:29:57,106 INFO L93 Difference]: Finished difference Result 32 states and 106 transitions. [2019-01-07 18:29:57,106 INFO L276 IsEmpty]: Start isEmpty. Operand 32 states and 106 transitions. [2019-01-07 18:29:57,106 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:29:57,106 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:29:57,107 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:29:57,107 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:29:57,107 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 30 states. [2019-01-07 18:29:57,108 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 30 states to 30 states and 100 transitions. [2019-01-07 18:29:57,108 INFO L78 Accepts]: Start accepts. Automaton has 30 states and 100 transitions. Word has length 9 [2019-01-07 18:29:57,108 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:29:57,108 INFO L480 AbstractCegarLoop]: Abstraction has 30 states and 100 transitions. [2019-01-07 18:29:57,109 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 18:29:57,109 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states and 100 transitions. [2019-01-07 18:29:57,109 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 10 [2019-01-07 18:29:57,109 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:29:57,109 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1, 1, 1] [2019-01-07 18:29:57,109 INFO L423 AbstractCegarLoop]: === Iteration 54 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:29:57,109 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:29:57,110 INFO L82 PathProgramCache]: Analyzing trace with hash -1292813016, now seen corresponding path program 1 times [2019-01-07 18:29:57,110 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:29:57,110 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:29:57,110 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-07 18:29:57,110 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:29:57,111 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:29:57,113 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:29:57,343 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-01-07 18:29:57,344 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-01-07 18:29:57,345 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-01-07 18:29:57,346 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-01-07 18:29:57,347 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-01-07 18:29:57,347 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-01-07 18:29:57,348 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-01-07 18:29:57,348 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-01-07 18:29:57,349 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-01-07 18:29:57,349 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 7 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2019-01-07 18:29:57,350 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:29:57,350 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:29:57,350 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 10 with the following transitions: [2019-01-07 18:29:57,350 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [16], [20], [22], [24], [25] [2019-01-07 18:29:57,352 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:29:57,352 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:29:57,361 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:29:57,361 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-01-07 18:29:57,362 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:29:57,362 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:29:57,362 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:29:57,362 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 52 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 52 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:29:57,372 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:29:57,372 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:29:57,376 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:29:57,380 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:29:57,381 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:29:57,403 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:29:57,411 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:57,412 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 18:29:57,423 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:57,425 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:57,425 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 18:29:57,440 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:57,441 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:57,443 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:57,443 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 18:29:57,447 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:29:57,467 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:29:57,478 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:29:57,489 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:29:57,505 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:29:57,506 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 18:29:57,512 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:29:57,512 WARN L385 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-01-07 18:29:57,513 WARN L386 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-01-07 18:29:57,569 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:57,570 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:57,572 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:57,573 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:57,574 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:57,575 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:57,576 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:57,577 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 18:29:57,581 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:29:57,612 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:29:57,613 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-07 18:29:57,626 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:29:57,627 WARN L385 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-01-07 18:29:57,627 WARN L386 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-01-07 18:29:57,688 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:57,690 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:57,691 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:57,692 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:57,694 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:57,695 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:57,696 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:57,697 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:57,699 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:57,699 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 57 [2019-01-07 18:29:57,704 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:29:57,738 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:29:57,739 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 18:29:57,813 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:29:57,813 WARN L385 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-01-07 18:29:57,813 WARN L386 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-01-07 18:29:57,873 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:57,874 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:57,875 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:57,877 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:57,878 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:57,879 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:57,880 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:57,881 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:57,882 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:29:57,883 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 65 [2019-01-07 18:29:57,888 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:29:57,922 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:29:57,922 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-07 18:30:00,026 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:30:00,026 WARN L385 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-01-07 18:30:00,026 WARN L386 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-01-07 18:30:00,120 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:00,122 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:00,123 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:00,124 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:00,125 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:00,127 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:00,128 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:00,129 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:00,130 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:00,131 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:00,132 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:00,133 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:30:00,133 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 78 [2019-01-07 18:30:00,138 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:30:00,182 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:30:00,182 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-07 18:30:00,192 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:30:00,193 WARN L385 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-01-07 18:30:00,193 WARN L386 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-01-07 18:30:00,324 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-01-07 18:30:00,326 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-01-07 18:30:00,328 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-01-07 18:30:00,331 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-01-07 18:30:00,333 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-01-07 18:30:00,333 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-01-07 18:30:00,334 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-01-07 18:30:00,335 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-01-07 18:30:00,336 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-01-07 18:30:00,337 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:30:00,337 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:30:00,425 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-01-07 18:30:00,426 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-01-07 18:30:00,426 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-01-07 18:30:00,427 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-01-07 18:30:00,428 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-01-07 18:30:00,429 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-01-07 18:30:00,430 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-01-07 18:30:00,432 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-01-07 18:30:00,434 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-01-07 18:30:00,435 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 4 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:30:00,455 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:30:00,455 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 5, 5] total 13 [2019-01-07 18:30:00,455 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:30:00,455 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 9 [2019-01-07 18:30:00,455 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:30:00,456 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 18:30:00,489 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 17 edges. 17 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:30:00,489 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 18:30:00,489 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 18:30:00,489 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=79, Invalid=131, Unknown=0, NotChecked=0, Total=210 [2019-01-07 18:30:00,489 INFO L87 Difference]: Start difference. First operand 30 states and 100 transitions. Second operand 10 states. [2019-01-07 18:30:03,637 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:30:03,638 INFO L93 Difference]: Finished difference Result 47 states and 147 transitions. [2019-01-07 18:30:03,638 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-07 18:30:03,638 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 9 [2019-01-07 18:30:03,638 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:30:03,638 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:30:03,639 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 42 transitions. [2019-01-07 18:30:03,639 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 18:30:03,639 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 42 transitions. [2019-01-07 18:30:03,639 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 42 transitions. [2019-01-07 18:30:03,698 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 42 edges. 42 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:30:03,699 INFO L225 Difference]: With dead ends: 47 [2019-01-07 18:30:03,699 INFO L226 Difference]: Without dead ends: 40 [2019-01-07 18:30:03,699 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-01-07 18:30:03,699 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 40 states. [2019-01-07 18:30:06,186 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 40 to 36. [2019-01-07 18:30:06,186 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:30:06,186 INFO L82 GeneralOperation]: Start isEquivalent. First operand 40 states. Second operand 36 states. [2019-01-07 18:30:06,186 INFO L74 IsIncluded]: Start isIncluded. First operand 40 states. Second operand 36 states. [2019-01-07 18:30:06,186 INFO L87 Difference]: Start difference. First operand 40 states. Second operand 36 states. [2019-01-07 18:30:06,187 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:30:06,188 INFO L93 Difference]: Finished difference Result 40 states and 138 transitions. [2019-01-07 18:30:06,188 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 138 transitions. [2019-01-07 18:30:06,188 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:30:06,188 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:30:06,188 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 40 states. [2019-01-07 18:30:06,188 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 40 states. [2019-01-07 18:30:06,189 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:30:06,189 INFO L93 Difference]: Finished difference Result 40 states and 138 transitions. [2019-01-07 18:30:06,190 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 138 transitions. [2019-01-07 18:30:06,190 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:30:06,190 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:30:06,190 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:30:06,190 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:30:06,190 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 36 states. [2019-01-07 18:30:06,191 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 36 states to 36 states and 122 transitions. [2019-01-07 18:30:06,191 INFO L78 Accepts]: Start accepts. Automaton has 36 states and 122 transitions. Word has length 9 [2019-01-07 18:30:06,191 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:30:06,191 INFO L480 AbstractCegarLoop]: Abstraction has 36 states and 122 transitions. [2019-01-07 18:30:06,191 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 18:30:06,191 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 122 transitions. [2019-01-07 18:30:06,191 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 10 [2019-01-07 18:30:06,191 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:30:06,191 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1, 1, 1] [2019-01-07 18:30:06,192 INFO L423 AbstractCegarLoop]: === Iteration 55 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:30:06,192 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:30:06,192 INFO L82 PathProgramCache]: Analyzing trace with hash -1875225892, now seen corresponding path program 2 times [2019-01-07 18:30:06,192 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:30:06,193 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:30:06,193 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:30:06,193 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:30:06,193 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:30:06,195 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:30:06,466 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-01-07 18:30:06,467 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-01-07 18:30:06,467 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-01-07 18:30:06,468 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-01-07 18:30:06,469 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-01-07 18:30:06,469 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-01-07 18:30:06,469 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-01-07 18:30:06,470 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-01-07 18:30:06,470 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-01-07 18:30:06,471 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 8 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2019-01-07 18:30:06,471 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:30:06,471 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:30:06,472 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-07 18:30:06,472 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-07 18:30:06,472 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:30:06,472 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 53 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 53 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:30:06,482 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-07 18:30:06,482 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-07 18:30:06,488 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-07 18:30:06,489 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-07 18:30:06,496 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:30:06,496 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:30:06,514 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:30:06,522 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:06,523 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 18:30:06,533 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:06,535 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:06,535 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 18:30:06,549 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:06,551 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:06,552 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:06,553 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 18:30:06,557 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:30:06,577 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:30:06,588 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:30:06,598 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:30:06,614 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:30:06,614 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 18:30:06,621 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:30:06,621 WARN L385 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-01-07 18:30:06,621 WARN L386 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-01-07 18:30:06,674 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:06,676 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:06,677 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:06,678 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:06,679 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:06,681 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:06,682 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:06,682 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 18:30:06,686 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:30:06,720 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:30:06,720 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-07 18:30:06,733 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:30:06,734 WARN L385 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-01-07 18:30:06,734 WARN L386 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-01-07 18:30:06,791 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:06,793 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:06,794 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:06,795 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:06,797 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:06,798 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:06,799 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:06,800 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:06,802 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:06,802 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 65 [2019-01-07 18:30:06,807 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:30:06,844 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:30:06,844 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 18:30:06,851 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:30:06,851 WARN L385 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-01-07 18:30:06,851 WARN L386 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-01-07 18:30:06,913 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:06,914 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:06,916 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:06,917 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:06,918 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:06,919 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:06,920 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:06,921 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:06,923 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:06,924 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:06,925 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:06,925 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:30:06,926 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 78 [2019-01-07 18:30:06,930 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:30:06,972 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:30:06,972 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-07 18:30:06,989 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:30:06,989 WARN L385 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-01-07 18:30:06,989 WARN L386 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-01-07 18:30:07,044 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:07,045 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:07,046 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:07,047 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:07,049 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:07,050 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:07,051 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:07,052 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:07,053 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:07,054 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:07,055 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:07,056 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:07,057 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 12 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 81 [2019-01-07 18:30:07,062 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:30:07,105 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:30:07,105 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:44, output treesize:34 [2019-01-07 18:30:07,115 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:30:07,116 WARN L385 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-01-07 18:30:07,116 WARN L386 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-01-07 18:30:07,212 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-01-07 18:30:07,214 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-01-07 18:30:07,216 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-01-07 18:30:07,219 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-01-07 18:30:07,222 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-01-07 18:30:07,223 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-01-07 18:30:07,224 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-01-07 18:30:07,225 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-01-07 18:30:07,225 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-01-07 18:30:07,227 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:30:07,227 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:30:07,326 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-01-07 18:30:07,327 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-01-07 18:30:07,327 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-01-07 18:30:07,328 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-01-07 18:30:07,329 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-01-07 18:30:07,330 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-01-07 18:30:07,332 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-01-07 18:30:07,334 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-01-07 18:30:07,336 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-01-07 18:30:07,337 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 6 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:30:07,357 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:30:07,357 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 5, 5] total 14 [2019-01-07 18:30:07,357 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:30:07,357 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 9 [2019-01-07 18:30:07,357 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:30:07,357 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states. [2019-01-07 18:30:07,389 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 18 edges. 18 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:30:07,389 INFO L459 AbstractCegarLoop]: Interpolant automaton has 11 states [2019-01-07 18:30:07,389 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2019-01-07 18:30:07,389 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=92, Invalid=148, Unknown=0, NotChecked=0, Total=240 [2019-01-07 18:30:07,389 INFO L87 Difference]: Start difference. First operand 36 states and 122 transitions. Second operand 11 states. [2019-01-07 18:30:11,062 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:30:11,063 INFO L93 Difference]: Finished difference Result 52 states and 168 transitions. [2019-01-07 18:30:11,063 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-07 18:30:11,063 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 9 [2019-01-07 18:30:11,063 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:30:11,063 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2019-01-07 18:30:11,064 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 43 transitions. [2019-01-07 18:30:11,064 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2019-01-07 18:30:11,064 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 43 transitions. [2019-01-07 18:30:11,064 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 43 transitions. [2019-01-07 18:30:11,128 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 43 edges. 43 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:30:11,129 INFO L225 Difference]: With dead ends: 52 [2019-01-07 18:30:11,129 INFO L226 Difference]: Without dead ends: 45 [2019-01-07 18:30:11,130 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 25 GetRequests, 7 SyntacticMatches, 2 SemanticMatches, 16 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 88 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=112, Invalid=194, Unknown=0, NotChecked=0, Total=306 [2019-01-07 18:30:11,130 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 45 states. [2019-01-07 18:30:13,906 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 45 to 40. [2019-01-07 18:30:13,906 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:30:13,906 INFO L82 GeneralOperation]: Start isEquivalent. First operand 45 states. Second operand 40 states. [2019-01-07 18:30:13,906 INFO L74 IsIncluded]: Start isIncluded. First operand 45 states. Second operand 40 states. [2019-01-07 18:30:13,906 INFO L87 Difference]: Start difference. First operand 45 states. Second operand 40 states. [2019-01-07 18:30:13,907 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:30:13,907 INFO L93 Difference]: Finished difference Result 45 states and 158 transitions. [2019-01-07 18:30:13,907 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 158 transitions. [2019-01-07 18:30:13,907 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:30:13,907 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:30:13,908 INFO L74 IsIncluded]: Start isIncluded. First operand 40 states. Second operand 45 states. [2019-01-07 18:30:13,908 INFO L87 Difference]: Start difference. First operand 40 states. Second operand 45 states. [2019-01-07 18:30:13,908 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:30:13,909 INFO L93 Difference]: Finished difference Result 45 states and 158 transitions. [2019-01-07 18:30:13,909 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 158 transitions. [2019-01-07 18:30:13,909 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:30:13,909 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:30:13,909 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:30:13,909 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:30:13,909 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 40 states. [2019-01-07 18:30:13,910 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 40 states to 40 states and 138 transitions. [2019-01-07 18:30:13,910 INFO L78 Accepts]: Start accepts. Automaton has 40 states and 138 transitions. Word has length 9 [2019-01-07 18:30:13,910 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:30:13,910 INFO L480 AbstractCegarLoop]: Abstraction has 40 states and 138 transitions. [2019-01-07 18:30:13,910 INFO L481 AbstractCegarLoop]: Interpolant automaton has 11 states. [2019-01-07 18:30:13,910 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 138 transitions. [2019-01-07 18:30:13,910 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 10 [2019-01-07 18:30:13,911 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:30:13,911 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1] [2019-01-07 18:30:13,911 INFO L423 AbstractCegarLoop]: === Iteration 56 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:30:13,911 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:30:13,911 INFO L82 PathProgramCache]: Analyzing trace with hash -1867837724, now seen corresponding path program 1 times [2019-01-07 18:30:13,911 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:30:13,912 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:30:13,912 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-07 18:30:13,912 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:30:13,912 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:30:13,915 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:30:14,271 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-01-07 18:30:14,272 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-01-07 18:30:14,273 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-01-07 18:30:14,274 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-01-07 18:30:14,275 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-01-07 18:30:14,276 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-01-07 18:30:14,276 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-01-07 18:30:14,277 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-01-07 18:30:14,277 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-01-07 18:30:14,278 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 9 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 18:30:14,278 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:30:14,278 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:30:14,278 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 10 with the following transitions: [2019-01-07 18:30:14,279 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [14], [16], [20], [22], [24], [25] [2019-01-07 18:30:14,280 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 18:30:14,280 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 18:30:14,291 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 18:30:14,291 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-01-07 18:30:14,291 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:30:14,291 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 18:30:14,292 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:30:14,292 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 54 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 54 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:30:14,301 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:30:14,301 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 18:30:14,305 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:30:14,312 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:30:14,312 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:30:14,332 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:30:14,340 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:14,341 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 18:30:14,354 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:14,355 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:14,356 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 18:30:14,507 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:14,529 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:14,556 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:14,557 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 18:30:14,582 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:30:14,680 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:30:14,692 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:30:14,702 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:30:14,719 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:30:14,719 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-07 18:30:14,723 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:30:14,724 WARN L385 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-01-07 18:30:14,724 WARN L386 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-01-07 18:30:14,780 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:14,781 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:14,783 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:14,784 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:14,785 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:14,786 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:14,787 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:14,788 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 18:30:14,793 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:30:14,825 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:30:14,825 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-07 18:30:16,832 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:30:16,833 WARN L385 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-01-07 18:30:16,833 WARN L386 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-01-07 18:30:16,895 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:16,897 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:16,898 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:16,899 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:16,901 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:16,902 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:16,903 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:16,905 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:16,906 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:16,907 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 65 [2019-01-07 18:30:16,911 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:30:16,948 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:30:16,948 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 18:30:18,988 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:30:18,988 WARN L385 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-01-07 18:30:18,988 WARN L386 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-01-07 18:30:19,069 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:19,070 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:19,071 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:19,073 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:19,074 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:19,075 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:19,076 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:19,077 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:19,078 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:19,079 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:19,080 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:19,081 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:30:19,082 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 78 [2019-01-07 18:30:19,086 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:30:19,127 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:30:19,128 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-07 18:30:19,137 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:30:19,138 WARN L385 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-01-07 18:30:19,138 WARN L386 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-01-07 18:30:19,198 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:19,200 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:19,201 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:19,202 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:19,204 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:19,205 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:19,206 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:19,207 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:19,208 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:19,210 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:19,210 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:30:19,211 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 75 [2019-01-07 18:30:19,215 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:30:19,257 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:30:19,257 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:44, output treesize:34 [2019-01-07 18:30:19,285 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:30:19,286 WARN L385 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-01-07 18:30:19,286 WARN L386 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-01-07 18:30:19,471 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-01-07 18:30:19,473 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-01-07 18:30:19,475 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-01-07 18:30:19,477 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-01-07 18:30:19,479 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-01-07 18:30:19,480 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-01-07 18:30:19,480 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-01-07 18:30:19,481 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-01-07 18:30:19,482 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-01-07 18:30:19,483 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:30:19,483 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:30:19,583 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-01-07 18:30:19,584 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-01-07 18:30:19,584 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-01-07 18:30:19,585 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-01-07 18:30:19,586 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-01-07 18:30:19,587 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-01-07 18:30:19,589 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-01-07 18:30:19,591 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-01-07 18:30:19,593 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-01-07 18:30:19,594 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 6 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:30:19,614 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:30:19,614 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5, 5] total 14 [2019-01-07 18:30:19,614 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:30:19,614 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 9 [2019-01-07 18:30:19,614 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:30:19,615 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-01-07 18:30:19,643 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 18 edges. 18 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:30:19,644 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-01-07 18:30:19,644 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-01-07 18:30:19,644 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=95, Invalid=145, Unknown=0, NotChecked=0, Total=240 [2019-01-07 18:30:19,644 INFO L87 Difference]: Start difference. First operand 40 states and 138 transitions. Second operand 12 states. [2019-01-07 18:30:24,391 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:30:24,392 INFO L93 Difference]: Finished difference Result 66 states and 218 transitions. [2019-01-07 18:30:24,392 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2019-01-07 18:30:24,392 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 9 [2019-01-07 18:30:24,392 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:30:24,392 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-07 18:30:24,393 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 51 transitions. [2019-01-07 18:30:24,393 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-07 18:30:24,393 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 51 transitions. [2019-01-07 18:30:24,393 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 51 transitions. [2019-01-07 18:30:24,469 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 51 edges. 51 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:30:24,471 INFO L225 Difference]: With dead ends: 66 [2019-01-07 18:30:24,471 INFO L226 Difference]: Without dead ends: 56 [2019-01-07 18:30:24,471 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 27 GetRequests, 7 SyntacticMatches, 3 SemanticMatches, 17 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 86 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=127, Invalid=215, Unknown=0, NotChecked=0, Total=342 [2019-01-07 18:30:24,471 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 56 states. [2019-01-07 18:30:27,413 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 56 to 40. [2019-01-07 18:30:27,414 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:30:27,414 INFO L82 GeneralOperation]: Start isEquivalent. First operand 56 states. Second operand 40 states. [2019-01-07 18:30:27,414 INFO L74 IsIncluded]: Start isIncluded. First operand 56 states. Second operand 40 states. [2019-01-07 18:30:27,414 INFO L87 Difference]: Start difference. First operand 56 states. Second operand 40 states. [2019-01-07 18:30:27,416 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:30:27,416 INFO L93 Difference]: Finished difference Result 56 states and 202 transitions. [2019-01-07 18:30:27,416 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 202 transitions. [2019-01-07 18:30:27,416 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:30:27,417 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:30:27,417 INFO L74 IsIncluded]: Start isIncluded. First operand 40 states. Second operand 56 states. [2019-01-07 18:30:27,417 INFO L87 Difference]: Start difference. First operand 40 states. Second operand 56 states. [2019-01-07 18:30:27,418 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:30:27,418 INFO L93 Difference]: Finished difference Result 56 states and 202 transitions. [2019-01-07 18:30:27,418 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 202 transitions. [2019-01-07 18:30:27,418 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:30:27,419 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:30:27,419 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:30:27,419 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:30:27,419 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 40 states. [2019-01-07 18:30:27,419 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 40 states to 40 states and 140 transitions. [2019-01-07 18:30:27,420 INFO L78 Accepts]: Start accepts. Automaton has 40 states and 140 transitions. Word has length 9 [2019-01-07 18:30:27,420 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:30:27,420 INFO L480 AbstractCegarLoop]: Abstraction has 40 states and 140 transitions. [2019-01-07 18:30:27,420 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-01-07 18:30:27,420 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 140 transitions. [2019-01-07 18:30:27,420 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 11 [2019-01-07 18:30:27,420 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 18:30:27,420 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1, 1, 1, 1] [2019-01-07 18:30:27,420 INFO L423 AbstractCegarLoop]: === Iteration 57 === [ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT]=== [2019-01-07 18:30:27,421 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 18:30:27,421 INFO L82 PathProgramCache]: Analyzing trace with hash 638911500, now seen corresponding path program 2 times [2019-01-07 18:30:27,421 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 18:30:27,421 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:30:27,421 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 18:30:27,421 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 18:30:27,421 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 18:30:27,425 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:30:27,923 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-01-07 18:30:27,924 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-01-07 18:30:27,925 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-01-07 18:30:27,926 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-01-07 18:30:27,927 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-01-07 18:30:27,928 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-01-07 18:30:27,928 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-01-07 18:30:27,929 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-01-07 18:30:27,929 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-01-07 18:30:27,930 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-01-07 18:30:27,931 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 0 proven. 12 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2019-01-07 18:30:27,931 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:30:27,931 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 18:30:27,931 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-07 18:30:27,932 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-07 18:30:27,932 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 18:30:27,932 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 55 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 55 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 18:30:27,941 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-07 18:30:27,942 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-07 18:30:27,948 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 4 check-sat command(s) [2019-01-07 18:30:27,949 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-07 18:30:27,952 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 18:30:27,953 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 18:30:27,970 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 18:30:27,976 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:27,977 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 18:30:27,986 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:27,988 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:27,989 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 18:30:28,002 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:28,004 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:28,005 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:28,006 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 18:30:28,009 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 18:30:28,026 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:30:28,037 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:30:28,045 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:30:28,060 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 18:30:28,060 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-07 18:30:28,065 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:30:28,065 WARN L385 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-01-07 18:30:28,065 WARN L386 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-01-07 18:30:28,114 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:28,116 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:28,117 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:28,119 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:28,120 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:28,121 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:28,122 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:28,123 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 18:30:28,126 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:30:28,157 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:30:28,158 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-07 18:30:28,936 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:30:28,936 WARN L385 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-01-07 18:30:28,936 WARN L386 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-01-07 18:30:29,029 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,031 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,033 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,034 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,035 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,037 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,039 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,041 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,043 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 18:30:29,043 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 58 [2019-01-07 18:30:29,046 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:30:29,098 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:30:29,098 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:42, output treesize:32 [2019-01-07 18:30:29,109 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:30:29,110 WARN L385 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-01-07 18:30:29,110 WARN L386 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-01-07 18:30:29,176 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,177 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,178 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,180 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,181 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,182 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,183 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,184 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,185 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,186 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 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 61 [2019-01-07 18:30:29,190 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:30:29,223 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 18:30:29,223 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:44, output treesize:34 [2019-01-07 18:30:29,229 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:30:29,229 WARN L385 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-01-07 18:30:29,229 WARN L386 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-01-07 18:30:29,280 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,282 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,283 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,285 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,286 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,287 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,289 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,290 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,291 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,292 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,294 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,295 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,296 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 12 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 81 [2019-01-07 18:30:29,299 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:30:29,341 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 18:30:29,342 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:44, output treesize:34 [2019-01-07 18:30:29,351 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:30:29,352 WARN L385 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-01-07 18:30:29,352 WARN L386 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-01-07 18:30:29,408 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,409 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,410 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,412 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,413 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,414 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,415 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,416 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,417 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,418 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,420 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,421 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 18:30:29,422 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 12 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 81 [2019-01-07 18:30:29,425 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 18:30:29,469 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 18:30:29,469 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:44, output treesize:34 [2019-01-07 18:30:29,481 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 18:30:29,482 WARN L385 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-01-07 18:30:29,482 WARN L386 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-01-07 18:30:29,569 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-01-07 18:30:29,571 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-01-07 18:30:29,573 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-01-07 18:30:29,575 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-01-07 18:30:29,577 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-01-07 18:30:29,580 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-01-07 18:30:29,581 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-01-07 18:30:29,582 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-01-07 18:30:29,583 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-01-07 18:30:29,584 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-01-07 18:30:29,586 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 0 proven. 15 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:30:29,586 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 18:30:29,707 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-01-07 18:30:29,708 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-01-07 18:30:29,708 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-01-07 18:30:29,709 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-01-07 18:30:29,710 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-01-07 18:30:29,711 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-01-07 18:30:29,713 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-01-07 18:30:29,715 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-01-07 18:30:29,717 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-01-07 18:30:29,719 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-01-07 18:30:29,719 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 5 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 18:30:29,738 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 18:30:29,739 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 6, 6] total 16 [2019-01-07 18:30:29,739 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 18:30:29,739 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 10 [2019-01-07 18:30:29,739 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 18:30:29,739 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-01-07 18:30:29,768 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 19 edges. 19 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:30:29,768 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-01-07 18:30:29,769 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-01-07 18:30:29,769 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=106, Invalid=200, Unknown=0, NotChecked=0, Total=306 [2019-01-07 18:30:29,769 INFO L87 Difference]: Start difference. First operand 40 states and 140 transitions. Second operand 12 states. [2019-01-07 18:30:33,634 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:30:33,634 INFO L93 Difference]: Finished difference Result 48 states and 164 transitions. [2019-01-07 18:30:33,634 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2019-01-07 18:30:33,634 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 10 [2019-01-07 18:30:33,635 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 18:30:33,635 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-07 18:30:33,635 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 40 transitions. [2019-01-07 18:30:33,635 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-07 18:30:33,636 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 40 transitions. [2019-01-07 18:30:33,636 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 40 transitions. [2019-01-07 18:30:33,708 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 40 edges. 40 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 18:30:33,708 INFO L225 Difference]: With dead ends: 48 [2019-01-07 18:30:33,708 INFO L226 Difference]: Without dead ends: 0 [2019-01-07 18:30:33,709 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 30 GetRequests, 8 SyntacticMatches, 3 SemanticMatches, 19 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 125 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=139, Invalid=281, Unknown=0, NotChecked=0, Total=420 [2019-01-07 18:30:33,709 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 0 states. [2019-01-07 18:30:33,710 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 0 to 0. [2019-01-07 18:30:33,710 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 18:30:33,710 INFO L82 GeneralOperation]: Start isEquivalent. First operand 0 states. Second operand 0 states. [2019-01-07 18:30:33,710 INFO L74 IsIncluded]: Start isIncluded. First operand 0 states. Second operand 0 states. [2019-01-07 18:30:33,710 INFO L87 Difference]: Start difference. First operand 0 states. Second operand 0 states. [2019-01-07 18:30:33,710 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:30:33,711 INFO L93 Difference]: Finished difference Result 0 states and 0 transitions. [2019-01-07 18:30:33,711 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2019-01-07 18:30:33,711 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:30:33,711 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:30:33,711 INFO L74 IsIncluded]: Start isIncluded. First operand 0 states. Second operand 0 states. [2019-01-07 18:30:33,711 INFO L87 Difference]: Start difference. First operand 0 states. Second operand 0 states. [2019-01-07 18:30:33,711 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 18:30:33,711 INFO L93 Difference]: Finished difference Result 0 states and 0 transitions. [2019-01-07 18:30:33,712 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2019-01-07 18:30:33,712 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:30:33,712 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 18:30:33,712 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 18:30:33,712 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 18:30:33,712 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 0 states. [2019-01-07 18:30:33,712 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 0 states to 0 states and 0 transitions. [2019-01-07 18:30:33,712 INFO L78 Accepts]: Start accepts. Automaton has 0 states and 0 transitions. Word has length 10 [2019-01-07 18:30:33,712 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 18:30:33,712 INFO L480 AbstractCegarLoop]: Abstraction has 0 states and 0 transitions. [2019-01-07 18:30:33,712 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-01-07 18:30:33,712 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2019-01-07 18:30:33,713 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 18:30:33,717 INFO L343 DoubleDeckerVisitor]: Before removal of dead ends 0 states and 0 transitions. [2019-01-07 18:30:33,751 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:33,761 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:33,785 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:34,035 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:34,036 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:34,048 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:34,084 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:34,230 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:34,258 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:34,260 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:34,270 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:34,272 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:34,377 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:34,385 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:34,390 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:34,405 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:34,408 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:34,469 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:34,474 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:34,475 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:34,625 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:34,626 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:34,651 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:34,701 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:34,767 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:35,681 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:35,692 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:35,809 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:35,909 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:35,910 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:35,927 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:35,949 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:35,951 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:36,003 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:36,016 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:36,138 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:36,153 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:36,624 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:36,675 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:36,731 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:36,789 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:36,823 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:37,043 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:37,529 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:37,616 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:37,965 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:37,966 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:37,966 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:38,054 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:38,202 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:38,586 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:38,590 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:38,719 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:38,784 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:38,816 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:38,849 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:38,919 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:38,920 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:38,920 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:38,929 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:38,934 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:38,973 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:39,367 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:39,395 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:39,413 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:39,436 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:39,437 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:40,101 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:40,353 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:40,423 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:40,848 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:41,080 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:41,081 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:41,292 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:41,835 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:41,837 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:41,837 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:42,448 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:42,503 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:42,507 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:43,083 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:43,086 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:43,086 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:43,096 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:44,189 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:44,193 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:44,301 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:45,124 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 18:30:45,169 WARN L181 SmtUtils]: Spent 11.45 s on a formula simplification. DAG size of input: 1855 DAG size of output: 1101 [2019-01-07 18:31:00,637 WARN L181 SmtUtils]: Spent 15.27 s on a formula simplification. DAG size of input: 1000 DAG size of output: 85 [2019-01-07 18:31:00,654 INFO L448 ceAbstractionStarter]: For program point ULTIMATE.startEXIT(lines 7 9) no Hoare annotation was computed. [2019-01-07 18:31:00,654 INFO L448 ceAbstractionStarter]: For program point ULTIMATE.startErr1ASSERT_VIOLATIONASSERT(line 44) no Hoare annotation was computed. [2019-01-07 18:31:00,655 INFO L448 ceAbstractionStarter]: For program point L46(line 46) no Hoare annotation was computed. [2019-01-07 18:31:00,655 INFO L448 ceAbstractionStarter]: For program point L44(line 44) no Hoare annotation was computed. [2019-01-07 18:31:00,655 INFO L448 ceAbstractionStarter]: For program point ULTIMATE.startErr0ASSERT_VIOLATIONASSERT(line 43) no Hoare annotation was computed. [2019-01-07 18:31:00,656 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-01-07 18:31:00,656 INFO L448 ceAbstractionStarter]: For program point ULTIMATE.startENTRY(lines 7 9) no Hoare annotation was computed. [2019-01-07 18:31:00,656 INFO L448 ceAbstractionStarter]: For program point ULTIMATE.startErr2ASSERT_VIOLATIONASSERT(line 45) no Hoare annotation was computed. [2019-01-07 18:31:00,656 INFO L448 ceAbstractionStarter]: For program point L14(lines 7 48) no Hoare annotation was computed. [2019-01-07 18:31:00,656 INFO L448 ceAbstractionStarter]: For program point L45(line 45) no Hoare annotation was computed. [2019-01-07 18:31:00,656 INFO L448 ceAbstractionStarter]: For program point ULTIMATE.startErr3ASSERT_VIOLATIONASSERT(line 46) no Hoare annotation was computed. [2019-01-07 18:31:00,658 WARN L170 areAnnotationChecker]: ULTIMATE.startENTRY has no Hoare annotation [2019-01-07 18:31:00,658 WARN L170 areAnnotationChecker]: ULTIMATE.startErr0ASSERT_VIOLATIONASSERT has no Hoare annotation [2019-01-07 18:31:00,658 WARN L170 areAnnotationChecker]: L44 has no Hoare annotation [2019-01-07 18:31:00,688 WARN L170 areAnnotationChecker]: L44 has no Hoare annotation [2019-01-07 18:31:00,688 WARN L170 areAnnotationChecker]: L44 has no Hoare annotation [2019-01-07 18:31:00,688 WARN L170 areAnnotationChecker]: L45 has no Hoare annotation [2019-01-07 18:31:00,689 WARN L170 areAnnotationChecker]: L45 has no Hoare annotation [2019-01-07 18:31:00,689 WARN L170 areAnnotationChecker]: L46 has no Hoare annotation [2019-01-07 18:31:00,689 WARN L170 areAnnotationChecker]: L46 has no Hoare annotation [2019-01-07 18:31:00,689 WARN L170 areAnnotationChecker]: L14 has no Hoare annotation [2019-01-07 18:31:00,689 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-01-07 18:31:00,724 INFO L202 PluginConnector]: Adding new model speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction CFG 07.01 06:31:00 BoogieIcfgContainer [2019-01-07 18:31:00,724 INFO L132 PluginConnector]: ------------------------ END TraceAbstraction---------------------------- [2019-01-07 18:31:00,725 INFO L168 Benchmark]: Toolchain (without parser) took 495433.49 ms. Allocated memory was 1.5 GB in the beginning and 2.6 GB in the end (delta: 1.0 GB). Free memory was 1.5 GB in the beginning and 2.3 GB in the end (delta: -812.3 MB). Peak memory consumption was 208.0 MB. Max. memory is 7.1 GB. [2019-01-07 18:31:00,726 INFO L168 Benchmark]: Boogie PL CUP Parser took 0.21 ms. Allocated memory is still 1.5 GB. Free memory is still 1.5 GB. There was no memory consumed. Max. memory is 7.1 GB. [2019-01-07 18:31:00,726 INFO L168 Benchmark]: Boogie Procedure Inliner took 79.87 ms. Allocated memory is still 1.5 GB. Free memory is still 1.5 GB. There was no memory consumed. Max. memory is 7.1 GB. [2019-01-07 18:31:00,726 INFO L168 Benchmark]: Boogie Preprocessor took 38.65 ms. Allocated memory is still 1.5 GB. Free memory is still 1.5 GB. There was no memory consumed. Max. memory is 7.1 GB. [2019-01-07 18:31:00,726 INFO L168 Benchmark]: RCFGBuilder took 679.28 ms. Allocated memory is still 1.5 GB. Free memory was 1.5 GB in the beginning and 1.4 GB in the end (delta: 21.1 MB). Peak memory consumption was 21.1 MB. Max. memory is 7.1 GB. [2019-01-07 18:31:00,726 INFO L168 Benchmark]: TraceAbstraction took 494630.57 ms. Allocated memory was 1.5 GB in the beginning and 2.6 GB in the end (delta: 1.0 GB). Free memory was 1.4 GB in the beginning and 2.3 GB in the end (delta: -833.4 MB). Peak memory consumption was 186.8 MB. Max. memory is 7.1 GB. [2019-01-07 18:31:00,727 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.21 ms. Allocated memory is still 1.5 GB. Free memory is still 1.5 GB. There was no memory consumed. Max. memory is 7.1 GB. * Boogie Procedure Inliner took 79.87 ms. Allocated memory is still 1.5 GB. Free memory is still 1.5 GB. There was no memory consumed. Max. memory is 7.1 GB. * Boogie Preprocessor took 38.65 ms. Allocated memory is still 1.5 GB. Free memory is still 1.5 GB. There was no memory consumed. Max. memory is 7.1 GB. * RCFGBuilder took 679.28 ms. Allocated memory is still 1.5 GB. Free memory was 1.5 GB in the beginning and 1.4 GB in the end (delta: 21.1 MB). Peak memory consumption was 21.1 MB. Max. memory is 7.1 GB. * TraceAbstraction took 494630.57 ms. Allocated memory was 1.5 GB in the beginning and 2.6 GB in the end (delta: 1.0 GB). Free memory was 1.4 GB in the beginning and 2.3 GB in the end (delta: -833.4 MB). Peak memory consumption was 186.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: 43]: 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: 46]: 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, 494.4s OverallTime, 57 OverallIterations, 2 TraceHistogramMax, 192.9s AutomataDifference, 0.0s DeadEndRemovalTime, 26.9s HoareAnnotationTime, HoareTripleCheckerStatistics: 210 SDtfs, 887 SDslu, 1 SDs, 0 SdLazy, 8756 SolverSat, 645 SolverUnsat, 0 SolverUnknown, 0 SolverNotchecked, 16.8s Time, PredicateUnifierStatistics: 0 DeclaredPredicates, 875 GetRequests, 174 SyntacticMatches, 38 SemanticMatches, 663 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 2487 ImplicationChecksByTransitivity, 27.1s 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: 133.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.4s HoareSimplificationTime, 1 FomulaSimplificationsInter, 10044512 FormulaSimplificationTreeSizeReductionInter, 15.2s HoareSimplificationTimeInter, RefinementEngineStatistics: TraceCheckStatistics: 0.0s SsaConstructionTime, 0.6s SatisfiabilityAnalysisTime, 136.5s 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...