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-unlimited.bpl -------------------------------------------------------------------------------- This is Ultimate 0.1.24-a9d37a5-m [2019-02-28 13:17:43,065 INFO L170 SettingsManager]: Resetting all preferences to default values... [2019-02-28 13:17:43,067 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2019-02-28 13:17:43,083 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2019-02-28 13:17:43,083 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2019-02-28 13:17:43,084 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2019-02-28 13:17:43,086 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2019-02-28 13:17:43,088 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2019-02-28 13:17:43,090 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2019-02-28 13:17:43,091 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2019-02-28 13:17:43,092 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2019-02-28 13:17:43,092 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2019-02-28 13:17:43,093 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2019-02-28 13:17:43,094 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2019-02-28 13:17:43,096 INFO L174 SettingsManager]: Resetting ChcToBoogie preferences to default values [2019-02-28 13:17:43,097 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2019-02-28 13:17:43,098 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2019-02-28 13:17:43,100 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2019-02-28 13:17:43,102 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2019-02-28 13:17:43,104 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2019-02-28 13:17:43,105 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2019-02-28 13:17:43,107 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2019-02-28 13:17:43,109 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2019-02-28 13:17:43,110 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2019-02-28 13:17:43,110 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2019-02-28 13:17:43,111 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2019-02-28 13:17:43,112 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2019-02-28 13:17:43,113 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2019-02-28 13:17:43,114 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2019-02-28 13:17:43,115 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2019-02-28 13:17:43,116 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2019-02-28 13:17:43,116 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2019-02-28 13:17:43,117 INFO L177 SettingsManager]: ReqParser provides no preferences, ignoring... [2019-02-28 13:17:43,117 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2019-02-28 13:17:43,121 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2019-02-28 13:17:43,122 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2019-02-28 13:17:43,122 INFO L98 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/settings/ai/array-bench/reach_32bit_compound_exp_cong.epf [2019-02-28 13:17:43,146 INFO L110 SettingsManager]: Loading preferences was successful [2019-02-28 13:17:43,146 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2019-02-28 13:17:43,148 INFO L131 SettingsManager]: Preferences of Boogie Preprocessor differ from their defaults: [2019-02-28 13:17:43,148 INFO L133 SettingsManager]: * Show backtranslation warnings=false [2019-02-28 13:17:43,148 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2019-02-28 13:17:43,149 INFO L133 SettingsManager]: * User list type=DISABLED [2019-02-28 13:17:43,149 INFO L133 SettingsManager]: * Inline calls to unimplemented procedures=true [2019-02-28 13:17:43,149 INFO L131 SettingsManager]: Preferences of Abstract Interpretation differ from their defaults: [2019-02-28 13:17:43,150 INFO L133 SettingsManager]: * Explicit value domain=true [2019-02-28 13:17:43,150 INFO L133 SettingsManager]: * Abstract domain for RCFG-of-the-future=PoormanAbstractDomain [2019-02-28 13:17:43,150 INFO L133 SettingsManager]: * Octagon Domain=false [2019-02-28 13:17:43,150 INFO L133 SettingsManager]: * Abstract domain=CompoundDomain [2019-02-28 13:17:43,150 INFO L133 SettingsManager]: * Check feasibility of abstract posts with an SMT solver=true [2019-02-28 13:17:43,151 INFO L133 SettingsManager]: * Interval Domain=false [2019-02-28 13:17:43,151 INFO L131 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2019-02-28 13:17:43,152 INFO L133 SettingsManager]: * Create parallel compositions if possible=false [2019-02-28 13:17:43,153 INFO L133 SettingsManager]: * Use SBE=true [2019-02-28 13:17:43,153 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2019-02-28 13:17:43,153 INFO L133 SettingsManager]: * sizeof long=4 [2019-02-28 13:17:43,154 INFO L133 SettingsManager]: * Overapproximate operations on floating types=true [2019-02-28 13:17:43,155 INFO L133 SettingsManager]: * sizeof POINTER=4 [2019-02-28 13:17:43,155 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2019-02-28 13:17:43,155 INFO L133 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2019-02-28 13:17:43,156 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2019-02-28 13:17:43,156 INFO L133 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2019-02-28 13:17:43,156 INFO L133 SettingsManager]: * sizeof long double=12 [2019-02-28 13:17:43,156 INFO L133 SettingsManager]: * Check if freed pointer was valid=false [2019-02-28 13:17:43,156 INFO L133 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2019-02-28 13:17:43,157 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2019-02-28 13:17:43,157 INFO L133 SettingsManager]: * Size of a code block=SequenceOfStatements [2019-02-28 13:17:43,157 INFO L133 SettingsManager]: * SMT solver=External_DefaultMode [2019-02-28 13:17:43,157 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:16092 -smt2 -in -t:200000 [2019-02-28 13:17:43,158 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2019-02-28 13:17:43,158 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2019-02-28 13:17:43,158 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2019-02-28 13:17:43,158 INFO L133 SettingsManager]: * Trace refinement strategy=TAIPAN [2019-02-28 13:17:43,158 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2019-02-28 13:17:43,158 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:16092 -smt2 -in [2019-02-28 13:17:43,160 INFO L133 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2019-02-28 13:17:43,160 INFO L133 SettingsManager]: * Abstract interpretation Mode=USE_PREDICATES [2019-02-28 13:17:43,203 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2019-02-28 13:17:43,216 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2019-02-28 13:17:43,219 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2019-02-28 13:17:43,221 INFO L271 PluginConnector]: Initializing Boogie PL CUP Parser... [2019-02-28 13:17:43,222 INFO L276 PluginConnector]: Boogie PL CUP Parser initialized [2019-02-28 13:17:43,222 INFO L418 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/programs/heapseparator/speedup-poc-dd-4-unlimited.bpl [2019-02-28 13:17:43,223 INFO L111 BoogieParser]: Parsing: '/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/programs/heapseparator/speedup-poc-dd-4-unlimited.bpl' [2019-02-28 13:17:43,264 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2019-02-28 13:17:43,265 INFO L131 ToolchainWalker]: Walking toolchain with 4 elements. [2019-02-28 13:17:43,266 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2019-02-28 13:17:43,266 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2019-02-28 13:17:43,266 INFO L276 PluginConnector]: Boogie Procedure Inliner initialized [2019-02-28 13:17:43,285 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "speedup-poc-dd-4-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 28.02 01:17:43" (1/1) ... [2019-02-28 13:17:43,298 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "speedup-poc-dd-4-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 28.02 01:17:43" (1/1) ... [2019-02-28 13:17:43,325 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2019-02-28 13:17:43,326 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2019-02-28 13:17:43,326 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2019-02-28 13:17:43,326 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2019-02-28 13:17:43,338 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "speedup-poc-dd-4-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 28.02 01:17:43" (1/1) ... [2019-02-28 13:17:43,338 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "speedup-poc-dd-4-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 28.02 01:17:43" (1/1) ... [2019-02-28 13:17:43,340 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "speedup-poc-dd-4-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 28.02 01:17:43" (1/1) ... [2019-02-28 13:17:43,340 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "speedup-poc-dd-4-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 28.02 01:17:43" (1/1) ... [2019-02-28 13:17:43,343 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "speedup-poc-dd-4-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 28.02 01:17:43" (1/1) ... [2019-02-28 13:17:43,348 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "speedup-poc-dd-4-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 28.02 01:17:43" (1/1) ... [2019-02-28 13:17:43,349 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "speedup-poc-dd-4-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 28.02 01:17:43" (1/1) ... [2019-02-28 13:17:43,351 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2019-02-28 13:17:43,351 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2019-02-28 13:17:43,351 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2019-02-28 13:17:43,352 INFO L276 PluginConnector]: RCFGBuilder initialized [2019-02-28 13:17:43,353 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "speedup-poc-dd-4-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 28.02 01:17:43" (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:16092 -smt2 -in -t:200000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:16092 -smt2 -in -t:200000 [2019-02-28 13:17:43,422 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2019-02-28 13:17:43,423 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2019-02-28 13:17:44,050 INFO L281 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2019-02-28 13:17:44,051 INFO L286 CfgBuilder]: Removed 11 assue(true) statements. [2019-02-28 13:17:44,052 INFO L202 PluginConnector]: Adding new model speedup-poc-dd-4-unlimited.bpl de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 28.02 01:17:44 BoogieIcfgContainer [2019-02-28 13:17:44,053 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2019-02-28 13:17:44,054 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2019-02-28 13:17:44,054 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2019-02-28 13:17:44,057 INFO L276 PluginConnector]: TraceAbstraction initialized [2019-02-28 13:17:44,058 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "speedup-poc-dd-4-unlimited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 28.02 01:17:43" (1/2) ... [2019-02-28 13:17:44,059 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@5dcb90a3 and model type speedup-poc-dd-4-unlimited.bpl de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 28.02 01:17:44, skipping insertion in model container [2019-02-28 13:17:44,059 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "speedup-poc-dd-4-unlimited.bpl de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 28.02 01:17:44" (2/2) ... [2019-02-28 13:17:44,061 INFO L112 eAbstractionObserver]: Analyzing ICFG speedup-poc-dd-4-unlimited.bpl [2019-02-28 13:17:44,070 INFO L156 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2019-02-28 13:17:44,079 INFO L168 ceAbstractionStarter]: Appying trace abstraction to program that has 4 error locations. [2019-02-28 13:17:44,097 INFO L257 AbstractCegarLoop]: Starting to check reachability of 4 error locations. [2019-02-28 13:17:44,131 INFO L382 AbstractCegarLoop]: Interprodecural is true [2019-02-28 13:17:44,132 INFO L383 AbstractCegarLoop]: Hoare is true [2019-02-28 13:17:44,132 INFO L384 AbstractCegarLoop]: Compute interpolants for FPandBP [2019-02-28 13:17:44,132 INFO L385 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2019-02-28 13:17:44,132 INFO L386 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2019-02-28 13:17:44,133 INFO L387 AbstractCegarLoop]: Difference is false [2019-02-28 13:17:44,133 INFO L388 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2019-02-28 13:17:44,133 INFO L393 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2019-02-28 13:17:44,149 INFO L276 IsEmpty]: Start isEmpty. Operand 11 states. [2019-02-28 13:17:44,155 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 3 [2019-02-28 13:17:44,155 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:17:44,156 INFO L402 BasicCegarLoop]: trace histogram [1, 1] [2019-02-28 13:17:44,159 INFO L423 AbstractCegarLoop]: === Iteration 1 === [ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:17:44,165 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:17:44,166 INFO L82 PathProgramCache]: Analyzing trace with hash 980, now seen corresponding path program 1 times [2019-02-28 13:17:44,168 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:17:44,223 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:17:44,224 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:17:44,224 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:17:44,225 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:17:44,275 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:17:44,420 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;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {16#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-02-28 13:17:44,430 INFO L273 TraceCheckUtils]: 1: Hoare triple {16#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {15#false} is VALID [2019-02-28 13:17:44,432 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:17:44,434 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2019-02-28 13:17:44,434 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [1] imperfect sequences [] total 1 [2019-02-28 13:17:44,435 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-02-28 13:17:44,439 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 2 [2019-02-28 13:17:44,441 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:17:44,444 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states. [2019-02-28 13:17:44,464 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 2 edges. 2 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:17:44,465 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2019-02-28 13:17:44,474 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2019-02-28 13:17:44,474 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-02-28 13:17:44,477 INFO L87 Difference]: Start difference. First operand 11 states. Second operand 3 states. [2019-02-28 13:17:44,830 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:17:44,830 INFO L93 Difference]: Finished difference Result 21 states and 27 transitions. [2019-02-28 13:17:44,830 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-02-28 13:17:44,830 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 2 [2019-02-28 13:17:44,831 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:17:44,832 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-02-28 13:17:44,836 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 27 transitions. [2019-02-28 13:17:44,836 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-02-28 13:17:44,840 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 27 transitions. [2019-02-28 13:17:44,840 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 27 transitions. [2019-02-28 13:17:45,105 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 27 edges. 27 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:17:45,116 INFO L225 Difference]: With dead ends: 21 [2019-02-28 13:17:45,117 INFO L226 Difference]: Without dead ends: 16 [2019-02-28 13:17:45,120 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 1 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 1 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-02-28 13:17:45,136 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 16 states. [2019-02-28 13:17:45,160 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 16 to 10. [2019-02-28 13:17:45,160 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:17:45,161 INFO L82 GeneralOperation]: Start isEquivalent. First operand 16 states. Second operand 10 states. [2019-02-28 13:17:45,161 INFO L74 IsIncluded]: Start isIncluded. First operand 16 states. Second operand 10 states. [2019-02-28 13:17:45,162 INFO L87 Difference]: Start difference. First operand 16 states. Second operand 10 states. [2019-02-28 13:17:45,165 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:17:45,165 INFO L93 Difference]: Finished difference Result 16 states and 22 transitions. [2019-02-28 13:17:45,166 INFO L276 IsEmpty]: Start isEmpty. Operand 16 states and 22 transitions. [2019-02-28 13:17:45,166 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:17:45,166 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:17:45,167 INFO L74 IsIncluded]: Start isIncluded. First operand 10 states. Second operand 16 states. [2019-02-28 13:17:45,167 INFO L87 Difference]: Start difference. First operand 10 states. Second operand 16 states. [2019-02-28 13:17:45,171 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:17:45,171 INFO L93 Difference]: Finished difference Result 16 states and 22 transitions. [2019-02-28 13:17:45,171 INFO L276 IsEmpty]: Start isEmpty. Operand 16 states and 22 transitions. [2019-02-28 13:17:45,177 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:17:45,177 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:17:45,177 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:17:45,177 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:17:45,178 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-28 13:17:45,182 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 17 transitions. [2019-02-28 13:17:45,186 INFO L78 Accepts]: Start accepts. Automaton has 10 states and 17 transitions. Word has length 2 [2019-02-28 13:17:45,186 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:17:45,186 INFO L480 AbstractCegarLoop]: Abstraction has 10 states and 17 transitions. [2019-02-28 13:17:45,187 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2019-02-28 13:17:45,187 INFO L276 IsEmpty]: Start isEmpty. Operand 10 states and 17 transitions. [2019-02-28 13:17:45,187 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-02-28 13:17:45,187 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:17:45,188 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-02-28 13:17:45,188 INFO L423 AbstractCegarLoop]: === Iteration 2 === [ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:17:45,188 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:17:45,189 INFO L82 PathProgramCache]: Analyzing trace with hash 30306, now seen corresponding path program 1 times [2019-02-28 13:17:45,189 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:17:45,191 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:17:45,191 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:17:45,191 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:17:45,191 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:17:45,216 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:17:45,302 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;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {88#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-28 13:17:45,303 INFO L273 TraceCheckUtils]: 1: Hoare triple {88#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {89#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-02-28 13:17:45,305 INFO L273 TraceCheckUtils]: 2: Hoare triple {89#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {87#false} is VALID [2019-02-28 13:17:45,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-02-28 13:17:45,306 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:17:45,306 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:17:45,307 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 4 with the following transitions: [2019-02-28 13:17:45,309 INFO L207 CegarAbsIntRunner]: [0], [16], [19] [2019-02-28 13:17:45,347 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-28 13:17:45,348 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-28 13:17:45,441 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-28 13:17:45,442 INFO L272 AbstractInterpreter]: Visited 3 different actions 3 times. Never merged. Never widened. Performed 44 root evaluator evaluations with a maximum evaluation depth of 2. Performed 44 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-02-28 13:17:45,449 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:17:45,450 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-28 13:17:45,450 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:17:45,450 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:17:45,460 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:17:45,460 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-28 13:17:45,470 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:17:45,472 WARN L254 TraceCheckSpWp]: Trace formula consists of 17 conjuncts, 12 conjunts are in the unsatisfiable core [2019-02-28 13:17:45,485 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:17:45,488 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:17:45,771 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:17:45,846 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:45,848 INFO L442 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 20 [2019-02-28 13:17:45,922 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:45,944 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:45,969 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:45,971 INFO L442 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 22 [2019-02-28 13:17:46,025 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:46,030 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:46,036 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:46,038 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:46,045 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:46,047 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:46,049 INFO L442 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 21 [2019-02-28 13:17:46,055 INFO L315 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-28 13:17:46,079 INFO L315 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:17:46,126 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:17:46,142 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:17:46,402 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 3 new quantified variables, introduced 0 case distinctions, treesize of input 16 treesize of output 10 [2019-02-28 13:17:46,410 INFO L315 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-02-28 13:17:46,441 INFO L315 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:17:46,553 INFO L315 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:17:46,706 INFO L315 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:17:46,815 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:17:46,816 INFO L209 ElimStorePlain]: Needed 9 recursive calls to eliminate 4 variables, input treesize:49, output treesize:45 [2019-02-28 13:17:46,823 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:17:46,824 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_22|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, |v_#valid_6|]. (let ((.cse1 (store |v_#valid_6| ULTIMATE.start_main_p1 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p2 1))) (and (= (select .cse0 ULTIMATE.start_main_p3) 0) (= (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4) 0) (= |#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)) (= 0 (select .cse1 ULTIMATE.start_main_p2))))) [2019-02-28 13:17:46,824 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-28 13:17:47,225 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 26 [2019-02-28 13:17:47,237 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:17:47,275 INFO L315 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-02-28 13:17:47,275 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:55, output treesize:35 [2019-02-28 13:17:49,205 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:17:49,206 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_23|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_23| ULTIMATE.start_main_p4))) (and (= .cse0 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (store |v_#memory_int_23| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_23| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_23| ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |v_#memory_int_23| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-02-28 13:17:49,206 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-02-28 13:17:49,248 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;#memory_int := #memory_int[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 (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-28 13:17:49,251 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 (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {97#(and (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)))} is VALID [2019-02-28 13:17:49,253 INFO L273 TraceCheckUtils]: 2: Hoare triple {97#(and (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)))} assume !(#memory_int[main_p1] >= 0); {87#false} is VALID [2019-02-28 13:17:49,254 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:17:49,254 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-28 13:17:49,285 INFO L273 TraceCheckUtils]: 2: Hoare triple {101#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {87#false} is VALID [2019-02-28 13:17:49,293 INFO L273 TraceCheckUtils]: 1: Hoare triple {105#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {101#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:17:49,294 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;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {105#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:17:49,295 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:17:49,315 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-28 13:17:49,316 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-02-28 13:17:49,316 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-28 13:17:49,316 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-02-28 13:17:49,317 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:17:49,317 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-02-28 13:17:49,335 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 6 edges. 6 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:17:49,335 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-02-28 13:17:49,335 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-02-28 13:17:49,336 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-02-28 13:17:49,336 INFO L87 Difference]: Start difference. First operand 10 states and 17 transitions. Second operand 6 states. [2019-02-28 13:17:49,977 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:17:49,977 INFO L93 Difference]: Finished difference Result 31 states and 44 transitions. [2019-02-28 13:17:49,977 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-02-28 13:17:49,977 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-02-28 13:17:49,978 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:17:49,978 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-02-28 13:17:49,980 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 44 transitions. [2019-02-28 13:17:49,980 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-02-28 13:17:49,982 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 44 transitions. [2019-02-28 13:17:49,982 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 44 transitions. [2019-02-28 13:17:50,071 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 44 edges. 44 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:17:50,073 INFO L225 Difference]: With dead ends: 31 [2019-02-28 13:17:50,074 INFO L226 Difference]: Without dead ends: 28 [2019-02-28 13:17:50,075 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 7 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=31, Invalid=41, Unknown=0, NotChecked=0, Total=72 [2019-02-28 13:17:50,075 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 28 states. [2019-02-28 13:17:50,127 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 28 to 13. [2019-02-28 13:17:50,128 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:17:50,128 INFO L82 GeneralOperation]: Start isEquivalent. First operand 28 states. Second operand 13 states. [2019-02-28 13:17:50,128 INFO L74 IsIncluded]: Start isIncluded. First operand 28 states. Second operand 13 states. [2019-02-28 13:17:50,128 INFO L87 Difference]: Start difference. First operand 28 states. Second operand 13 states. [2019-02-28 13:17:50,131 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:17:50,131 INFO L93 Difference]: Finished difference Result 28 states and 40 transitions. [2019-02-28 13:17:50,131 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 40 transitions. [2019-02-28 13:17:50,132 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:17:50,132 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:17:50,132 INFO L74 IsIncluded]: Start isIncluded. First operand 13 states. Second operand 28 states. [2019-02-28 13:17:50,133 INFO L87 Difference]: Start difference. First operand 13 states. Second operand 28 states. [2019-02-28 13:17:50,135 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:17:50,135 INFO L93 Difference]: Finished difference Result 28 states and 40 transitions. [2019-02-28 13:17:50,136 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 40 transitions. [2019-02-28 13:17:50,136 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:17:50,136 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:17:50,137 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:17:50,137 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:17:50,137 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2019-02-28 13:17:50,138 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 25 transitions. [2019-02-28 13:17:50,139 INFO L78 Accepts]: Start accepts. Automaton has 13 states and 25 transitions. Word has length 3 [2019-02-28 13:17:50,139 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:17:50,139 INFO L480 AbstractCegarLoop]: Abstraction has 13 states and 25 transitions. [2019-02-28 13:17:50,139 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-02-28 13:17:50,139 INFO L276 IsEmpty]: Start isEmpty. Operand 13 states and 25 transitions. [2019-02-28 13:17:50,140 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-02-28 13:17:50,140 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:17:50,140 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-02-28 13:17:50,141 INFO L423 AbstractCegarLoop]: === Iteration 3 === [ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:17:50,141 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:17:50,141 INFO L82 PathProgramCache]: Analyzing trace with hash 30432, now seen corresponding path program 1 times [2019-02-28 13:17:50,141 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:17:50,142 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:17:50,143 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:17:50,143 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:17:50,143 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:17:50,154 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:17:50,188 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;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {219#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:17:50,190 INFO L273 TraceCheckUtils]: 1: Hoare triple {219#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {219#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:17:50,192 INFO L273 TraceCheckUtils]: 2: Hoare triple {219#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {218#false} is VALID [2019-02-28 13:17:50,193 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:17:50,193 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2019-02-28 13:17:50,193 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [1] imperfect sequences [] total 1 [2019-02-28 13:17:50,194 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-02-28 13:17:50,194 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 3 [2019-02-28 13:17:50,195 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:17:50,195 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states. [2019-02-28 13:17:50,204 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 3 edges. 3 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:17:50,204 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2019-02-28 13:17:50,204 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2019-02-28 13:17:50,204 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-02-28 13:17:50,205 INFO L87 Difference]: Start difference. First operand 13 states and 25 transitions. Second operand 3 states. [2019-02-28 13:17:50,312 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:17:50,312 INFO L93 Difference]: Finished difference Result 15 states and 25 transitions. [2019-02-28 13:17:50,313 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-02-28 13:17:50,313 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 3 [2019-02-28 13:17:50,313 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:17:50,313 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-02-28 13:17:50,314 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 20 transitions. [2019-02-28 13:17:50,315 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-02-28 13:17:50,315 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 20 transitions. [2019-02-28 13:17:50,316 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 20 transitions. [2019-02-28 13:17:50,344 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 20 edges. 20 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:17:50,345 INFO L225 Difference]: With dead ends: 15 [2019-02-28 13:17:50,345 INFO L226 Difference]: Without dead ends: 14 [2019-02-28 13:17:50,346 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 1 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 1 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-02-28 13:17:50,347 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 14 states. [2019-02-28 13:17:50,379 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 14 to 13. [2019-02-28 13:17:50,379 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:17:50,380 INFO L82 GeneralOperation]: Start isEquivalent. First operand 14 states. Second operand 13 states. [2019-02-28 13:17:50,380 INFO L74 IsIncluded]: Start isIncluded. First operand 14 states. Second operand 13 states. [2019-02-28 13:17:50,380 INFO L87 Difference]: Start difference. First operand 14 states. Second operand 13 states. [2019-02-28 13:17:50,382 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:17:50,383 INFO L93 Difference]: Finished difference Result 14 states and 24 transitions. [2019-02-28 13:17:50,383 INFO L276 IsEmpty]: Start isEmpty. Operand 14 states and 24 transitions. [2019-02-28 13:17:50,383 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:17:50,383 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:17:50,384 INFO L74 IsIncluded]: Start isIncluded. First operand 13 states. Second operand 14 states. [2019-02-28 13:17:50,384 INFO L87 Difference]: Start difference. First operand 13 states. Second operand 14 states. [2019-02-28 13:17:50,385 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:17:50,386 INFO L93 Difference]: Finished difference Result 14 states and 24 transitions. [2019-02-28 13:17:50,387 INFO L276 IsEmpty]: Start isEmpty. Operand 14 states and 24 transitions. [2019-02-28 13:17:50,387 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:17:50,388 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:17:50,388 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:17:50,388 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:17:50,388 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2019-02-28 13:17:50,390 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 24 transitions. [2019-02-28 13:17:50,391 INFO L78 Accepts]: Start accepts. Automaton has 13 states and 24 transitions. Word has length 3 [2019-02-28 13:17:50,391 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:17:50,391 INFO L480 AbstractCegarLoop]: Abstraction has 13 states and 24 transitions. [2019-02-28 13:17:50,391 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2019-02-28 13:17:50,391 INFO L276 IsEmpty]: Start isEmpty. Operand 13 states and 24 transitions. [2019-02-28 13:17:50,392 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-02-28 13:17:50,392 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:17:50,392 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-02-28 13:17:50,392 INFO L423 AbstractCegarLoop]: === Iteration 4 === [ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:17:50,393 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:17:50,393 INFO L82 PathProgramCache]: Analyzing trace with hash 29996, now seen corresponding path program 1 times [2019-02-28 13:17:50,393 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:17:50,394 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:17:50,394 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:17:50,394 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:17:50,394 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:17:50,404 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:17:50,463 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;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {286#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-02-28 13:17:50,468 INFO L273 TraceCheckUtils]: 1: Hoare triple {286#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {287#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:17:50,469 INFO L273 TraceCheckUtils]: 2: Hoare triple {287#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {285#false} is VALID [2019-02-28 13:17:50,469 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:17:50,470 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:17:50,470 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:17:50,470 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 4 with the following transitions: [2019-02-28 13:17:50,470 INFO L207 CegarAbsIntRunner]: [0], [6], [19] [2019-02-28 13:17:50,472 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-28 13:17:50,472 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-28 13:17:50,489 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-28 13:17:50,489 INFO L272 AbstractInterpreter]: Visited 3 different actions 3 times. Never merged. Never widened. Performed 44 root evaluator evaluations with a maximum evaluation depth of 2. Performed 44 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-02-28 13:17:50,490 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:17:50,490 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-28 13:17:50,490 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:17:50,490 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 3 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 3 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:17:50,500 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:17:50,500 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-28 13:17:50,504 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:17:50,505 INFO L256 TraceCheckSpWp]: Trace formula consists of 17 conjuncts, 7 conjunts are in the unsatisfiable core [2019-02-28 13:17:50,510 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:17:50,511 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:17:50,531 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:17:50,544 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:50,545 INFO L442 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 20 [2019-02-28 13:17:50,559 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:50,567 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:50,569 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:50,571 INFO L442 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 22 [2019-02-28 13:17:50,582 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:50,584 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:50,587 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:50,623 INFO L442 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 3 new quantified variables, introduced 6 case distinctions, treesize of input 22 treesize of output 30 [2019-02-28 13:17:50,638 INFO L315 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-28 13:17:50,650 INFO L315 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:17:50,662 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:17:50,672 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:17:50,732 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2019-02-28 13:17:50,738 INFO L315 ElimStorePlain]: Start of recursive call 8: End of recursive call: and 1 xjuncts. [2019-02-28 13:17:50,741 INFO L315 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:17:50,747 INFO L315 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:17:50,773 INFO L315 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 2 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-02-28 13:17:50,773 INFO L209 ElimStorePlain]: Needed 8 recursive calls to eliminate 5 variables, input treesize:35, output treesize:33 [2019-02-28 13:17:50,779 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:17:50,780 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_25|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, |v_#valid_7|]. (let ((.cse0 (store |v_#valid_7| ULTIMATE.start_main_p1 1))) (and (= (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|) (= 0 (select .cse0 ULTIMATE.start_main_p2)) (= (select (store .cse0 ULTIMATE.start_main_p2 1) ULTIMATE.start_main_p3) 0))) [2019-02-28 13:17:50,780 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-28 13:17:50,840 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 21 [2019-02-28 13:17:50,842 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:17:50,856 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:17:50,857 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:38, output treesize:20 [2019-02-28 13:17:50,861 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:17:50,862 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_26|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (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) (= 0 (select |v_#memory_int_26| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_26| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))) [2019-02-28 13:17:50,862 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-02-28 13:17:50,881 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;#memory_int := #memory_int[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 (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-02-28 13:17:50,883 INFO L273 TraceCheckUtils]: 1: Hoare triple {291#(and (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} #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_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} is VALID [2019-02-28 13:17:50,885 INFO L273 TraceCheckUtils]: 2: Hoare triple {295#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} assume !(#memory_int[main_p1] >= 0); {285#false} is VALID [2019-02-28 13:17:50,886 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:17:50,886 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-28 13:17:50,905 INFO L273 TraceCheckUtils]: 2: Hoare triple {299#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {285#false} is VALID [2019-02-28 13:17:50,907 INFO L273 TraceCheckUtils]: 1: Hoare triple {303#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {299#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:17:50,908 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;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {303#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} is VALID [2019-02-28 13:17:50,909 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:17:50,930 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-02-28 13:17:50,930 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [2, 2] total 6 [2019-02-28 13:17:50,930 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-02-28 13:17:50,931 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 3 [2019-02-28 13:17:50,931 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:17:50,931 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-02-28 13:17:50,937 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 3 edges. 3 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:17:50,937 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-02-28 13:17:50,937 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-02-28 13:17:50,937 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-02-28 13:17:50,937 INFO L87 Difference]: Start difference. First operand 13 states and 24 transitions. Second operand 4 states. [2019-02-28 13:17:51,062 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:17:51,062 INFO L93 Difference]: Finished difference Result 18 states and 41 transitions. [2019-02-28 13:17:51,062 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2019-02-28 13:17:51,062 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 3 [2019-02-28 13:17:51,063 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:17:51,063 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-02-28 13:17:51,064 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 24 transitions. [2019-02-28 13:17:51,064 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-02-28 13:17:51,065 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 24 transitions. [2019-02-28 13:17:51,065 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 24 transitions. [2019-02-28 13:17:51,111 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 24 edges. 24 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:17:51,112 INFO L225 Difference]: With dead ends: 18 [2019-02-28 13:17:51,112 INFO L226 Difference]: Without dead ends: 17 [2019-02-28 13:17:51,112 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 6 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 6 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 9 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-02-28 13:17:51,113 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 17 states. [2019-02-28 13:17:51,140 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 17 to 16. [2019-02-28 13:17:51,141 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:17:51,141 INFO L82 GeneralOperation]: Start isEquivalent. First operand 17 states. Second operand 16 states. [2019-02-28 13:17:51,141 INFO L74 IsIncluded]: Start isIncluded. First operand 17 states. Second operand 16 states. [2019-02-28 13:17:51,141 INFO L87 Difference]: Start difference. First operand 17 states. Second operand 16 states. [2019-02-28 13:17:51,144 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:17:51,144 INFO L93 Difference]: Finished difference Result 17 states and 40 transitions. [2019-02-28 13:17:51,144 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 40 transitions. [2019-02-28 13:17:51,145 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:17:51,145 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:17:51,145 INFO L74 IsIncluded]: Start isIncluded. First operand 16 states. Second operand 17 states. [2019-02-28 13:17:51,145 INFO L87 Difference]: Start difference. First operand 16 states. Second operand 17 states. [2019-02-28 13:17:51,147 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:17:51,147 INFO L93 Difference]: Finished difference Result 17 states and 40 transitions. [2019-02-28 13:17:51,147 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 40 transitions. [2019-02-28 13:17:51,148 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:17:51,148 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:17:51,148 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:17:51,148 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:17:51,148 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 16 states. [2019-02-28 13:17:51,150 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 40 transitions. [2019-02-28 13:17:51,150 INFO L78 Accepts]: Start accepts. Automaton has 16 states and 40 transitions. Word has length 3 [2019-02-28 13:17:51,150 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:17:51,150 INFO L480 AbstractCegarLoop]: Abstraction has 16 states and 40 transitions. [2019-02-28 13:17:51,150 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-02-28 13:17:51,151 INFO L276 IsEmpty]: Start isEmpty. Operand 16 states and 40 transitions. [2019-02-28 13:17:51,151 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-02-28 13:17:51,151 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:17:51,151 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-02-28 13:17:51,152 INFO L423 AbstractCegarLoop]: === Iteration 5 === [ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:17:51,152 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:17:51,152 INFO L82 PathProgramCache]: Analyzing trace with hash 30120, now seen corresponding path program 1 times [2019-02-28 13:17:51,152 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:17:51,153 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:17:51,153 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:17:51,153 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:17:51,153 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:17:51,162 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:17:51,226 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;#memory_int := #memory_int[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_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-02-28 13:17:51,231 INFO L273 TraceCheckUtils]: 1: Hoare triple {388#(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]; {389#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-02-28 13:17:51,235 INFO L273 TraceCheckUtils]: 2: Hoare triple {389#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {387#false} is VALID [2019-02-28 13:17:51,235 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:17:51,236 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:17:51,236 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:17:51,236 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 4 with the following transitions: [2019-02-28 13:17:51,236 INFO L207 CegarAbsIntRunner]: [0], [10], [19] [2019-02-28 13:17:51,238 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-28 13:17:51,238 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-28 13:17:51,250 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-28 13:17:51,250 INFO L272 AbstractInterpreter]: Visited 3 different actions 3 times. Never merged. Never widened. Performed 44 root evaluator evaluations with a maximum evaluation depth of 2. Performed 44 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-02-28 13:17:51,251 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:17:51,251 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-28 13:17:51,251 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:17:51,251 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:17:51,260 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:17:51,260 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-28 13:17:51,267 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:17:51,268 INFO L256 TraceCheckSpWp]: Trace formula consists of 17 conjuncts, 7 conjunts are in the unsatisfiable core [2019-02-28 13:17:51,270 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:17:51,271 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:17:51,378 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2019-02-28 13:17:51,379 INFO L315 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-02-28 13:17:51,382 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:17:51,395 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:17:51,412 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:17:51,421 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 3 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-02-28 13:17:51,435 INFO L442 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 22 [2019-02-28 13:17:51,468 INFO L442 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 3 new quantified variables, introduced 6 case distinctions, treesize of input 22 treesize of output 30 [2019-02-28 13:17:51,476 INFO L315 ElimStorePlain]: Start of recursive call 8: End of recursive call: and 1 xjuncts. [2019-02-28 13:17:51,486 INFO L315 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:17:51,495 INFO L315 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:17:51,553 INFO L315 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:17:51,571 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:17:51,572 INFO L209 ElimStorePlain]: Needed 8 recursive calls to eliminate 4 variables, input treesize:35, output treesize:33 [2019-02-28 13:17:51,577 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:17:51,577 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_28|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, |v_#valid_8|]. (let ((.cse0 (store |v_#valid_8| ULTIMATE.start_main_p1 1))) (and (= |#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)) (= 0 (select .cse0 ULTIMATE.start_main_p2)) (= (select (store .cse0 ULTIMATE.start_main_p2 1) ULTIMATE.start_main_p3) 0))) [2019-02-28 13:17:51,577 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-28 13:17:51,827 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 21 [2019-02-28 13:17:51,831 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:17:51,844 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:17:51,845 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:38, output treesize:22 [2019-02-28 13:17:51,850 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:17:51,850 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_29|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_29| ULTIMATE.start_main_p2))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_29| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= .cse0 0) (= (store |v_#memory_int_29| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_29| ULTIMATE.start_main_p3) 0))) [2019-02-28 13:17:51,850 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [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) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1))) [2019-02-28 13:17:51,900 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;#memory_int := #memory_int[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 (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-02-28 13:17:51,905 INFO L273 TraceCheckUtils]: 1: Hoare triple {393#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {397#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-02-28 13:17:51,906 INFO L273 TraceCheckUtils]: 2: Hoare triple {397#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} assume !(#memory_int[main_p1] >= 0); {387#false} is VALID [2019-02-28 13:17:51,907 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:17:51,907 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-28 13:17:51,927 INFO L273 TraceCheckUtils]: 2: Hoare triple {401#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {387#false} is VALID [2019-02-28 13:17:51,928 INFO L273 TraceCheckUtils]: 1: Hoare triple {405#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {401#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:17:51,931 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;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {405#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:17:51,931 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:17:51,952 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-28 13:17:51,953 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-02-28 13:17:51,953 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-28 13:17:51,953 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-02-28 13:17:51,953 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:17:51,953 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-02-28 13:17:51,962 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 6 edges. 6 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:17:51,962 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-02-28 13:17:51,963 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-02-28 13:17:51,963 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-02-28 13:17:51,963 INFO L87 Difference]: Start difference. First operand 16 states and 40 transitions. Second operand 6 states. [2019-02-28 13:17:52,467 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:17:52,468 INFO L93 Difference]: Finished difference Result 32 states and 62 transitions. [2019-02-28 13:17:52,468 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-02-28 13:17:52,468 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-02-28 13:17:52,468 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:17:52,469 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-02-28 13:17:52,470 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 41 transitions. [2019-02-28 13:17:52,470 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-02-28 13:17:52,471 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 41 transitions. [2019-02-28 13:17:52,471 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 41 transitions. [2019-02-28 13:17:52,543 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 41 edges. 41 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:17:52,545 INFO L225 Difference]: With dead ends: 32 [2019-02-28 13:17:52,545 INFO L226 Difference]: Without dead ends: 31 [2019-02-28 13:17:52,546 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 7 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=31, Invalid=41, Unknown=0, NotChecked=0, Total=72 [2019-02-28 13:17:52,546 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 31 states. [2019-02-28 13:17:52,585 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 31 to 18. [2019-02-28 13:17:52,585 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:17:52,585 INFO L82 GeneralOperation]: Start isEquivalent. First operand 31 states. Second operand 18 states. [2019-02-28 13:17:52,586 INFO L74 IsIncluded]: Start isIncluded. First operand 31 states. Second operand 18 states. [2019-02-28 13:17:52,586 INFO L87 Difference]: Start difference. First operand 31 states. Second operand 18 states. [2019-02-28 13:17:52,589 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:17:52,589 INFO L93 Difference]: Finished difference Result 31 states and 60 transitions. [2019-02-28 13:17:52,589 INFO L276 IsEmpty]: Start isEmpty. Operand 31 states and 60 transitions. [2019-02-28 13:17:52,590 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:17:52,590 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:17:52,590 INFO L74 IsIncluded]: Start isIncluded. First operand 18 states. Second operand 31 states. [2019-02-28 13:17:52,590 INFO L87 Difference]: Start difference. First operand 18 states. Second operand 31 states. [2019-02-28 13:17:52,592 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:17:52,592 INFO L93 Difference]: Finished difference Result 31 states and 60 transitions. [2019-02-28 13:17:52,593 INFO L276 IsEmpty]: Start isEmpty. Operand 31 states and 60 transitions. [2019-02-28 13:17:52,593 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:17:52,593 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:17:52,593 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:17:52,594 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:17:52,594 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 18 states. [2019-02-28 13:17:52,595 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 18 states to 18 states and 50 transitions. [2019-02-28 13:17:52,595 INFO L78 Accepts]: Start accepts. Automaton has 18 states and 50 transitions. Word has length 3 [2019-02-28 13:17:52,595 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:17:52,596 INFO L480 AbstractCegarLoop]: Abstraction has 18 states and 50 transitions. [2019-02-28 13:17:52,596 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-02-28 13:17:52,596 INFO L276 IsEmpty]: Start isEmpty. Operand 18 states and 50 transitions. [2019-02-28 13:17:52,596 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-02-28 13:17:52,596 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:17:52,596 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-02-28 13:17:52,597 INFO L423 AbstractCegarLoop]: === Iteration 6 === [ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:17:52,597 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:17:52,597 INFO L82 PathProgramCache]: Analyzing trace with hash 939538, now seen corresponding path program 1 times [2019-02-28 13:17:52,597 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:17:52,598 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:17:52,598 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:17:52,598 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:17:52,599 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:17:52,608 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:17:52,745 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;#memory_int := #memory_int[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 (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (or (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-02-28 13:17:52,746 INFO L273 TraceCheckUtils]: 1: Hoare triple {540#(and (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (or (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {541#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:17:52,747 INFO L273 TraceCheckUtils]: 2: Hoare triple {541#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {541#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:17:52,748 INFO L273 TraceCheckUtils]: 3: Hoare triple {541#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {539#false} is VALID [2019-02-28 13:17:52,748 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:17:52,748 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:17:52,749 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:17:52,749 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-02-28 13:17:52,749 INFO L207 CegarAbsIntRunner]: [0], [16], [20], [21] [2019-02-28 13:17:52,752 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-28 13:17:52,752 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-28 13:17:52,784 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-28 13:17:52,784 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 46 root evaluator evaluations with a maximum evaluation depth of 2. Performed 46 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-02-28 13:17:52,784 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:17:52,785 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-28 13:17:52,785 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:17:52,785 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 5 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 5 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:17:52,796 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:17:52,796 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-28 13:17:52,800 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:17:52,800 WARN L254 TraceCheckSpWp]: Trace formula consists of 18 conjuncts, 12 conjunts are in the unsatisfiable core [2019-02-28 13:17:52,810 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:17:52,811 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:17:52,925 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 3 new quantified variables, introduced 0 case distinctions, treesize of input 16 treesize of output 10 [2019-02-28 13:17:52,927 INFO L315 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-28 13:17:52,930 INFO L315 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:17:52,941 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:17:52,964 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:17:52,988 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 3 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:17:53,000 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 5 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-02-28 13:17:53,012 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 6 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-02-28 13:17:53,077 INFO L442 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 21 [2019-02-28 13:17:53,084 INFO L315 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-02-28 13:17:53,095 INFO L315 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:17:53,104 INFO L315 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:17:53,114 INFO L315 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:17:53,137 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:17:53,138 INFO L209 ElimStorePlain]: Needed 9 recursive calls to eliminate 4 variables, input treesize:49, output treesize:45 [2019-02-28 13:17:53,143 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:17:53,144 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_31|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, |v_#valid_9|]. (let ((.cse0 (store |v_#valid_9| ULTIMATE.start_main_p1 1))) (let ((.cse1 (store .cse0 ULTIMATE.start_main_p2 1))) (and (= (select .cse0 ULTIMATE.start_main_p2) 0) (= (select .cse1 ULTIMATE.start_main_p3) 0) (= |#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)) (= (select (store .cse1 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4) 0)))) [2019-02-28 13:17:53,144 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p1]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-28 13:17:53,219 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 26 [2019-02-28 13:17:53,222 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:17:53,245 INFO L315 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-02-28 13:17:53,245 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:55, output treesize:35 [2019-02-28 13:17:53,279 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:17:53,279 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_32|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p1]. (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) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_32| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |v_#memory_int_32| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= .cse0 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-02-28 13:17:53,279 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-02-28 13:17:53,338 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;#memory_int := #memory_int[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 (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-28 13:17:53,340 INFO L273 TraceCheckUtils]: 1: Hoare triple {545#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (= 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 (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-02-28 13:17:53,341 INFO L273 TraceCheckUtils]: 2: Hoare triple {549#(and (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume #memory_int[main_p1] >= 0; {549#(and (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-02-28 13:17:53,341 INFO L273 TraceCheckUtils]: 3: Hoare triple {549#(and (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume !(#memory_int[main_p2] <= 0); {539#false} is VALID [2019-02-28 13:17:53,342 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:17:53,342 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-28 13:17:53,357 INFO L273 TraceCheckUtils]: 3: Hoare triple {541#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {539#false} is VALID [2019-02-28 13:17:53,357 INFO L273 TraceCheckUtils]: 2: Hoare triple {541#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {541#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:17:53,358 INFO L273 TraceCheckUtils]: 1: Hoare triple {562#(<= (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]; {541#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:17:53,360 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;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {562#(<= (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:17:53,361 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:17:53,382 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-02-28 13:17:53,382 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [2, 2] total 5 [2019-02-28 13:17:53,383 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-02-28 13:17:53,383 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 4 [2019-02-28 13:17:53,383 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:17:53,383 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-02-28 13:17:53,389 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 4 edges. 4 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:17:53,390 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-02-28 13:17:53,390 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-02-28 13:17:53,390 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=19, Invalid=23, Unknown=0, NotChecked=0, Total=42 [2019-02-28 13:17:53,390 INFO L87 Difference]: Start difference. First operand 18 states and 50 transitions. Second operand 4 states. [2019-02-28 13:17:53,607 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:17:53,608 INFO L93 Difference]: Finished difference Result 22 states and 58 transitions. [2019-02-28 13:17:53,608 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-02-28 13:17:53,608 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 4 [2019-02-28 13:17:53,608 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:17:53,609 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-02-28 13:17:53,610 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 20 transitions. [2019-02-28 13:17:53,610 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-02-28 13:17:53,610 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 20 transitions. [2019-02-28 13:17:53,610 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 20 transitions. [2019-02-28 13:17:53,629 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 20 edges. 20 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:17:53,630 INFO L225 Difference]: With dead ends: 22 [2019-02-28 13:17:53,630 INFO L226 Difference]: Without dead ends: 21 [2019-02-28 13:17:53,631 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 8 GetRequests, 3 SyntacticMatches, 0 SemanticMatches, 5 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 8 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=19, Invalid=23, Unknown=0, NotChecked=0, Total=42 [2019-02-28 13:17:53,631 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 21 states. [2019-02-28 13:17:53,699 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 21 to 20. [2019-02-28 13:17:53,699 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:17:53,699 INFO L82 GeneralOperation]: Start isEquivalent. First operand 21 states. Second operand 20 states. [2019-02-28 13:17:53,699 INFO L74 IsIncluded]: Start isIncluded. First operand 21 states. Second operand 20 states. [2019-02-28 13:17:53,700 INFO L87 Difference]: Start difference. First operand 21 states. Second operand 20 states. [2019-02-28 13:17:53,708 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:17:53,708 INFO L93 Difference]: Finished difference Result 21 states and 57 transitions. [2019-02-28 13:17:53,709 INFO L276 IsEmpty]: Start isEmpty. Operand 21 states and 57 transitions. [2019-02-28 13:17:53,709 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:17:53,709 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:17:53,709 INFO L74 IsIncluded]: Start isIncluded. First operand 20 states. Second operand 21 states. [2019-02-28 13:17:53,709 INFO L87 Difference]: Start difference. First operand 20 states. Second operand 21 states. [2019-02-28 13:17:53,715 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:17:53,715 INFO L93 Difference]: Finished difference Result 21 states and 57 transitions. [2019-02-28 13:17:53,715 INFO L276 IsEmpty]: Start isEmpty. Operand 21 states and 57 transitions. [2019-02-28 13:17:53,716 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:17:53,716 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:17:53,716 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:17:53,716 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:17:53,716 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 20 states. [2019-02-28 13:17:53,717 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 20 states to 20 states and 57 transitions. [2019-02-28 13:17:53,718 INFO L78 Accepts]: Start accepts. Automaton has 20 states and 57 transitions. Word has length 4 [2019-02-28 13:17:53,718 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:17:53,718 INFO L480 AbstractCegarLoop]: Abstraction has 20 states and 57 transitions. [2019-02-28 13:17:53,718 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-02-28 13:17:53,718 INFO L276 IsEmpty]: Start isEmpty. Operand 20 states and 57 transitions. [2019-02-28 13:17:53,719 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-02-28 13:17:53,719 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:17:53,719 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-02-28 13:17:53,719 INFO L423 AbstractCegarLoop]: === Iteration 7 === [ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:17:53,720 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:17:53,720 INFO L82 PathProgramCache]: Analyzing trace with hash 939226, now seen corresponding path program 1 times [2019-02-28 13:17:53,720 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:17:53,721 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:17:53,721 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:17:53,721 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:17:53,721 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:17:53,732 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:17:53,830 INFO L273 TraceCheckUtils]: 0: Hoare triple {667#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {669#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-28 13:17:53,831 INFO L273 TraceCheckUtils]: 1: Hoare triple {669#(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]; {670#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-02-28 13:17:53,833 INFO L273 TraceCheckUtils]: 2: Hoare triple {670#(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]; {671#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-02-28 13:17:53,834 INFO L273 TraceCheckUtils]: 3: Hoare triple {671#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {668#false} is VALID [2019-02-28 13:17:53,834 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:17:53,835 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:17:53,835 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:17:53,835 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-02-28 13:17:53,835 INFO L207 CegarAbsIntRunner]: [0], [10], [16], [19] [2019-02-28 13:17:53,838 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-28 13:17:53,838 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-28 13:17:53,854 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-28 13:17:53,854 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 46 root evaluator evaluations with a maximum evaluation depth of 2. Performed 46 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-02-28 13:17:53,854 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:17:53,855 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-28 13:17:53,855 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:17:53,855 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 6 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 6 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:17:53,864 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:17:53,864 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-28 13:17:53,868 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:17:53,871 WARN L254 TraceCheckSpWp]: Trace formula consists of 18 conjuncts, 13 conjunts are in the unsatisfiable core [2019-02-28 13:17:53,878 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:17:53,879 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:17:53,909 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:17:53,917 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:53,918 INFO L442 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 20 [2019-02-28 13:17:53,931 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:53,933 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:53,935 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:53,936 INFO L442 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 22 [2019-02-28 13:17:53,947 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:53,948 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:53,949 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:53,950 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:53,951 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:53,952 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:53,954 INFO L442 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 21 [2019-02-28 13:17:53,975 INFO L315 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-28 13:17:53,991 INFO L315 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:17:54,002 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:17:54,013 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:17:54,067 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 3 new quantified variables, introduced 0 case distinctions, treesize of input 16 treesize of output 10 [2019-02-28 13:17:54,088 INFO L315 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-02-28 13:17:54,173 INFO L315 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:17:54,231 INFO L315 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:17:54,240 INFO L315 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:17:54,268 INFO L315 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 2 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-02-28 13:17:54,269 INFO L209 ElimStorePlain]: Needed 9 recursive calls to eliminate 3 variables, input treesize:49, output treesize:45 [2019-02-28 13:17:54,274 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:17:54,275 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_34|, ULTIMATE.start_main_p3, |v_#valid_10|]. (let ((.cse1 (store |v_#valid_10| ULTIMATE.start_main_p1 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p2 1))) (and (= 0 (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4)) (= (store (store (store (store |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|) (= (select .cse1 ULTIMATE.start_main_p2) 0) (= 0 (select .cse0 ULTIMATE.start_main_p3))))) [2019-02-28 13:17:54,275 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-28 13:17:54,403 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 26 [2019-02-28 13:17:54,408 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:17:54,429 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:17:54,430 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:55, output treesize:35 [2019-02-28 13:17:54,446 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:17:54,447 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_35|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_35| ULTIMATE.start_main_p4))) (and (= 0 (select |v_#memory_int_35| ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (store |v_#memory_int_35| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_35| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_35| ULTIMATE.start_main_p3)) (= .cse0 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-02-28 13:17:54,447 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-02-28 13:17:54,591 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 3 disjoint index pairs (out of 6 index pairs), introduced 2 new quantified variables, introduced 5 case distinctions, treesize of input 33 treesize of output 35 [2019-02-28 13:17:54,595 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:17:54,618 INFO L315 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-02-28 13:17:54,619 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:45, output treesize:33 [2019-02-28 13:17:54,628 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:17:54,628 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_36|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_36| ULTIMATE.start_main_p2))) (and (= .cse0 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (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|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))) [2019-02-28 13:17:54,628 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1))) [2019-02-28 13:17:54,663 INFO L273 TraceCheckUtils]: 0: Hoare triple {667#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {675#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-28 13:17:54,674 INFO L273 TraceCheckUtils]: 1: Hoare triple {675#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {679#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-02-28 13:17:54,676 INFO L273 TraceCheckUtils]: 2: Hoare triple {679#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {683#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int)) (and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-02-28 13:17:54,677 INFO L273 TraceCheckUtils]: 3: Hoare triple {683#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int)) (and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} assume !(#memory_int[main_p1] >= 0); {668#false} is VALID [2019-02-28 13:17:54,678 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:17:54,678 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-28 13:17:54,783 INFO L273 TraceCheckUtils]: 3: Hoare triple {687#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {668#false} is VALID [2019-02-28 13:17:54,785 INFO L273 TraceCheckUtils]: 2: Hoare triple {691#(<= 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]; {687#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:17:54,787 INFO L273 TraceCheckUtils]: 1: Hoare triple {695#(<= 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]; {691#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:17:54,789 INFO L273 TraceCheckUtils]: 0: Hoare triple {667#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {695#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:17:54,789 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:17:54,808 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-28 13:17:54,809 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-02-28 13:17:54,809 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-28 13:17:54,809 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-02-28 13:17:54,809 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:17:54,809 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-02-28 13:17:54,822 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:17:54,822 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-02-28 13:17:54,823 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-02-28 13:17:54,823 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=43, Invalid=67, Unknown=0, NotChecked=0, Total=110 [2019-02-28 13:17:54,823 INFO L87 Difference]: Start difference. First operand 20 states and 57 transitions. Second operand 8 states. [2019-02-28 13:17:55,632 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:17:55,633 INFO L93 Difference]: Finished difference Result 37 states and 74 transitions. [2019-02-28 13:17:55,633 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-02-28 13:17:55,633 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-02-28 13:17:55,633 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:17:55,633 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-28 13:17:55,634 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 48 transitions. [2019-02-28 13:17:55,634 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-28 13:17:55,635 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 48 transitions. [2019-02-28 13:17:55,636 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 48 transitions. [2019-02-28 13:17:55,722 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 48 edges. 48 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:17:55,723 INFO L225 Difference]: With dead ends: 37 [2019-02-28 13:17:55,724 INFO L226 Difference]: Without dead ends: 36 [2019-02-28 13:17:55,724 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=61, Invalid=95, Unknown=0, NotChecked=0, Total=156 [2019-02-28 13:17:55,724 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 36 states. [2019-02-28 13:17:55,840 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 36 to 17. [2019-02-28 13:17:55,840 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:17:55,840 INFO L82 GeneralOperation]: Start isEquivalent. First operand 36 states. Second operand 17 states. [2019-02-28 13:17:55,840 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 17 states. [2019-02-28 13:17:55,841 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 17 states. [2019-02-28 13:17:55,843 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:17:55,844 INFO L93 Difference]: Finished difference Result 36 states and 72 transitions. [2019-02-28 13:17:55,844 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 72 transitions. [2019-02-28 13:17:55,844 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:17:55,844 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:17:55,845 INFO L74 IsIncluded]: Start isIncluded. First operand 17 states. Second operand 36 states. [2019-02-28 13:17:55,845 INFO L87 Difference]: Start difference. First operand 17 states. Second operand 36 states. [2019-02-28 13:17:55,847 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:17:55,847 INFO L93 Difference]: Finished difference Result 36 states and 72 transitions. [2019-02-28 13:17:55,847 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 72 transitions. [2019-02-28 13:17:55,847 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:17:55,848 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:17:55,848 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:17:55,848 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:17:55,848 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 17 states. [2019-02-28 13:17:55,849 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 41 transitions. [2019-02-28 13:17:55,849 INFO L78 Accepts]: Start accepts. Automaton has 17 states and 41 transitions. Word has length 4 [2019-02-28 13:17:55,849 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:17:55,850 INFO L480 AbstractCegarLoop]: Abstraction has 17 states and 41 transitions. [2019-02-28 13:17:55,850 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-02-28 13:17:55,850 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 41 transitions. [2019-02-28 13:17:55,850 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-02-28 13:17:55,850 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:17:55,851 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-02-28 13:17:55,851 INFO L423 AbstractCegarLoop]: === Iteration 8 === [ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:17:55,851 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:17:55,851 INFO L82 PathProgramCache]: Analyzing trace with hash 939350, now seen corresponding path program 1 times [2019-02-28 13:17:55,851 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:17:55,852 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:17:55,852 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:17:55,852 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:17:55,853 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:17:55,863 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:17:56,027 INFO L273 TraceCheckUtils]: 0: Hoare triple {844#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {846#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-02-28 13:17:56,032 INFO L273 TraceCheckUtils]: 1: Hoare triple {846#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {847#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-02-28 13:17:56,037 INFO L273 TraceCheckUtils]: 2: Hoare triple {847#(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]; {848#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-02-28 13:17:56,038 INFO L273 TraceCheckUtils]: 3: Hoare triple {848#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {845#false} is VALID [2019-02-28 13:17:56,038 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:17:56,038 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:17:56,038 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:17:56,038 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-02-28 13:17:56,039 INFO L207 CegarAbsIntRunner]: [0], [14], [16], [19] [2019-02-28 13:17:56,041 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-28 13:17:56,041 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-28 13:17:56,069 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-28 13:17:56,069 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 46 root evaluator evaluations with a maximum evaluation depth of 2. Performed 46 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-02-28 13:17:56,070 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:17:56,070 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-28 13:17:56,070 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:17:56,070 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 7 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 7 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:17:56,081 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:17:56,081 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-28 13:17:56,085 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:17:56,086 WARN L254 TraceCheckSpWp]: Trace formula consists of 18 conjuncts, 13 conjunts are in the unsatisfiable core [2019-02-28 13:17:56,093 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:17:56,094 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:17:56,148 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 3 new quantified variables, introduced 0 case distinctions, treesize of input 16 treesize of output 10 [2019-02-28 13:17:56,156 INFO L315 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-28 13:17:56,164 INFO L315 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:17:56,179 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:17:56,191 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:17:56,212 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 3 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:17:56,221 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 5 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-02-28 13:17:56,232 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 6 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-02-28 13:17:56,269 INFO L442 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 21 [2019-02-28 13:17:56,271 INFO L315 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-02-28 13:17:56,280 INFO L315 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:17:56,290 INFO L315 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:17:56,297 INFO L315 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:17:56,322 INFO L315 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 2 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-02-28 13:17:56,322 INFO L209 ElimStorePlain]: Needed 9 recursive calls to eliminate 3 variables, input treesize:49, output treesize:45 [2019-02-28 13:17:56,328 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:17:56,328 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_39|, ULTIMATE.start_main_p2, |v_#valid_11|]. (let ((.cse0 (store |v_#valid_11| ULTIMATE.start_main_p1 1))) (let ((.cse1 (store .cse0 ULTIMATE.start_main_p2 1))) (and (= 0 (select .cse0 ULTIMATE.start_main_p2)) (= (select (store .cse1 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4) 0) (= (select .cse1 ULTIMATE.start_main_p3) 0) (= (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|)))) [2019-02-28 13:17:56,329 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-28 13:17:56,513 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 26 [2019-02-28 13:17:56,518 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:17:56,541 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:17:56,541 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:55, output treesize:35 [2019-02-28 13:17:59,482 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:17:59,482 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_40|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_40| ULTIMATE.start_main_p4))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_40| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_40| ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= |#memory_int| (store |v_#memory_int_40| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= (select |v_#memory_int_40| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= .cse0 0))) [2019-02-28 13:17:59,482 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-02-28 13:17:59,693 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 3 disjoint index pairs (out of 6 index pairs), introduced 2 new quantified variables, introduced 5 case distinctions, treesize of input 33 treesize of output 35 [2019-02-28 13:17:59,697 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:17:59,718 INFO L315 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-02-28 13:17:59,719 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:45, output treesize:27 [2019-02-28 13:18:00,396 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:18:00,396 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_41|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_41| ULTIMATE.start_main_p3))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= |#memory_int| (store |v_#memory_int_41| ULTIMATE.start_main_p3 (+ .cse0 1))) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (+ (select |v_#memory_int_41| ULTIMATE.start_main_p4) 1)) (= 0 (select |v_#memory_int_41| ULTIMATE.start_main_p2)) (= .cse0 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |v_#memory_int_41| ULTIMATE.start_main_p1) 0))) [2019-02-28 13:18:00,396 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) [2019-02-28 13:18:00,439 INFO L273 TraceCheckUtils]: 0: Hoare triple {844#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {852#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-28 13:18:00,442 INFO L273 TraceCheckUtils]: 1: Hoare triple {852#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {856#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-02-28 13:18:00,444 INFO L273 TraceCheckUtils]: 2: Hoare triple {856#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {860#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)))} is VALID [2019-02-28 13:18:00,448 INFO L273 TraceCheckUtils]: 3: Hoare triple {860#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)))} assume !(#memory_int[main_p1] >= 0); {845#false} is VALID [2019-02-28 13:18:00,449 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:18:00,449 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-28 13:18:00,494 INFO L273 TraceCheckUtils]: 3: Hoare triple {864#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {845#false} is VALID [2019-02-28 13:18:00,496 INFO L273 TraceCheckUtils]: 2: Hoare triple {868#(<= 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]; {864#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:18:00,498 INFO L273 TraceCheckUtils]: 1: Hoare triple {872#(<= 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]; {868#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:18:00,500 INFO L273 TraceCheckUtils]: 0: Hoare triple {844#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {872#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:18:00,501 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:18:00,523 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-28 13:18:00,523 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-02-28 13:18:00,523 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-28 13:18:00,523 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-02-28 13:18:00,523 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:18:00,523 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-02-28 13:18:00,535 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:18:00,535 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-02-28 13:18:00,535 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-02-28 13:18:00,536 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-02-28 13:18:00,536 INFO L87 Difference]: Start difference. First operand 17 states and 41 transitions. Second operand 8 states. [2019-02-28 13:18:01,157 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:18:01,158 INFO L93 Difference]: Finished difference Result 46 states and 87 transitions. [2019-02-28 13:18:01,158 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-02-28 13:18:01,158 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-02-28 13:18:01,158 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:18:01,158 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-28 13:18:01,159 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 60 transitions. [2019-02-28 13:18:01,160 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-28 13:18:01,161 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 60 transitions. [2019-02-28 13:18:01,161 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 60 transitions. [2019-02-28 13:18:01,347 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 60 edges. 60 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:18:01,348 INFO L225 Difference]: With dead ends: 46 [2019-02-28 13:18:01,349 INFO L226 Difference]: Without dead ends: 40 [2019-02-28 13:18:01,349 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 10 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=51, Invalid=81, Unknown=0, NotChecked=0, Total=132 [2019-02-28 13:18:01,349 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 40 states. [2019-02-28 13:18:01,447 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 40 to 22. [2019-02-28 13:18:01,447 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:18:01,447 INFO L82 GeneralOperation]: Start isEquivalent. First operand 40 states. Second operand 22 states. [2019-02-28 13:18:01,447 INFO L74 IsIncluded]: Start isIncluded. First operand 40 states. Second operand 22 states. [2019-02-28 13:18:01,447 INFO L87 Difference]: Start difference. First operand 40 states. Second operand 22 states. [2019-02-28 13:18:01,450 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:18:01,450 INFO L93 Difference]: Finished difference Result 40 states and 79 transitions. [2019-02-28 13:18:01,451 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 79 transitions. [2019-02-28 13:18:01,451 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:18:01,451 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:18:01,451 INFO L74 IsIncluded]: Start isIncluded. First operand 22 states. Second operand 40 states. [2019-02-28 13:18:01,451 INFO L87 Difference]: Start difference. First operand 22 states. Second operand 40 states. [2019-02-28 13:18:01,454 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:18:01,454 INFO L93 Difference]: Finished difference Result 40 states and 79 transitions. [2019-02-28 13:18:01,454 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 79 transitions. [2019-02-28 13:18:01,454 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:18:01,454 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:18:01,455 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:18:01,455 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:18:01,455 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 22 states. [2019-02-28 13:18:01,456 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 22 states to 22 states and 58 transitions. [2019-02-28 13:18:01,456 INFO L78 Accepts]: Start accepts. Automaton has 22 states and 58 transitions. Word has length 4 [2019-02-28 13:18:01,457 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:18:01,457 INFO L480 AbstractCegarLoop]: Abstraction has 22 states and 58 transitions. [2019-02-28 13:18:01,457 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-02-28 13:18:01,457 INFO L276 IsEmpty]: Start isEmpty. Operand 22 states and 58 transitions. [2019-02-28 13:18:01,457 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-02-28 13:18:01,457 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:18:01,458 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-02-28 13:18:01,458 INFO L423 AbstractCegarLoop]: === Iteration 9 === [ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:18:01,458 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:18:01,458 INFO L82 PathProgramCache]: Analyzing trace with hash 929802, now seen corresponding path program 1 times [2019-02-28 13:18:01,458 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:18:01,459 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:18:01,459 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:18:01,459 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:18:01,459 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:18:01,468 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:18:01,609 INFO L273 TraceCheckUtils]: 0: Hoare triple {1045#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1047#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-02-28 13:18:01,611 INFO L273 TraceCheckUtils]: 1: Hoare triple {1047#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1048#(and (or (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (or (<= 1 (select |#memory_int| ULTIMATE.start_main_p4)) (not (= (select |#memory_int| ULTIMATE.start_main_p4) (select |#memory_int| ULTIMATE.start_main_p1)))))} is VALID [2019-02-28 13:18:01,612 INFO L273 TraceCheckUtils]: 2: Hoare triple {1048#(and (or (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (or (<= 1 (select |#memory_int| ULTIMATE.start_main_p4)) (not (= (select |#memory_int| ULTIMATE.start_main_p4) (select |#memory_int| ULTIMATE.start_main_p1)))))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1049#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:18:01,613 INFO L273 TraceCheckUtils]: 3: Hoare triple {1049#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1046#false} is VALID [2019-02-28 13:18:01,613 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:18:01,614 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:18:01,614 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:18:01,614 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-02-28 13:18:01,614 INFO L207 CegarAbsIntRunner]: [0], [6], [16], [19] [2019-02-28 13:18:01,616 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-28 13:18:01,616 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-28 13:18:01,650 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-28 13:18:01,651 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 46 root evaluator evaluations with a maximum evaluation depth of 2. Performed 46 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-02-28 13:18:01,651 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:18:01,651 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-28 13:18:01,652 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:18:01,652 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 8 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 8 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:18:01,662 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:18:01,662 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-28 13:18:01,684 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:18:01,684 WARN L254 TraceCheckSpWp]: Trace formula consists of 18 conjuncts, 13 conjunts are in the unsatisfiable core [2019-02-28 13:18:01,688 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:18:01,689 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:18:01,714 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:18:01,723 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:18:01,724 INFO L442 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 20 [2019-02-28 13:18:01,729 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:18:01,731 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:18:01,733 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:18:01,734 INFO L442 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 22 [2019-02-28 13:18:01,744 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:18:01,746 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:18:01,747 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:18:01,748 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:18:01,750 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:18:01,751 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:18:01,752 INFO L442 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 21 [2019-02-28 13:18:01,753 INFO L315 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-28 13:18:01,762 INFO L315 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:18:01,773 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:18:01,784 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:18:01,870 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 3 new quantified variables, introduced 0 case distinctions, treesize of input 16 treesize of output 10 [2019-02-28 13:18:01,891 INFO L315 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-02-28 13:18:01,899 INFO L315 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:18:01,910 INFO L315 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:18:01,923 INFO L315 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:18:01,952 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:18:01,952 INFO L209 ElimStorePlain]: Needed 9 recursive calls to eliminate 4 variables, input treesize:49, output treesize:45 [2019-02-28 13:18:01,960 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:18:01,960 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_44|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, |v_#valid_12|]. (let ((.cse1 (store |v_#valid_12| ULTIMATE.start_main_p1 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p2 1))) (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|) (= 0 (select .cse0 ULTIMATE.start_main_p3)) (= 0 (select .cse1 ULTIMATE.start_main_p2)) (= 0 (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4))))) [2019-02-28 13:18:01,961 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-28 13:18:02,026 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 26 [2019-02-28 13:18:02,045 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:18:02,070 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:18:02,070 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:55, output treesize:33 [2019-02-28 13:18:02,077 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:18:02,077 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_45|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_45| ULTIMATE.start_main_p1))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (store |v_#memory_int_45| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (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) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-02-28 13:18:02,077 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-28 13:18:02,203 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 3 disjoint index pairs (out of 6 index pairs), introduced 2 new quantified variables, introduced 5 case distinctions, treesize of input 31 treesize of output 33 [2019-02-28 13:18:02,207 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:18:02,225 INFO L315 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-02-28 13:18:02,225 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:43, output treesize:27 [2019-02-28 13:18:04,603 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:18:04,603 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_46|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_46| ULTIMATE.start_main_p4))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= .cse0 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= |#memory_int| (store |v_#memory_int_46| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= (select |v_#memory_int_46| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_46| ULTIMATE.start_main_p2)) (= 1 (select |v_#memory_int_46| ULTIMATE.start_main_p1)))) [2019-02-28 13:18:04,604 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-02-28 13:18:04,653 INFO L273 TraceCheckUtils]: 0: Hoare triple {1045#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1053#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-28 13:18:04,655 INFO L273 TraceCheckUtils]: 1: Hoare triple {1053#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1057#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-28 13:18:04,656 INFO L273 TraceCheckUtils]: 2: Hoare triple {1057#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1061#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} is VALID [2019-02-28 13:18:04,658 INFO L273 TraceCheckUtils]: 3: Hoare triple {1061#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} assume !(#memory_int[main_p1] >= 0); {1046#false} is VALID [2019-02-28 13:18:04,658 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:18:04,659 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-28 13:18:04,687 INFO L273 TraceCheckUtils]: 3: Hoare triple {1049#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1046#false} is VALID [2019-02-28 13:18:04,688 INFO L273 TraceCheckUtils]: 2: Hoare triple {1068#(<= 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]; {1049#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:18:04,695 INFO L273 TraceCheckUtils]: 1: Hoare triple {1072#(<= 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]; {1068#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:18:04,697 INFO L273 TraceCheckUtils]: 0: Hoare triple {1045#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1072#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:18:04,697 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:18:04,718 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-28 13:18:04,719 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 8 [2019-02-28 13:18:04,719 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-28 13:18:04,719 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-02-28 13:18:04,719 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:18:04,719 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-02-28 13:18:04,734 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:18:04,734 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-02-28 13:18:04,735 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-02-28 13:18:04,735 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=37, Invalid=53, Unknown=0, NotChecked=0, Total=90 [2019-02-28 13:18:04,735 INFO L87 Difference]: Start difference. First operand 22 states and 58 transitions. Second operand 8 states. [2019-02-28 13:18:05,598 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:18:05,598 INFO L93 Difference]: Finished difference Result 52 states and 124 transitions. [2019-02-28 13:18:05,599 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-02-28 13:18:05,599 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-02-28 13:18:05,599 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:18:05,599 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-28 13:18:05,600 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 62 transitions. [2019-02-28 13:18:05,601 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-28 13:18:05,601 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 62 transitions. [2019-02-28 13:18:05,602 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 62 transitions. [2019-02-28 13:18:05,699 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 62 edges. 62 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:18:05,701 INFO L225 Difference]: With dead ends: 52 [2019-02-28 13:18:05,701 INFO L226 Difference]: Without dead ends: 49 [2019-02-28 13:18:05,701 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 9 GetRequests, 1 SyntacticMatches, 0 SemanticMatches, 8 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 22 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=37, Invalid=53, Unknown=0, NotChecked=0, Total=90 [2019-02-28 13:18:05,702 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 49 states. [2019-02-28 13:18:05,825 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 49 to 26. [2019-02-28 13:18:05,826 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:18:05,826 INFO L82 GeneralOperation]: Start isEquivalent. First operand 49 states. Second operand 26 states. [2019-02-28 13:18:05,826 INFO L74 IsIncluded]: Start isIncluded. First operand 49 states. Second operand 26 states. [2019-02-28 13:18:05,826 INFO L87 Difference]: Start difference. First operand 49 states. Second operand 26 states. [2019-02-28 13:18:05,831 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:18:05,831 INFO L93 Difference]: Finished difference Result 49 states and 117 transitions. [2019-02-28 13:18:05,831 INFO L276 IsEmpty]: Start isEmpty. Operand 49 states and 117 transitions. [2019-02-28 13:18:05,832 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:18:05,832 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:18:05,832 INFO L74 IsIncluded]: Start isIncluded. First operand 26 states. Second operand 49 states. [2019-02-28 13:18:05,832 INFO L87 Difference]: Start difference. First operand 26 states. Second operand 49 states. [2019-02-28 13:18:05,835 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:18:05,835 INFO L93 Difference]: Finished difference Result 49 states and 117 transitions. [2019-02-28 13:18:05,836 INFO L276 IsEmpty]: Start isEmpty. Operand 49 states and 117 transitions. [2019-02-28 13:18:05,836 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:18:05,836 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:18:05,836 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:18:05,837 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:18:05,837 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 26 states. [2019-02-28 13:18:05,838 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 26 states to 26 states and 78 transitions. [2019-02-28 13:18:05,839 INFO L78 Accepts]: Start accepts. Automaton has 26 states and 78 transitions. Word has length 4 [2019-02-28 13:18:05,839 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:18:05,839 INFO L480 AbstractCegarLoop]: Abstraction has 26 states and 78 transitions. [2019-02-28 13:18:05,839 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-02-28 13:18:05,839 INFO L276 IsEmpty]: Start isEmpty. Operand 26 states and 78 transitions. [2019-02-28 13:18:05,840 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-02-28 13:18:05,840 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:18:05,840 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-02-28 13:18:05,840 INFO L423 AbstractCegarLoop]: === Iteration 10 === [ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:18:05,840 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:18:05,841 INFO L82 PathProgramCache]: Analyzing trace with hash 929928, now seen corresponding path program 1 times [2019-02-28 13:18:05,841 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:18:05,842 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:18:05,842 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:18:05,842 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:18:05,842 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:18:05,849 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:18:05,910 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;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1284#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-02-28 13:18:05,911 INFO L273 TraceCheckUtils]: 1: Hoare triple {1284#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1285#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:18:05,913 INFO L273 TraceCheckUtils]: 2: Hoare triple {1285#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {1285#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:18:05,916 INFO L273 TraceCheckUtils]: 3: Hoare triple {1285#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {1283#false} is VALID [2019-02-28 13:18:05,917 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:18:05,917 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:18:05,917 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:18:05,917 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-02-28 13:18:05,917 INFO L207 CegarAbsIntRunner]: [0], [6], [20], [21] [2019-02-28 13:18:05,918 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-28 13:18:05,919 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-28 13:18:05,934 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-28 13:18:05,934 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 46 root evaluator evaluations with a maximum evaluation depth of 2. Performed 46 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-02-28 13:18:05,934 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:18:05,935 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-28 13:18:05,935 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:18:05,935 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 9 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 9 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:18:05,944 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:18:05,944 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-28 13:18:05,949 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:18:05,950 INFO L256 TraceCheckSpWp]: Trace formula consists of 18 conjuncts, 7 conjunts are in the unsatisfiable core [2019-02-28 13:18:05,954 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:18:05,954 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:18:06,028 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2019-02-28 13:18:06,033 INFO L315 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-02-28 13:18:06,043 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:18:06,049 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:18:06,062 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 2 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:18:06,070 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 3 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-02-28 13:18:06,077 INFO L442 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 22 [2019-02-28 13:18:06,106 INFO L442 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 3 new quantified variables, introduced 6 case distinctions, treesize of input 22 treesize of output 30 [2019-02-28 13:18:06,110 INFO L315 ElimStorePlain]: Start of recursive call 8: End of recursive call: and 1 xjuncts. [2019-02-28 13:18:06,118 INFO L315 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:18:06,128 INFO L315 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:18:06,137 INFO L315 ElimStorePlain]: Start of recursive call 5: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:18:06,153 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:18:06,154 INFO L209 ElimStorePlain]: Needed 8 recursive calls to eliminate 4 variables, input treesize:35, output treesize:33 [2019-02-28 13:18:06,161 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:18:06,161 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_49|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, |v_#valid_13|]. (let ((.cse0 (store |v_#valid_13| ULTIMATE.start_main_p1 1))) (and (= (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|) (= (select (store .cse0 ULTIMATE.start_main_p2 1) ULTIMATE.start_main_p3) 0) (= 0 (select .cse0 ULTIMATE.start_main_p2)))) [2019-02-28 13:18:06,161 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-28 13:18:06,256 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 21 [2019-02-28 13:18:06,277 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:18:06,289 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:18:06,290 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:38, output treesize:20 [2019-02-28 13:19:11,314 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:19:11,314 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_50|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_50| ULTIMATE.start_main_p1))) (and (= 0 (select |v_#memory_int_50| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (store |v_#memory_int_50| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_50| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 .cse0))) [2019-02-28 13:19:11,314 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-02-28 13:19:11,746 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;#memory_int := #memory_int[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 (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-02-28 13:19:11,749 INFO L273 TraceCheckUtils]: 1: Hoare triple {1289#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1293#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} is VALID [2019-02-28 13:19:11,750 INFO L273 TraceCheckUtils]: 2: Hoare triple {1293#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} assume #memory_int[main_p1] >= 0; {1293#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} is VALID [2019-02-28 13:19:11,751 INFO L273 TraceCheckUtils]: 3: Hoare triple {1293#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} assume !(#memory_int[main_p2] <= 0); {1283#false} is VALID [2019-02-28 13:19:11,751 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:19:11,752 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-28 13:19:11,773 INFO L273 TraceCheckUtils]: 3: Hoare triple {1300#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {1283#false} is VALID [2019-02-28 13:19:11,773 INFO L273 TraceCheckUtils]: 2: Hoare triple {1300#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {1300#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:19:11,774 INFO L273 TraceCheckUtils]: 1: Hoare triple {1307#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1300#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:19:11,776 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;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1307#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:19:11,777 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:19:11,797 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-28 13:19:11,797 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-02-28 13:19:11,797 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-28 13:19:11,797 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-02-28 13:19:11,797 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:19:11,798 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-02-28 13:19:11,809 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:19:11,809 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-02-28 13:19:11,809 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-02-28 13:19:11,810 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-02-28 13:19:11,810 INFO L87 Difference]: Start difference. First operand 26 states and 78 transitions. Second operand 6 states. [2019-02-28 13:19:12,151 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:19:12,151 INFO L93 Difference]: Finished difference Result 36 states and 91 transitions. [2019-02-28 13:19:12,151 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-02-28 13:19:12,152 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-02-28 13:19:12,152 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:19:12,152 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-02-28 13:19:12,153 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 34 transitions. [2019-02-28 13:19:12,153 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-02-28 13:19:12,154 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 34 transitions. [2019-02-28 13:19:12,154 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 34 transitions. [2019-02-28 13:19:12,229 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 34 edges. 34 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:19:12,230 INFO L225 Difference]: With dead ends: 36 [2019-02-28 13:19:12,231 INFO L226 Difference]: Without dead ends: 35 [2019-02-28 13:19:12,231 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 9 GetRequests, 2 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-02-28 13:19:12,232 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 35 states. [2019-02-28 13:19:12,466 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 35 to 28. [2019-02-28 13:19:12,467 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:19:12,467 INFO L82 GeneralOperation]: Start isEquivalent. First operand 35 states. Second operand 28 states. [2019-02-28 13:19:12,467 INFO L74 IsIncluded]: Start isIncluded. First operand 35 states. Second operand 28 states. [2019-02-28 13:19:12,468 INFO L87 Difference]: Start difference. First operand 35 states. Second operand 28 states. [2019-02-28 13:19:12,469 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:19:12,470 INFO L93 Difference]: Finished difference Result 35 states and 89 transitions. [2019-02-28 13:19:12,470 INFO L276 IsEmpty]: Start isEmpty. Operand 35 states and 89 transitions. [2019-02-28 13:19:12,470 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:19:12,470 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:19:12,470 INFO L74 IsIncluded]: Start isIncluded. First operand 28 states. Second operand 35 states. [2019-02-28 13:19:12,471 INFO L87 Difference]: Start difference. First operand 28 states. Second operand 35 states. [2019-02-28 13:19:12,472 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:19:12,472 INFO L93 Difference]: Finished difference Result 35 states and 89 transitions. [2019-02-28 13:19:12,472 INFO L276 IsEmpty]: Start isEmpty. Operand 35 states and 89 transitions. [2019-02-28 13:19:12,473 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:19:12,473 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:19:12,473 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:19:12,473 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:19:12,473 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 28 states. [2019-02-28 13:19:12,474 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 28 states to 28 states and 84 transitions. [2019-02-28 13:19:12,474 INFO L78 Accepts]: Start accepts. Automaton has 28 states and 84 transitions. Word has length 4 [2019-02-28 13:19:12,475 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:19:12,475 INFO L480 AbstractCegarLoop]: Abstraction has 28 states and 84 transitions. [2019-02-28 13:19:12,475 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-02-28 13:19:12,475 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 84 transitions. [2019-02-28 13:19:12,475 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-02-28 13:19:12,475 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:19:12,476 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-02-28 13:19:12,476 INFO L423 AbstractCegarLoop]: === Iteration 11 === [ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:19:12,476 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:19:12,476 INFO L82 PathProgramCache]: Analyzing trace with hash 933584, now seen corresponding path program 1 times [2019-02-28 13:19:12,476 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:19:12,477 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:19:12,477 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:19:12,477 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:19:12,477 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:19:12,484 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:19:12,628 INFO L273 TraceCheckUtils]: 0: Hoare triple {1474#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1476#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-02-28 13:19:12,629 INFO L273 TraceCheckUtils]: 1: Hoare triple {1476#(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]; {1477#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-02-28 13:19:12,630 INFO L273 TraceCheckUtils]: 2: Hoare triple {1477#(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]; {1478#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-02-28 13:19:12,630 INFO L273 TraceCheckUtils]: 3: Hoare triple {1478#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {1475#false} is VALID [2019-02-28 13:19:12,631 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:19:12,631 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:19:12,631 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:19:12,631 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-02-28 13:19:12,631 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [19] [2019-02-28 13:19:12,632 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-28 13:19:12,632 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-28 13:19:12,644 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-28 13:19:12,644 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 46 root evaluator evaluations with a maximum evaluation depth of 2. Performed 46 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-02-28 13:19:12,645 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:19:12,645 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-28 13:19:12,645 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:19:12,645 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 10 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 10 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:19:12,655 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:19:12,655 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-28 13:19:12,659 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:19:12,659 WARN L254 TraceCheckSpWp]: Trace formula consists of 18 conjuncts, 13 conjunts are in the unsatisfiable core [2019-02-28 13:19:12,663 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:19:12,664 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:19:12,684 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:19:12,695 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:19:12,696 INFO L442 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 20 [2019-02-28 13:19:12,700 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:19:12,702 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:19:12,703 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:19:12,704 INFO L442 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 22 [2019-02-28 13:19:12,711 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:19:12,712 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:19:12,713 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:19:12,714 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:19:12,715 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:19:12,716 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:19:12,717 INFO L442 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 21 [2019-02-28 13:19:12,721 INFO L315 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-28 13:19:12,731 INFO L315 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:19:12,742 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:19:12,753 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:19:12,820 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 3 new quantified variables, introduced 0 case distinctions, treesize of input 16 treesize of output 10 [2019-02-28 13:19:12,822 INFO L315 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-02-28 13:19:12,828 INFO L315 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:19:12,836 INFO L315 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:19:12,848 INFO L315 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:19:12,876 INFO L315 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 2 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-02-28 13:19:12,876 INFO L209 ElimStorePlain]: Needed 9 recursive calls to eliminate 3 variables, input treesize:49, output treesize:45 [2019-02-28 13:19:12,919 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:19:12,919 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_52|, ULTIMATE.start_malloc_ptr, |v_#valid_14|]. (let ((.cse1 (store |v_#valid_14| ULTIMATE.start_main_p1 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p2 1))) (and (= 0 (select .cse0 ULTIMATE.start_main_p3)) (= |#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_malloc_ptr 0)) (= (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_malloc_ptr) 0) (= (select .cse1 ULTIMATE.start_main_p2) 0)))) [2019-02-28 13:19:12,919 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_malloc_ptr]. (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr))) [2019-02-28 13:19:12,997 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 26 [2019-02-28 13:19:13,002 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:19:13,025 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:19:13,026 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:55, output treesize:35 [2019-02-28 13:19:13,056 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:19:13,057 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_53|, ULTIMATE.start_main_p2, ULTIMATE.start_malloc_ptr]. (let ((.cse0 (select |v_#memory_int_53| ULTIMATE.start_main_p2))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_53| ULTIMATE.start_malloc_ptr)) (= (store |v_#memory_int_53| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_53| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= .cse0 0) (= (select |v_#memory_int_53| ULTIMATE.start_main_p1) 0))) [2019-02-28 13:19:13,057 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr))) [2019-02-28 13:19:13,122 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 3 disjoint index pairs (out of 6 index pairs), introduced 2 new quantified variables, introduced 5 case distinctions, treesize of input 33 treesize of output 31 [2019-02-28 13:19:13,126 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:19:13,143 INFO L315 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-02-28 13:19:13,143 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:45, output treesize:27 [2019-02-28 13:19:13,851 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:19:13,851 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_54|, ULTIMATE.start_main_p3, ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_54| ULTIMATE.start_main_p3))) (and (= (select |v_#memory_int_54| ULTIMATE.start_malloc_ptr) 0) (= 0 (+ (select |v_#memory_int_54| ULTIMATE.start_main_p2) 1)) (= (select |v_#memory_int_54| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= (store |v_#memory_int_54| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= 0 .cse0))) [2019-02-28 13:19:13,851 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr))) [2019-02-28 13:19:13,881 INFO L273 TraceCheckUtils]: 0: Hoare triple {1474#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1482#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-02-28 13:19:13,883 INFO L273 TraceCheckUtils]: 1: Hoare triple {1482#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {1486#(and (exists ((ULTIMATE.start_main_p2 Int)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-02-28 13:19:13,885 INFO L273 TraceCheckUtils]: 2: Hoare triple {1486#(and (exists ((ULTIMATE.start_main_p2 Int)) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {1490#(and (exists ((ULTIMATE.start_main_p2 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)))} is VALID [2019-02-28 13:19:13,886 INFO L273 TraceCheckUtils]: 3: Hoare triple {1490#(and (exists ((ULTIMATE.start_main_p2 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)))} assume !(#memory_int[main_p1] >= 0); {1475#false} is VALID [2019-02-28 13:19:13,886 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:19:13,887 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-28 13:19:13,943 INFO L273 TraceCheckUtils]: 3: Hoare triple {1494#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1475#false} is VALID [2019-02-28 13:19:13,945 INFO L273 TraceCheckUtils]: 2: Hoare triple {1498#(<= 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]; {1494#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:19:13,947 INFO L273 TraceCheckUtils]: 1: Hoare triple {1502#(<= 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]; {1498#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:19:13,949 INFO L273 TraceCheckUtils]: 0: Hoare triple {1474#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1502#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:19:13,950 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:19:13,971 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-28 13:19:13,971 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-02-28 13:19:13,971 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-28 13:19:13,972 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-02-28 13:19:13,972 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:19:13,972 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-02-28 13:19:13,988 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:19:13,988 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-02-28 13:19:13,988 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-02-28 13:19:13,989 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-02-28 13:19:13,989 INFO L87 Difference]: Start difference. First operand 28 states and 84 transitions. Second operand 8 states. [2019-02-28 13:19:14,886 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:19:14,886 INFO L93 Difference]: Finished difference Result 52 states and 123 transitions. [2019-02-28 13:19:14,886 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-02-28 13:19:14,886 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-02-28 13:19:14,886 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:19:14,887 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-28 13:19:14,887 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 47 transitions. [2019-02-28 13:19:14,887 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-28 13:19:14,888 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 47 transitions. [2019-02-28 13:19:14,888 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 47 transitions. [2019-02-28 13:19:14,968 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 47 edges. 47 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:19:14,969 INFO L225 Difference]: With dead ends: 52 [2019-02-28 13:19:14,969 INFO L226 Difference]: Without dead ends: 50 [2019-02-28 13:19:14,970 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-02-28 13:19:14,970 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 50 states. [2019-02-28 13:19:15,152 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 50 to 31. [2019-02-28 13:19:15,152 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:19:15,152 INFO L82 GeneralOperation]: Start isEquivalent. First operand 50 states. Second operand 31 states. [2019-02-28 13:19:15,152 INFO L74 IsIncluded]: Start isIncluded. First operand 50 states. Second operand 31 states. [2019-02-28 13:19:15,153 INFO L87 Difference]: Start difference. First operand 50 states. Second operand 31 states. [2019-02-28 13:19:15,155 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:19:15,155 INFO L93 Difference]: Finished difference Result 50 states and 119 transitions. [2019-02-28 13:19:15,155 INFO L276 IsEmpty]: Start isEmpty. Operand 50 states and 119 transitions. [2019-02-28 13:19:15,156 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:19:15,156 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:19:15,156 INFO L74 IsIncluded]: Start isIncluded. First operand 31 states. Second operand 50 states. [2019-02-28 13:19:15,156 INFO L87 Difference]: Start difference. First operand 31 states. Second operand 50 states. [2019-02-28 13:19:15,158 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:19:15,158 INFO L93 Difference]: Finished difference Result 50 states and 119 transitions. [2019-02-28 13:19:15,158 INFO L276 IsEmpty]: Start isEmpty. Operand 50 states and 119 transitions. [2019-02-28 13:19:15,159 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:19:15,159 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:19:15,159 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:19:15,159 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:19:15,159 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 31 states. [2019-02-28 13:19:15,160 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 31 states to 31 states and 99 transitions. [2019-02-28 13:19:15,161 INFO L78 Accepts]: Start accepts. Automaton has 31 states and 99 transitions. Word has length 4 [2019-02-28 13:19:15,161 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:19:15,161 INFO L480 AbstractCegarLoop]: Abstraction has 31 states and 99 transitions. [2019-02-28 13:19:15,161 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-02-28 13:19:15,161 INFO L276 IsEmpty]: Start isEmpty. Operand 31 states and 99 transitions. [2019-02-28 13:19:15,161 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-02-28 13:19:15,161 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:19:15,162 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-02-28 13:19:15,162 INFO L423 AbstractCegarLoop]: === Iteration 12 === [ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:19:15,162 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:19:15,162 INFO L82 PathProgramCache]: Analyzing trace with hash 937616, now seen corresponding path program 1 times [2019-02-28 13:19:15,162 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:19:15,163 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:19:15,163 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:19:15,163 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:19:15,163 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:19:15,168 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:19:15,244 INFO L273 TraceCheckUtils]: 0: Hoare triple {1727#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1729#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-02-28 13:19:15,246 INFO L273 TraceCheckUtils]: 1: Hoare triple {1729#(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]; {1730#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:19:15,246 INFO L273 TraceCheckUtils]: 2: Hoare triple {1730#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {1730#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:19:15,254 INFO L273 TraceCheckUtils]: 3: Hoare triple {1730#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {1728#false} is VALID [2019-02-28 13:19:15,254 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:19:15,255 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:19:15,255 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:19:15,255 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-02-28 13:19:15,255 INFO L207 CegarAbsIntRunner]: [0], [14], [20], [21] [2019-02-28 13:19:15,256 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-28 13:19:15,256 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-28 13:19:15,268 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-28 13:19:15,269 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 46 root evaluator evaluations with a maximum evaluation depth of 2. Performed 46 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-02-28 13:19:15,269 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:19:15,269 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-28 13:19:15,269 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:19:15,269 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 11 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 11 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:19:15,279 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:19:15,279 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-28 13:19:15,283 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:19:15,283 WARN L254 TraceCheckSpWp]: Trace formula consists of 18 conjuncts, 10 conjunts are in the unsatisfiable core [2019-02-28 13:19:15,287 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:19:15,288 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:19:15,309 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:19:15,325 INFO L442 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 2 new quantified variables, introduced 2 case distinctions, treesize of input 18 treesize of output 23 [2019-02-28 13:19:15,334 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:19:15,336 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:19:15,339 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 1 case distinctions, treesize of input 20 treesize of output 22 [2019-02-28 13:19:15,345 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:19:15,347 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:19:15,349 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:19:15,350 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:19:15,352 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:19:15,354 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 5 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 1 case distinctions, treesize of input 22 treesize of output 21 [2019-02-28 13:19:15,358 INFO L315 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-28 13:19:15,368 INFO L315 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:19:15,379 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:19:15,396 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:19:15,439 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 5 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2019-02-28 13:19:15,441 INFO L315 ElimStorePlain]: Start of recursive call 8: End of recursive call: and 1 xjuncts. [2019-02-28 13:19:15,448 INFO L315 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:19:15,460 INFO L315 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:19:15,482 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:19:15,483 INFO L209 ElimStorePlain]: Needed 8 recursive calls to eliminate 4 variables, input treesize:41, output treesize:41 [2019-02-28 13:19:15,488 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:19:15,488 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_57|, ULTIMATE.start_main_p1, ULTIMATE.start_malloc_ptr, |v_#valid_15|]. (let ((.cse0 (store (store |v_#valid_15| ULTIMATE.start_main_p1 1) ULTIMATE.start_main_p2 1))) (and (= (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_malloc_ptr 0) |#memory_int|) (= (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_malloc_ptr) 0) (= 0 (select .cse0 ULTIMATE.start_main_p3)))) [2019-02-28 13:19:15,488 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_malloc_ptr]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr))) [2019-02-28 13:19:15,555 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 5 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 1 case distinctions, treesize of input 31 treesize of output 26 [2019-02-28 13:19:15,564 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:19:15,584 INFO L315 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-02-28 13:19:15,585 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:51, output treesize:29 [2019-02-28 13:22:36,903 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:22:36,903 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_58|, ULTIMATE.start_main_p3, ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_58| ULTIMATE.start_main_p3))) (and (= .cse0 0) (= (store |v_#memory_int_58| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (= (select |v_#memory_int_58| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_58| ULTIMATE.start_malloc_ptr) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= (select |v_#memory_int_58| ULTIMATE.start_main_p2) 0))) [2019-02-28 13:22:36,903 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_malloc_ptr, ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr))) [2019-02-28 13:22:37,567 INFO L273 TraceCheckUtils]: 0: Hoare triple {1727#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1734#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-02-28 13:22:37,569 INFO L273 TraceCheckUtils]: 1: Hoare triple {1734#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p3)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {1738#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-02-28 13:22:37,570 INFO L273 TraceCheckUtils]: 2: Hoare triple {1738#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume #memory_int[main_p1] >= 0; {1738#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-02-28 13:22:37,571 INFO L273 TraceCheckUtils]: 3: Hoare triple {1738#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_malloc_ptr Int)) (and (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_malloc_ptr ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_malloc_ptr)))) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume !(#memory_int[main_p2] <= 0); {1728#false} is VALID [2019-02-28 13:22:37,572 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:22:37,572 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-28 13:22:37,596 INFO L273 TraceCheckUtils]: 3: Hoare triple {1745#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {1728#false} is VALID [2019-02-28 13:22:37,597 INFO L273 TraceCheckUtils]: 2: Hoare triple {1745#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {1745#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:22:37,598 INFO L273 TraceCheckUtils]: 1: Hoare triple {1752#(<= (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]; {1745#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:22:37,600 INFO L273 TraceCheckUtils]: 0: Hoare triple {1727#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1752#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:22:37,600 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:22:37,620 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-28 13:22:37,621 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-02-28 13:22:37,621 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-28 13:22:37,621 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-02-28 13:22:37,621 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:22:37,621 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-02-28 13:22:37,633 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:22:37,633 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-02-28 13:22:37,633 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-02-28 13:22:37,633 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-02-28 13:22:37,634 INFO L87 Difference]: Start difference. First operand 31 states and 99 transitions. Second operand 6 states. [2019-02-28 13:22:38,086 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:22:38,086 INFO L93 Difference]: Finished difference Result 39 states and 105 transitions. [2019-02-28 13:22:38,086 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-02-28 13:22:38,087 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-02-28 13:22:38,087 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:22:38,087 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-02-28 13:22:38,088 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 34 transitions. [2019-02-28 13:22:38,088 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-02-28 13:22:38,089 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 34 transitions. [2019-02-28 13:22:38,089 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 34 transitions. [2019-02-28 13:22:38,145 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 34 edges. 34 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:22:38,146 INFO L225 Difference]: With dead ends: 39 [2019-02-28 13:22:38,146 INFO L226 Difference]: Without dead ends: 38 [2019-02-28 13:22:38,147 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 9 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=31, Invalid=41, Unknown=0, NotChecked=0, Total=72 [2019-02-28 13:22:38,147 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 38 states. [2019-02-28 13:22:38,272 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 38 to 30. [2019-02-28 13:22:38,272 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:22:38,272 INFO L82 GeneralOperation]: Start isEquivalent. First operand 38 states. Second operand 30 states. [2019-02-28 13:22:38,273 INFO L74 IsIncluded]: Start isIncluded. First operand 38 states. Second operand 30 states. [2019-02-28 13:22:38,273 INFO L87 Difference]: Start difference. First operand 38 states. Second operand 30 states. [2019-02-28 13:22:38,274 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:22:38,275 INFO L93 Difference]: Finished difference Result 38 states and 103 transitions. [2019-02-28 13:22:38,275 INFO L276 IsEmpty]: Start isEmpty. Operand 38 states and 103 transitions. [2019-02-28 13:22:38,275 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:22:38,275 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:22:38,276 INFO L74 IsIncluded]: Start isIncluded. First operand 30 states. Second operand 38 states. [2019-02-28 13:22:38,276 INFO L87 Difference]: Start difference. First operand 30 states. Second operand 38 states. [2019-02-28 13:22:38,277 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:22:38,277 INFO L93 Difference]: Finished difference Result 38 states and 103 transitions. [2019-02-28 13:22:38,277 INFO L276 IsEmpty]: Start isEmpty. Operand 38 states and 103 transitions. [2019-02-28 13:22:38,277 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:22:38,278 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:22:38,278 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:22:38,278 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:22:38,278 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 30 states. [2019-02-28 13:22:38,279 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 30 states to 30 states and 97 transitions. [2019-02-28 13:22:38,279 INFO L78 Accepts]: Start accepts. Automaton has 30 states and 97 transitions. Word has length 4 [2019-02-28 13:22:38,279 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:22:38,279 INFO L480 AbstractCegarLoop]: Abstraction has 30 states and 97 transitions. [2019-02-28 13:22:38,280 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-02-28 13:22:38,280 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states and 97 transitions. [2019-02-28 13:22:38,280 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-02-28 13:22:38,280 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:22:38,280 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1] [2019-02-28 13:22:38,280 INFO L423 AbstractCegarLoop]: === Iteration 13 === [ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:22:38,281 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:22:38,281 INFO L82 PathProgramCache]: Analyzing trace with hash 29121388, now seen corresponding path program 2 times [2019-02-28 13:22:38,281 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:22:38,282 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:22:38,282 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:22:38,282 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:22:38,282 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:22:38,288 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:22:38,371 INFO L273 TraceCheckUtils]: 0: Hoare triple {1936#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1938#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-28 13:22:38,372 INFO L273 TraceCheckUtils]: 1: Hoare triple {1938#(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]; {1938#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-28 13:22:38,373 INFO L273 TraceCheckUtils]: 2: Hoare triple {1938#(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]; {1939#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-02-28 13:22:38,374 INFO L273 TraceCheckUtils]: 3: Hoare triple {1939#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1940#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:22:38,375 INFO L273 TraceCheckUtils]: 4: Hoare triple {1940#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1937#false} is VALID [2019-02-28 13:22:38,376 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-02-28 13:22:38,376 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:22:38,376 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:22:38,376 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-02-28 13:22:38,377 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-02-28 13:22:38,377 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:22:38,377 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 12 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 12 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:22:38,387 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-02-28 13:22:38,387 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-02-28 13:22:38,394 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-02-28 13:22:38,394 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-02-28 13:22:38,394 WARN L254 TraceCheckSpWp]: Trace formula consists of 19 conjuncts, 14 conjunts are in the unsatisfiable core [2019-02-28 13:22:38,401 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:22:38,402 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:22:38,490 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 3 new quantified variables, introduced 0 case distinctions, treesize of input 16 treesize of output 10 [2019-02-28 13:22:38,495 INFO L315 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-28 13:22:38,502 INFO L315 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:22:38,513 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:22:38,528 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:22:38,549 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 3 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:22:38,558 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 5 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-02-28 13:22:38,568 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 6 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-02-28 13:22:38,579 INFO L442 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 21 [2019-02-28 13:22:38,581 INFO L315 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-02-28 13:22:38,590 INFO L315 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:22:38,600 INFO L315 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:22:38,609 INFO L315 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:22:38,637 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 2 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:22:38,637 INFO L209 ElimStorePlain]: Needed 9 recursive calls to eliminate 4 variables, input treesize:49, output treesize:45 [2019-02-28 13:22:38,643 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:22:38,643 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_60|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, |v_#valid_16|]. (let ((.cse1 (store |v_#valid_16| ULTIMATE.start_main_p1 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p2 1))) (and (= |#memory_int| (store (store (store (store |v_#memory_int_60| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (= (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4) 0) (= (select .cse0 ULTIMATE.start_main_p3) 0) (= 0 (select .cse1 ULTIMATE.start_main_p2))))) [2019-02-28 13:22:38,643 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-28 13:22:38,704 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 26 [2019-02-28 13:22:38,707 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:22:38,731 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:22:38,731 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:55, output treesize:35 [2019-02-28 13:22:38,739 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:22:38,739 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_61|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_61| ULTIMATE.start_main_p4))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_61| ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_61| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= |#memory_int| (store |v_#memory_int_61| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 .cse0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_61| ULTIMATE.start_main_p2) 0))) [2019-02-28 13:22:38,739 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-02-28 13:22:38,810 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 3 disjoint index pairs (out of 6 index pairs), introduced 4 new quantified variables, introduced 9 case distinctions, treesize of input 33 treesize of output 37 [2019-02-28 13:22:38,823 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:22:38,844 INFO L315 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-02-28 13:22:38,845 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:45, output treesize:35 [2019-02-28 13:22:42,974 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:22:42,975 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_62|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_62| ULTIMATE.start_main_p4))) (and (= (select |v_#memory_int_62| ULTIMATE.start_main_p3) 0) (= (store |v_#memory_int_62| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= 0 (+ .cse0 1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_62| ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |v_#memory_int_62| ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))) [2019-02-28 13:22:42,975 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) [2019-02-28 13:22:43,042 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 3 disjoint index pairs (out of 6 index pairs), introduced 2 new quantified variables, introduced 5 case distinctions, treesize of input 33 treesize of output 31 [2019-02-28 13:22:43,046 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:22:43,064 INFO L315 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-02-28 13:22:43,064 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:45, output treesize:27 [2019-02-28 13:22:43,084 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:22:43,084 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_63|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_63| ULTIMATE.start_main_p1))) (and (= (select |v_#memory_int_63| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (store |v_#memory_int_63| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= .cse0 0) (= (+ (select |v_#memory_int_63| ULTIMATE.start_main_p4) 2) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |v_#memory_int_63| ULTIMATE.start_main_p2) 0))) [2019-02-28 13:22:43,085 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) [2019-02-28 13:22:43,129 INFO L273 TraceCheckUtils]: 0: Hoare triple {1936#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1944#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-28 13:22:43,143 INFO L273 TraceCheckUtils]: 1: Hoare triple {1944#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1948#(and (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-02-28 13:22:43,145 INFO L273 TraceCheckUtils]: 2: Hoare triple {1948#(and (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1952#(and (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-02-28 13:22:43,146 INFO L273 TraceCheckUtils]: 3: Hoare triple {1952#(and (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1956#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} is VALID [2019-02-28 13:22:43,147 INFO L273 TraceCheckUtils]: 4: Hoare triple {1956#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} assume !(#memory_int[main_p1] >= 0); {1937#false} is VALID [2019-02-28 13:22:43,147 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:22:43,147 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-28 13:22:43,218 INFO L273 TraceCheckUtils]: 4: Hoare triple {1960#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1937#false} is VALID [2019-02-28 13:22:43,219 INFO L273 TraceCheckUtils]: 3: Hoare triple {1964#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1960#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:22:43,221 INFO L273 TraceCheckUtils]: 2: Hoare triple {1968#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1964#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} is VALID [2019-02-28 13:22:43,222 INFO L273 TraceCheckUtils]: 1: Hoare triple {1972#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 2))) ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1968#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1))} is VALID [2019-02-28 13:22:43,224 INFO L273 TraceCheckUtils]: 0: Hoare triple {1936#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1972#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 2))) ULTIMATE.start_main_p1) 1))} is VALID [2019-02-28 13:22:43,225 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 2 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:22:43,245 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-28 13:22:43,245 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 4, 4] total 11 [2019-02-28 13:22:43,245 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-28 13:22:43,245 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 5 [2019-02-28 13:22:43,246 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:22:43,246 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states. [2019-02-28 13:22:43,261 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:22:43,261 INFO L459 AbstractCegarLoop]: Interpolant automaton has 9 states [2019-02-28 13:22:43,261 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2019-02-28 13:22:43,262 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=61, Invalid=95, Unknown=0, NotChecked=0, Total=156 [2019-02-28 13:22:43,262 INFO L87 Difference]: Start difference. First operand 30 states and 97 transitions. Second operand 9 states. [2019-02-28 13:22:44,159 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:22:44,159 INFO L93 Difference]: Finished difference Result 65 states and 148 transitions. [2019-02-28 13:22:44,159 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-02-28 13:22:44,159 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 5 [2019-02-28 13:22:44,160 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:22:44,160 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2019-02-28 13:22:44,160 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 64 transitions. [2019-02-28 13:22:44,160 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2019-02-28 13:22:44,161 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 64 transitions. [2019-02-28 13:22:44,161 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 64 transitions. [2019-02-28 13:22:44,342 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 64 edges. 64 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:22:44,344 INFO L225 Difference]: With dead ends: 65 [2019-02-28 13:22:44,344 INFO L226 Difference]: Without dead ends: 60 [2019-02-28 13:22:44,344 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 13 GetRequests, 1 SyntacticMatches, 0 SemanticMatches, 12 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 47 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=70, Invalid=112, Unknown=0, NotChecked=0, Total=182 [2019-02-28 13:22:44,345 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 60 states. [2019-02-28 13:22:44,536 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 60 to 32. [2019-02-28 13:22:44,536 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:22:44,536 INFO L82 GeneralOperation]: Start isEquivalent. First operand 60 states. Second operand 32 states. [2019-02-28 13:22:44,536 INFO L74 IsIncluded]: Start isIncluded. First operand 60 states. Second operand 32 states. [2019-02-28 13:22:44,536 INFO L87 Difference]: Start difference. First operand 60 states. Second operand 32 states. [2019-02-28 13:22:44,538 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:22:44,539 INFO L93 Difference]: Finished difference Result 60 states and 142 transitions. [2019-02-28 13:22:44,539 INFO L276 IsEmpty]: Start isEmpty. Operand 60 states and 142 transitions. [2019-02-28 13:22:44,539 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:22:44,539 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:22:44,539 INFO L74 IsIncluded]: Start isIncluded. First operand 32 states. Second operand 60 states. [2019-02-28 13:22:44,539 INFO L87 Difference]: Start difference. First operand 32 states. Second operand 60 states. [2019-02-28 13:22:44,541 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:22:44,541 INFO L93 Difference]: Finished difference Result 60 states and 142 transitions. [2019-02-28 13:22:44,541 INFO L276 IsEmpty]: Start isEmpty. Operand 60 states and 142 transitions. [2019-02-28 13:22:44,541 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:22:44,541 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:22:44,541 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:22:44,542 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:22:44,542 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 32 states. [2019-02-28 13:22:44,543 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 32 states to 32 states and 106 transitions. [2019-02-28 13:22:44,543 INFO L78 Accepts]: Start accepts. Automaton has 32 states and 106 transitions. Word has length 5 [2019-02-28 13:22:44,543 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:22:44,543 INFO L480 AbstractCegarLoop]: Abstraction has 32 states and 106 transitions. [2019-02-28 13:22:44,543 INFO L481 AbstractCegarLoop]: Interpolant automaton has 9 states. [2019-02-28 13:22:44,543 INFO L276 IsEmpty]: Start isEmpty. Operand 32 states and 106 transitions. [2019-02-28 13:22:44,544 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-02-28 13:22:44,544 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:22:44,544 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1] [2019-02-28 13:22:44,544 INFO L423 AbstractCegarLoop]: === Iteration 14 === [ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:22:44,544 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:22:44,545 INFO L82 PathProgramCache]: Analyzing trace with hash 29121636, now seen corresponding path program 2 times [2019-02-28 13:22:44,545 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:22:44,545 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:22:44,545 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-02-28 13:22:44,546 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:22:44,546 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:22:44,552 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:22:44,661 INFO L273 TraceCheckUtils]: 0: Hoare triple {2235#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2237#(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)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-28 13:22:44,662 INFO L273 TraceCheckUtils]: 1: Hoare triple {2237#(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)) (= 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]; {2237#(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)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-28 13:22:44,663 INFO L273 TraceCheckUtils]: 2: Hoare triple {2237#(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)) (= 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]; {2238#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (or (= 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 ULTIMATE.start_main_p3)))} is VALID [2019-02-28 13:22:44,664 INFO L273 TraceCheckUtils]: 3: Hoare triple {2238#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (or (= 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 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {2239#(or (<= 1 (select |#memory_int| ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-02-28 13:22:44,665 INFO L273 TraceCheckUtils]: 4: Hoare triple {2239#(or (<= 1 (select |#memory_int| ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} assume !(#memory_int[main_p1] >= 0); {2236#false} is VALID [2019-02-28 13:22:44,665 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-02-28 13:22:44,666 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:22:44,666 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:22:44,666 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-02-28 13:22:44,666 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-02-28 13:22:44,666 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:22:44,666 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 13 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 13 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:22:44,676 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-02-28 13:22:44,676 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-02-28 13:22:44,681 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-02-28 13:22:44,682 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-02-28 13:22:44,682 WARN L254 TraceCheckSpWp]: Trace formula consists of 19 conjuncts, 14 conjunts are in the unsatisfiable core [2019-02-28 13:22:44,687 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:22:44,688 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:22:44,707 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:22:44,712 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:22:44,714 INFO L442 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 20 [2019-02-28 13:22:44,742 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:22:44,743 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:22:44,744 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:22:44,744 INFO L442 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 22 [2019-02-28 13:22:44,752 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:22:44,753 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:22:44,756 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:22:44,757 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:22:44,757 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:22:44,758 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:22:44,759 INFO L442 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 21 [2019-02-28 13:22:44,761 INFO L315 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-28 13:22:44,770 INFO L315 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:22:44,779 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:22:44,789 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:22:44,858 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 3 new quantified variables, introduced 0 case distinctions, treesize of input 16 treesize of output 10 [2019-02-28 13:22:44,860 INFO L315 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-02-28 13:22:44,865 INFO L315 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:22:44,872 INFO L315 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:22:44,884 INFO L315 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:22:44,910 INFO L315 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 2 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-02-28 13:22:44,911 INFO L209 ElimStorePlain]: Needed 9 recursive calls to eliminate 3 variables, input treesize:49, output treesize:45 [2019-02-28 13:22:44,918 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:22:44,918 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_67|, ULTIMATE.start_main_p2, |v_#valid_17|]. (let ((.cse1 (store |v_#valid_17| ULTIMATE.start_main_p1 1))) (let ((.cse0 (store .cse1 ULTIMATE.start_main_p2 1))) (and (= (store (store (store (store |v_#memory_int_67| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (= 0 (select (store .cse0 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4)) (= 0 (select .cse0 ULTIMATE.start_main_p3)) (= 0 (select .cse1 ULTIMATE.start_main_p2))))) [2019-02-28 13:22:44,918 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-28 13:22:44,973 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 26 [2019-02-28 13:22:44,976 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:22:44,999 INFO L315 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-02-28 13:22:45,000 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:55, output treesize:35 [2019-02-28 13:22:45,013 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:22:45,013 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_68|, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_68| ULTIMATE.start_main_p4))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_68| ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_68| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_68| ULTIMATE.start_main_p1) 0) (= .cse0 0) (= (store |v_#memory_int_68| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-02-28 13:22:45,013 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-02-28 13:22:45,091 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 3 disjoint index pairs (out of 6 index pairs), introduced 4 new quantified variables, introduced 9 case distinctions, treesize of input 33 treesize of output 45 [2019-02-28 13:22:45,095 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:22:45,118 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:22:45,118 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:45, output treesize:35 [2019-02-28 13:26:10,197 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:26:10,197 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_69|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_69| ULTIMATE.start_main_p4))) (and (= (+ .cse0 1) 0) (= (store |v_#memory_int_69| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_69| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_69| ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |v_#memory_int_69| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))) [2019-02-28 13:26:10,197 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) [2019-02-28 13:26:17,594 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 3 disjoint index pairs (out of 6 index pairs), introduced 2 new quantified variables, introduced 5 case distinctions, treesize of input 33 treesize of output 31 [2019-02-28 13:26:17,600 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:26:17,616 INFO L315 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-02-28 13:26:17,617 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:45, output treesize:27 [2019-02-28 13:26:17,633 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:26:17,634 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_70|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_70| ULTIMATE.start_main_p3))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_70| ULTIMATE.start_main_p2)) (= (+ (select |v_#memory_int_70| ULTIMATE.start_main_p4) 2) 0) (= 0 .cse0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (store |v_#memory_int_70| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= 0 (select |v_#memory_int_70| ULTIMATE.start_main_p1)))) [2019-02-28 13:26:17,634 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) [2019-02-28 13:26:17,663 INFO L273 TraceCheckUtils]: 0: Hoare triple {2235#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2243#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-28 13:26:17,665 INFO L273 TraceCheckUtils]: 1: Hoare triple {2243#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2247#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-02-28 13:26:17,666 INFO L273 TraceCheckUtils]: 2: Hoare triple {2247#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2251#(and (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-02-28 13:26:17,668 INFO L273 TraceCheckUtils]: 3: Hoare triple {2251#(and (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {2255#(and (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)))} is VALID [2019-02-28 13:26:17,669 INFO L273 TraceCheckUtils]: 4: Hoare triple {2255#(and (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))) (exists ((ULTIMATE.start_main_p3 Int)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)))} assume !(#memory_int[main_p1] >= 0); {2236#false} is VALID [2019-02-28 13:26:17,670 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:26:17,670 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-28 13:26:17,759 INFO L273 TraceCheckUtils]: 4: Hoare triple {2239#(or (<= 1 (select |#memory_int| ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} assume !(#memory_int[main_p1] >= 0); {2236#false} is VALID [2019-02-28 13:26:17,761 INFO L273 TraceCheckUtils]: 3: Hoare triple {2262#(or (= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 0) (<= 1 (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]; {2239#(or (<= 1 (select |#memory_int| ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-02-28 13:26:17,762 INFO L273 TraceCheckUtils]: 2: Hoare triple {2266#(or (= 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)) (<= 1 (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]; {2262#(or (= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 0) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)))} is VALID [2019-02-28 13:26:17,764 INFO L273 TraceCheckUtils]: 1: Hoare triple {2270#(or (<= 1 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 2))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 2))) 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) (- 2))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 2))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2266#(or (= 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)) (<= 1 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)))} is VALID [2019-02-28 13:26:17,766 INFO L273 TraceCheckUtils]: 0: Hoare triple {2235#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2270#(or (<= 1 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 2))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 2))) 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) (- 2))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 2))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 0))} is VALID [2019-02-28 13:26:17,767 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 1 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:26:17,786 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-28 13:26:17,786 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 4, 4] total 10 [2019-02-28 13:26:17,786 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-28 13:26:17,787 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 5 [2019-02-28 13:26:17,787 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:26:17,787 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states. [2019-02-28 13:26:17,801 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:26:17,801 INFO L459 AbstractCegarLoop]: Interpolant automaton has 9 states [2019-02-28 13:26:17,801 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2019-02-28 13:26:17,802 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=49, Invalid=83, Unknown=0, NotChecked=0, Total=132 [2019-02-28 13:26:17,802 INFO L87 Difference]: Start difference. First operand 32 states and 106 transitions. Second operand 9 states. [2019-02-28 13:26:18,848 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:26:18,848 INFO L93 Difference]: Finished difference Result 53 states and 146 transitions. [2019-02-28 13:26:18,848 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-02-28 13:26:18,848 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 5 [2019-02-28 13:26:18,848 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:26:18,849 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2019-02-28 13:26:18,849 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 55 transitions. [2019-02-28 13:26:18,850 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2019-02-28 13:26:18,850 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 55 transitions. [2019-02-28 13:26:18,851 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 55 transitions. [2019-02-28 13:26:18,956 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 55 edges. 55 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:26:18,957 INFO L225 Difference]: With dead ends: 53 [2019-02-28 13:26:18,958 INFO L226 Difference]: Without dead ends: 51 [2019-02-28 13:26:18,958 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 13 GetRequests, 1 SyntacticMatches, 1 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 49 ImplicationChecksByTransitivity, 7.6s TimeCoverageRelationStatistics Valid=58, Invalid=98, Unknown=0, NotChecked=0, Total=156 [2019-02-28 13:26:18,958 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 51 states. [2019-02-28 13:26:19,114 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 51 to 32. [2019-02-28 13:26:19,115 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:26:19,115 INFO L82 GeneralOperation]: Start isEquivalent. First operand 51 states. Second operand 32 states. [2019-02-28 13:26:19,115 INFO L74 IsIncluded]: Start isIncluded. First operand 51 states. Second operand 32 states. [2019-02-28 13:26:19,115 INFO L87 Difference]: Start difference. First operand 51 states. Second operand 32 states. [2019-02-28 13:26:19,116 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:26:19,116 INFO L93 Difference]: Finished difference Result 51 states and 142 transitions. [2019-02-28 13:26:19,117 INFO L276 IsEmpty]: Start isEmpty. Operand 51 states and 142 transitions. [2019-02-28 13:26:19,117 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:26:19,117 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:26:19,117 INFO L74 IsIncluded]: Start isIncluded. First operand 32 states. Second operand 51 states. [2019-02-28 13:26:19,117 INFO L87 Difference]: Start difference. First operand 32 states. Second operand 51 states. [2019-02-28 13:26:19,119 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:26:19,119 INFO L93 Difference]: Finished difference Result 51 states and 142 transitions. [2019-02-28 13:26:19,119 INFO L276 IsEmpty]: Start isEmpty. Operand 51 states and 142 transitions. [2019-02-28 13:26:19,119 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:26:19,119 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:26:19,119 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:26:19,119 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:26:19,120 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 32 states. [2019-02-28 13:26:19,120 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 32 states to 32 states and 106 transitions. [2019-02-28 13:26:19,120 INFO L78 Accepts]: Start accepts. Automaton has 32 states and 106 transitions. Word has length 5 [2019-02-28 13:26:19,120 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:26:19,121 INFO L480 AbstractCegarLoop]: Abstraction has 32 states and 106 transitions. [2019-02-28 13:26:19,121 INFO L481 AbstractCegarLoop]: Interpolant automaton has 9 states. [2019-02-28 13:26:19,121 INFO L276 IsEmpty]: Start isEmpty. Operand 32 states and 106 transitions. [2019-02-28 13:26:19,121 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-02-28 13:26:19,121 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:26:19,121 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-02-28 13:26:19,121 INFO L423 AbstractCegarLoop]: === Iteration 15 === [ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:26:19,121 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:26:19,121 INFO L82 PathProgramCache]: Analyzing trace with hash 29112214, now seen corresponding path program 1 times [2019-02-28 13:26:19,122 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:26:19,122 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:26:19,122 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-02-28 13:26:19,122 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:26:19,122 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:26:19,128 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:26:19,219 INFO L273 TraceCheckUtils]: 0: Hoare triple {2505#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2507#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-02-28 13:26:19,220 INFO L273 TraceCheckUtils]: 1: Hoare triple {2507#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2508#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-02-28 13:26:19,221 INFO L273 TraceCheckUtils]: 2: Hoare triple {2508#(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]; {2509#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:26:19,222 INFO L273 TraceCheckUtils]: 3: Hoare triple {2509#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {2509#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:26:19,222 INFO L273 TraceCheckUtils]: 4: Hoare triple {2509#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {2506#false} is VALID [2019-02-28 13:26:19,223 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:26:19,223 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:26:19,223 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:26:19,223 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-02-28 13:26:19,223 INFO L207 CegarAbsIntRunner]: [0], [6], [16], [20], [21] [2019-02-28 13:26:19,224 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-28 13:26:19,225 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-28 13:26:19,238 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-28 13:26:19,238 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 48 root evaluator evaluations with a maximum evaluation depth of 2. Performed 48 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-02-28 13:26:19,238 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:26:19,239 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-28 13:26:19,239 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:26:19,239 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 14 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 14 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:26:19,248 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:26:19,249 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-28 13:26:19,253 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:26:19,253 WARN L254 TraceCheckSpWp]: Trace formula consists of 19 conjuncts, 13 conjunts are in the unsatisfiable core [2019-02-28 13:26:19,257 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:26:19,258 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:26:19,307 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 3 new quantified variables, introduced 0 case distinctions, treesize of input 16 treesize of output 10 [2019-02-28 13:26:19,308 INFO L315 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-28 13:26:19,315 INFO L315 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:26:19,323 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:26:19,336 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:26:19,356 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 3 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:26:19,364 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 5 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-02-28 13:26:19,374 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 6 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-02-28 13:26:19,403 INFO L442 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 21 [2019-02-28 13:26:19,406 INFO L315 ElimStorePlain]: Start of recursive call 9: End of recursive call: and 1 xjuncts. [2019-02-28 13:26:19,414 INFO L315 ElimStorePlain]: Start of recursive call 8: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:26:19,424 INFO L315 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:26:19,432 INFO L315 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:26:19,457 INFO L315 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 2 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-02-28 13:26:19,457 INFO L209 ElimStorePlain]: Needed 9 recursive calls to eliminate 3 variables, input treesize:49, output treesize:45 [2019-02-28 13:26:19,464 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:26:19,464 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_74|, ULTIMATE.start_main_p3, |v_#valid_18|]. (let ((.cse0 (store |v_#valid_18| ULTIMATE.start_main_p1 1))) (let ((.cse1 (store .cse0 ULTIMATE.start_main_p2 1))) (and (= 0 (select .cse0 ULTIMATE.start_main_p2)) (= (store (store (store (store |v_#memory_int_74| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (= 0 (select (store .cse1 ULTIMATE.start_main_p3 1) ULTIMATE.start_main_p4)) (= 0 (select .cse1 ULTIMATE.start_main_p3))))) [2019-02-28 13:26:19,465 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-28 13:26:19,535 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 26 [2019-02-28 13:26:19,538 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:26:19,559 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:26:19,559 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:55, output treesize:35 [2019-02-28 13:26:19,565 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:26:19,566 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_75|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_75| ULTIMATE.start_main_p4))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |v_#memory_int_75| ULTIMATE.start_main_p1) 0) (= .cse0 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |v_#memory_int_75| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_75| ULTIMATE.start_main_p2) 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (store |v_#memory_int_75| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) [2019-02-28 13:26:19,566 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-02-28 13:26:19,626 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 3 disjoint index pairs (out of 6 index pairs), introduced 2 new quantified variables, introduced 5 case distinctions, treesize of input 33 treesize of output 31 [2019-02-28 13:26:19,630 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:26:19,647 INFO L315 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-02-28 13:26:19,647 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:45, output treesize:27 [2019-02-28 13:26:19,661 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:26:19,661 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_76|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_76| ULTIMATE.start_main_p1))) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_76| ULTIMATE.start_main_p2)) (= 0 (+ (select |v_#memory_int_76| ULTIMATE.start_main_p4) 1)) (= |#memory_int| (store |v_#memory_int_76| ULTIMATE.start_main_p1 (+ .cse0 1))) (= .cse0 0) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_76| ULTIMATE.start_main_p3)))) [2019-02-28 13:26:19,661 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-02-28 13:26:19,696 INFO L273 TraceCheckUtils]: 0: Hoare triple {2505#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2513#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-28 13:26:19,698 INFO L273 TraceCheckUtils]: 1: Hoare triple {2513#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2517#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-02-28 13:26:19,700 INFO L273 TraceCheckUtils]: 2: Hoare triple {2517#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {2521#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} is VALID [2019-02-28 13:26:19,701 INFO L273 TraceCheckUtils]: 3: Hoare triple {2521#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} assume #memory_int[main_p1] >= 0; {2521#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} is VALID [2019-02-28 13:26:19,702 INFO L273 TraceCheckUtils]: 4: Hoare triple {2521#(and (exists ((ULTIMATE.start_main_p1 Int)) (= (select |#memory_int| ULTIMATE.start_main_p1) 1)) (exists ((ULTIMATE.start_main_p4 Int)) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p3 Int)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))))} assume !(#memory_int[main_p2] <= 0); {2506#false} is VALID [2019-02-28 13:26:19,702 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:26:19,703 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-28 13:26:19,743 INFO L273 TraceCheckUtils]: 4: Hoare triple {2528#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {2506#false} is VALID [2019-02-28 13:26:19,743 INFO L273 TraceCheckUtils]: 3: Hoare triple {2528#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {2528#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:26:19,745 INFO L273 TraceCheckUtils]: 2: Hoare triple {2535#(<= (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]; {2528#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:26:19,746 INFO L273 TraceCheckUtils]: 1: Hoare triple {2539#(<= (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]; {2535#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:26:19,748 INFO L273 TraceCheckUtils]: 0: Hoare triple {2505#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2539#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:26:19,748 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:26:19,767 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-28 13:26:19,767 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-02-28 13:26:19,767 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-28 13:26:19,768 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-02-28 13:26:19,768 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:26:19,768 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-02-28 13:26:19,782 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:26:19,782 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-02-28 13:26:19,782 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-02-28 13:26:19,783 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-02-28 13:26:19,783 INFO L87 Difference]: Start difference. First operand 32 states and 106 transitions. Second operand 8 states. [2019-02-28 13:26:20,601 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:26:20,601 INFO L93 Difference]: Finished difference Result 54 states and 147 transitions. [2019-02-28 13:26:20,601 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-02-28 13:26:20,601 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-02-28 13:26:20,602 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:26:20,602 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-28 13:26:20,603 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 41 transitions. [2019-02-28 13:26:20,603 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-28 13:26:20,603 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 41 transitions. [2019-02-28 13:26:20,603 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 41 transitions. [2019-02-28 13:26:20,780 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 41 edges. 41 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:26:20,781 INFO L225 Difference]: With dead ends: 54 [2019-02-28 13:26:20,781 INFO L226 Difference]: Without dead ends: 53 [2019-02-28 13:26:20,782 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 13 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-02-28 13:26:20,782 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 53 states. [2019-02-28 13:26:20,964 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 53 to 35. [2019-02-28 13:26:20,965 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:26:20,965 INFO L82 GeneralOperation]: Start isEquivalent. First operand 53 states. Second operand 35 states. [2019-02-28 13:26:20,965 INFO L74 IsIncluded]: Start isIncluded. First operand 53 states. Second operand 35 states. [2019-02-28 13:26:20,965 INFO L87 Difference]: Start difference. First operand 53 states. Second operand 35 states. [2019-02-28 13:26:20,968 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:26:20,968 INFO L93 Difference]: Finished difference Result 53 states and 145 transitions. [2019-02-28 13:26:20,968 INFO L276 IsEmpty]: Start isEmpty. Operand 53 states and 145 transitions. [2019-02-28 13:26:20,968 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:26:20,968 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:26:20,968 INFO L74 IsIncluded]: Start isIncluded. First operand 35 states. Second operand 53 states. [2019-02-28 13:26:20,969 INFO L87 Difference]: Start difference. First operand 35 states. Second operand 53 states. [2019-02-28 13:26:20,970 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:26:20,970 INFO L93 Difference]: Finished difference Result 53 states and 145 transitions. [2019-02-28 13:26:20,971 INFO L276 IsEmpty]: Start isEmpty. Operand 53 states and 145 transitions. [2019-02-28 13:26:20,971 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:26:20,971 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:26:20,971 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:26:20,971 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:26:20,971 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 35 states. [2019-02-28 13:26:20,972 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 35 states to 35 states and 122 transitions. [2019-02-28 13:26:20,973 INFO L78 Accepts]: Start accepts. Automaton has 35 states and 122 transitions. Word has length 5 [2019-02-28 13:26:20,973 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:26:20,973 INFO L480 AbstractCegarLoop]: Abstraction has 35 states and 122 transitions. [2019-02-28 13:26:20,973 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-02-28 13:26:20,973 INFO L276 IsEmpty]: Start isEmpty. Operand 35 states and 122 transitions. [2019-02-28 13:26:20,973 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-02-28 13:26:20,973 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:26:20,973 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-02-28 13:26:20,974 INFO L423 AbstractCegarLoop]: === Iteration 16 === [ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:26:20,974 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:26:20,974 INFO L82 PathProgramCache]: Analyzing trace with hash 29115622, now seen corresponding path program 1 times [2019-02-28 13:26:20,974 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:26:20,975 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:26:20,975 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:26:20,975 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:26:20,975 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:26:20,980 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:26:21,137 INFO L273 TraceCheckUtils]: 0: Hoare triple {2787#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2789#(and (or (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))) (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (or (and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))))} is VALID [2019-02-28 13:26:21,139 INFO L273 TraceCheckUtils]: 1: Hoare triple {2789#(and (or (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))) (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (or (and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4))))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2790#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1))} is VALID [2019-02-28 13:26:21,140 INFO L273 TraceCheckUtils]: 2: Hoare triple {2790#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {2791#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} is VALID [2019-02-28 13:26:21,141 INFO L273 TraceCheckUtils]: 3: Hoare triple {2791#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {2792#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:26:21,142 INFO L273 TraceCheckUtils]: 4: Hoare triple {2792#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {2788#false} is VALID [2019-02-28 13:26:21,142 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 2 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:26:21,142 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:26:21,142 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:26:21,143 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-02-28 13:26:21,143 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [16], [19] [2019-02-28 13:26:21,146 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-28 13:26:21,146 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-28 13:26:21,155 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-28 13:26:21,156 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 48 root evaluator evaluations with a maximum evaluation depth of 2. Performed 48 inverse root evaluator evaluations with a maximum inverse evaluation depth of 2. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-02-28 13:26:21,156 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:26:21,156 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-28 13:26:21,156 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:26:21,156 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 15 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 15 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:26:21,166 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:26:21,166 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-28 13:26:21,170 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:26:21,171 INFO L256 TraceCheckSpWp]: Trace formula consists of 19 conjuncts, 9 conjunts are in the unsatisfiable core [2019-02-28 13:26:21,174 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:26:21,174 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:26:21,185 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:26:21,195 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:26:21,196 INFO L442 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 20 [2019-02-28 13:26:21,208 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:26:21,209 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:26:21,210 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:26:21,210 INFO L442 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 22 [2019-02-28 13:26:21,225 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:26:21,226 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:26:21,228 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:26:21,251 INFO L442 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 3 new quantified variables, introduced 6 case distinctions, treesize of input 22 treesize of output 30 [2019-02-28 13:26:21,254 INFO L315 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-28 13:26:21,264 INFO L315 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:26:21,274 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:26:21,283 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:26:21,318 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 0 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 2 new quantified variables, introduced 0 case distinctions, treesize of input 11 treesize of output 7 [2019-02-28 13:26:21,319 INFO L315 ElimStorePlain]: Start of recursive call 8: End of recursive call: and 1 xjuncts. [2019-02-28 13:26:21,324 INFO L315 ElimStorePlain]: Start of recursive call 7: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:26:21,330 INFO L315 ElimStorePlain]: Start of recursive call 6: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:26:21,352 INFO L315 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 2 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-02-28 13:26:21,352 INFO L209 ElimStorePlain]: Needed 8 recursive calls to eliminate 3 variables, input treesize:35, output treesize:33 [2019-02-28 13:26:21,358 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:26:21,358 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_79|, ULTIMATE.start_main_p3, |v_#valid_19|]. (let ((.cse0 (store |v_#valid_19| ULTIMATE.start_main_p1 1))) (and (= (store (store (store (store |v_#memory_int_79| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (= 0 (select (store .cse0 ULTIMATE.start_main_p2 1) ULTIMATE.start_main_p3)) (= (select .cse0 ULTIMATE.start_main_p2) 0))) [2019-02-28 13:26:21,358 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-28 13:26:21,446 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 3 disjoint index pairs (out of 6 index pairs), introduced 4 new quantified variables, introduced 9 case distinctions, treesize of input 31 treesize of output 47 [2019-02-28 13:26:21,453 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 8 xjuncts. [2019-02-28 13:26:21,522 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 5 dim-0 vars, and 4 xjuncts. [2019-02-28 13:26:21,522 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:43, output treesize:126 [2019-02-28 13:29:49,877 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:29:49,877 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_80|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_80| ULTIMATE.start_main_p4))) (and (= 0 .cse0) (= (store |v_#memory_int_80| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= 0 (select |v_#memory_int_80| ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_80| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_80| ULTIMATE.start_main_p1)))) [2019-02-28 13:29:49,877 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [v_prenex_2, ULTIMATE.start_main_p4, v_prenex_3, ULTIMATE.start_main_p3, v_prenex_1]. (let ((.cse3 (select |#memory_int| ULTIMATE.start_main_p1)) (.cse4 (select |#memory_int| ULTIMATE.start_main_p2))) (let ((.cse2 (= 0 .cse4)) (.cse0 (= .cse3 0)) (.cse1 (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))) (or (and (not (= v_prenex_2 ULTIMATE.start_main_p2)) .cse0 (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) .cse1 .cse2 (not (= v_prenex_2 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_2) 0)) (and (not (= v_prenex_3 ULTIMATE.start_main_p2)) (= (+ .cse3 1) 0) .cse1 .cse2 (not (= v_prenex_3 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_3) 0)) (and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) .cse0 .cse1 (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) .cse2 (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1))) (and (not (= v_prenex_1 ULTIMATE.start_main_p2)) .cse0 .cse1 (not (= v_prenex_1 ULTIMATE.start_main_p1)) (= (select |#memory_int| v_prenex_1) 0) (= (+ .cse4 1) 0))))) [2019-02-28 13:29:57,068 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 2 disjoint index pairs (out of 3 index pairs), introduced 2 new quantified variables, introduced 3 case distinctions, treesize of input 36 treesize of output 34 [2019-02-28 13:29:57,072 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:29:57,139 INFO L442 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 2 new quantified variables, introduced 4 case distinctions, treesize of input 32 treesize of output 34 [2019-02-28 13:29:57,143 INFO L315 ElimStorePlain]: Start of recursive call 3: End of recursive call: and 1 xjuncts. [2019-02-28 13:29:57,199 INFO L442 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 2 new quantified variables, introduced 4 case distinctions, treesize of input 32 treesize of output 34 [2019-02-28 13:29:57,203 INFO L315 ElimStorePlain]: Start of recursive call 4: End of recursive call: and 1 xjuncts. [2019-02-28 13:29:57,239 INFO L315 ElimStorePlain]: Start of recursive call 1: 6 dim-0 vars, 3 dim-1 vars, End of recursive call: 6 dim-0 vars, and 3 xjuncts. [2019-02-28 13:29:57,240 INFO L209 ElimStorePlain]: Needed 4 recursive calls to eliminate 9 variables, input treesize:113, output treesize:71