java -ea -Xmx8000000000 -Xss4m -jar ./plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar -data @noDefault -ultimatedata ./data -tc ../../../trunk/examples/toolchains/AutomizerBplInline.xml -s ../../../trunk/examples/settings/ai/array-bench/reach_32bit_compound_exp_cong.epf -i ../../../trunk/examples/programs/heapseparator/speedup-poc-dd-4-limited.bpl -------------------------------------------------------------------------------- This is Ultimate 0.1.24-1377b90 [2019-01-07 14:15:56,649 INFO L170 SettingsManager]: Resetting all preferences to default values... [2019-01-07 14:15:56,651 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2019-01-07 14:15:56,669 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2019-01-07 14:15:56,669 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2019-01-07 14:15:56,671 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2019-01-07 14:15:56,672 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2019-01-07 14:15:56,675 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2019-01-07 14:15:56,676 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2019-01-07 14:15:56,678 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2019-01-07 14:15:56,679 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2019-01-07 14:15:56,679 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2019-01-07 14:15:56,682 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2019-01-07 14:15:56,685 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2019-01-07 14:15:56,688 INFO L174 SettingsManager]: Resetting ChcToBoogie preferences to default values [2019-01-07 14:15:56,688 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2019-01-07 14:15:56,695 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2019-01-07 14:15:56,697 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2019-01-07 14:15:56,703 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2019-01-07 14:15:56,706 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2019-01-07 14:15:56,707 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2019-01-07 14:15:56,708 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2019-01-07 14:15:56,712 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2019-01-07 14:15:56,712 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2019-01-07 14:15:56,712 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2019-01-07 14:15:56,713 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2019-01-07 14:15:56,715 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2019-01-07 14:15:56,715 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2019-01-07 14:15:56,716 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2019-01-07 14:15:56,717 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2019-01-07 14:15:56,717 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2019-01-07 14:15:56,718 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2019-01-07 14:15:56,718 INFO L177 SettingsManager]: ReqParser provides no preferences, ignoring... [2019-01-07 14:15:56,718 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2019-01-07 14:15:56,719 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2019-01-07 14:15:56,720 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2019-01-07 14:15:56,720 INFO L98 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/settings/ai/array-bench/reach_32bit_compound_exp_cong.epf [2019-01-07 14:15:56,733 INFO L110 SettingsManager]: Loading preferences was successful [2019-01-07 14:15:56,733 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2019-01-07 14:15:56,734 INFO L131 SettingsManager]: Preferences of Boogie Preprocessor differ from their defaults: [2019-01-07 14:15:56,734 INFO L133 SettingsManager]: * Show backtranslation warnings=false [2019-01-07 14:15:56,734 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2019-01-07 14:15:56,734 INFO L133 SettingsManager]: * User list type=DISABLED [2019-01-07 14:15:56,734 INFO L133 SettingsManager]: * Inline calls to unimplemented procedures=true [2019-01-07 14:15:56,735 INFO L131 SettingsManager]: Preferences of Abstract Interpretation differ from their defaults: [2019-01-07 14:15:56,735 INFO L133 SettingsManager]: * Explicit value domain=true [2019-01-07 14:15:56,735 INFO L133 SettingsManager]: * Abstract domain for RCFG-of-the-future=PoormanAbstractDomain [2019-01-07 14:15:56,735 INFO L133 SettingsManager]: * Octagon Domain=false [2019-01-07 14:15:56,735 INFO L133 SettingsManager]: * Abstract domain=CompoundDomain [2019-01-07 14:15:56,735 INFO L133 SettingsManager]: * Check feasibility of abstract posts with an SMT solver=true [2019-01-07 14:15:56,736 INFO L133 SettingsManager]: * Interval Domain=false [2019-01-07 14:15:56,736 INFO L131 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2019-01-07 14:15:56,736 INFO L133 SettingsManager]: * Create parallel compositions if possible=false [2019-01-07 14:15:56,737 INFO L133 SettingsManager]: * Use SBE=true [2019-01-07 14:15:56,737 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2019-01-07 14:15:56,737 INFO L133 SettingsManager]: * sizeof long=4 [2019-01-07 14:15:56,737 INFO L133 SettingsManager]: * Overapproximate operations on floating types=true [2019-01-07 14:15:56,737 INFO L133 SettingsManager]: * sizeof POINTER=4 [2019-01-07 14:15:56,738 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2019-01-07 14:15:56,738 INFO L133 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2019-01-07 14:15:56,738 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2019-01-07 14:15:56,738 INFO L133 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2019-01-07 14:15:56,738 INFO L133 SettingsManager]: * sizeof long double=12 [2019-01-07 14:15:56,738 INFO L133 SettingsManager]: * Check if freed pointer was valid=false [2019-01-07 14:15:56,739 INFO L133 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2019-01-07 14:15:56,740 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2019-01-07 14:15:56,740 INFO L133 SettingsManager]: * Size of a code block=SequenceOfStatements [2019-01-07 14:15:56,740 INFO L133 SettingsManager]: * SMT solver=External_DefaultMode [2019-01-07 14:15:56,740 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2019-01-07 14:15:56,740 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2019-01-07 14:15:56,741 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2019-01-07 14:15:56,741 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2019-01-07 14:15:56,741 INFO L133 SettingsManager]: * Trace refinement strategy=TAIPAN [2019-01-07 14:15:56,741 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2019-01-07 14:15:56,741 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2019-01-07 14:15:56,741 INFO L133 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2019-01-07 14:15:56,742 INFO L133 SettingsManager]: * Abstract interpretation Mode=USE_PREDICATES [2019-01-07 14:15:56,780 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2019-01-07 14:15:56,794 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2019-01-07 14:15:56,800 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2019-01-07 14:15:56,802 INFO L271 PluginConnector]: Initializing Boogie PL CUP Parser... [2019-01-07 14:15:56,803 INFO L276 PluginConnector]: Boogie PL CUP Parser initialized [2019-01-07 14:15:56,803 INFO L418 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/programs/heapseparator/speedup-poc-dd-4-limited.bpl [2019-01-07 14:15:56,804 INFO L111 BoogieParser]: Parsing: '/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/programs/heapseparator/speedup-poc-dd-4-limited.bpl' [2019-01-07 14:15:56,848 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2019-01-07 14:15:56,850 INFO L131 ToolchainWalker]: Walking toolchain with 4 elements. [2019-01-07 14:15:56,851 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2019-01-07 14:15:56,851 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2019-01-07 14:15:56,851 INFO L276 PluginConnector]: Boogie Procedure Inliner initialized [2019-01-07 14:15:56,869 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Procedure Inliner for "speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 07.01 02:15:56" (1/1) ... [2019-01-07 14:15:56,882 INFO L185 PluginConnector]: Executing the observer Inliner from plugin Boogie Procedure Inliner for "speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 07.01 02:15:56" (1/1) ... [2019-01-07 14:15:56,911 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2019-01-07 14:15:56,912 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2019-01-07 14:15:56,912 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2019-01-07 14:15:56,912 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2019-01-07 14:15:56,924 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 07.01 02:15:56" (1/1) ... [2019-01-07 14:15:56,925 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 07.01 02:15:56" (1/1) ... [2019-01-07 14:15:56,926 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 07.01 02:15:56" (1/1) ... [2019-01-07 14:15:56,926 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 07.01 02:15:56" (1/1) ... [2019-01-07 14:15:56,930 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 07.01 02:15:56" (1/1) ... [2019-01-07 14:15:56,934 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 07.01 02:15:56" (1/1) ... [2019-01-07 14:15:56,935 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 07.01 02:15:56" (1/1) ... [2019-01-07 14:15:56,937 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2019-01-07 14:15:56,938 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2019-01-07 14:15:56,938 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2019-01-07 14:15:56,938 INFO L276 PluginConnector]: RCFGBuilder initialized [2019-01-07 14:15:56,939 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 07.01 02:15:56" (1/1) ... No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2019-01-07 14:15:56,993 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2019-01-07 14:15:56,993 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2019-01-07 14:15:57,603 INFO L281 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2019-01-07 14:15:57,603 INFO L286 CfgBuilder]: Removed 11 assue(true) statements. [2019-01-07 14:15:57,605 INFO L202 PluginConnector]: Adding new model speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 07.01 02:15:57 BoogieIcfgContainer [2019-01-07 14:15:57,605 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2019-01-07 14:15:57,606 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2019-01-07 14:15:57,606 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2019-01-07 14:15:57,610 INFO L276 PluginConnector]: TraceAbstraction initialized [2019-01-07 14:15:57,610 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.boogie.parser AST 07.01 02:15:56" (1/2) ... [2019-01-07 14:15:57,611 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@9ceacc4 and model type speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 07.01 02:15:57, skipping insertion in model container [2019-01-07 14:15:57,611 INFO L185 PluginConnector]: Executing the observer TraceAbstractionObserver from plugin TraceAbstraction for "speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 07.01 02:15:57" (2/2) ... [2019-01-07 14:15:57,613 INFO L112 eAbstractionObserver]: Analyzing ICFG speedup-poc-dd-4-limited.bpl [2019-01-07 14:15:57,624 INFO L156 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2019-01-07 14:15:57,632 INFO L168 ceAbstractionStarter]: Appying trace abstraction to program that has 4 error locations. [2019-01-07 14:15:57,651 INFO L257 AbstractCegarLoop]: Starting to check reachability of 4 error locations. [2019-01-07 14:15:57,690 INFO L382 AbstractCegarLoop]: Interprodecural is true [2019-01-07 14:15:57,691 INFO L383 AbstractCegarLoop]: Hoare is true [2019-01-07 14:15:57,691 INFO L384 AbstractCegarLoop]: Compute interpolants for FPandBP [2019-01-07 14:15:57,691 INFO L385 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2019-01-07 14:15:57,691 INFO L386 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2019-01-07 14:15:57,691 INFO L387 AbstractCegarLoop]: Difference is false [2019-01-07 14:15:57,691 INFO L388 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2019-01-07 14:15:57,692 INFO L393 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2019-01-07 14:15:57,716 INFO L276 IsEmpty]: Start isEmpty. Operand 11 states. [2019-01-07 14:15:57,726 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 3 [2019-01-07 14:15:57,726 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:15:57,727 INFO L402 BasicCegarLoop]: trace histogram [1, 1] [2019-01-07 14:15:57,730 INFO L423 AbstractCegarLoop]: === Iteration 1 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:15:57,736 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:15:57,736 INFO L82 PathProgramCache]: Analyzing trace with hash 980, now seen corresponding path program 1 times [2019-01-07 14:15:57,739 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:15:57,787 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:15:57,787 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:15:57,787 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:15:57,787 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:15:57,842 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:15:57,967 INFO L273 TraceCheckUtils]: 0: Hoare triple {14#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {16#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-07 14:15:57,977 INFO L273 TraceCheckUtils]: 1: Hoare triple {16#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {15#false} is VALID [2019-01-07 14:15:57,979 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:15:57,981 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2019-01-07 14:15:57,981 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [1] imperfect sequences [] total 1 [2019-01-07 14:15:57,981 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-07 14:15:57,985 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 2 [2019-01-07 14:15:57,987 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:15:57,990 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states. [2019-01-07 14:15:58,016 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 2 edges. 2 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:15:58,017 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2019-01-07 14:15:58,027 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2019-01-07 14:15:58,027 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-01-07 14:15:58,030 INFO L87 Difference]: Start difference. First operand 11 states. Second operand 3 states. [2019-01-07 14:15:58,363 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:15:58,363 INFO L93 Difference]: Finished difference Result 21 states and 27 transitions. [2019-01-07 14:15:58,363 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-07 14:15:58,364 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 2 [2019-01-07 14:15:58,364 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:15:58,365 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-01-07 14:15:58,368 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 27 transitions. [2019-01-07 14:15:58,369 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-01-07 14:15:58,371 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 27 transitions. [2019-01-07 14:15:58,371 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 27 transitions. [2019-01-07 14:15:58,580 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 27 edges. 27 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:15:58,593 INFO L225 Difference]: With dead ends: 21 [2019-01-07 14:15:58,593 INFO L226 Difference]: Without dead ends: 16 [2019-01-07 14:15:58,596 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 1 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 1 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-01-07 14:15:58,617 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 16 states. [2019-01-07 14:15:58,668 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 16 to 10. [2019-01-07 14:15:58,669 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:15:58,669 INFO L82 GeneralOperation]: Start isEquivalent. First operand 16 states. Second operand 10 states. [2019-01-07 14:15:58,670 INFO L74 IsIncluded]: Start isIncluded. First operand 16 states. Second operand 10 states. [2019-01-07 14:15:58,670 INFO L87 Difference]: Start difference. First operand 16 states. Second operand 10 states. [2019-01-07 14:15:58,673 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:15:58,674 INFO L93 Difference]: Finished difference Result 16 states and 22 transitions. [2019-01-07 14:15:58,674 INFO L276 IsEmpty]: Start isEmpty. Operand 16 states and 22 transitions. [2019-01-07 14:15:58,674 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:15:58,675 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:15:58,675 INFO L74 IsIncluded]: Start isIncluded. First operand 10 states. Second operand 16 states. [2019-01-07 14:15:58,675 INFO L87 Difference]: Start difference. First operand 10 states. Second operand 16 states. [2019-01-07 14:15:58,678 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:15:58,678 INFO L93 Difference]: Finished difference Result 16 states and 22 transitions. [2019-01-07 14:15:58,678 INFO L276 IsEmpty]: Start isEmpty. Operand 16 states and 22 transitions. [2019-01-07 14:15:58,678 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:15:58,679 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:15:58,679 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:15:58,679 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:15:58,679 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 14:15:58,681 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 17 transitions. [2019-01-07 14:15:58,683 INFO L78 Accepts]: Start accepts. Automaton has 10 states and 17 transitions. Word has length 2 [2019-01-07 14:15:58,683 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:15:58,683 INFO L480 AbstractCegarLoop]: Abstraction has 10 states and 17 transitions. [2019-01-07 14:15:58,683 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2019-01-07 14:15:58,684 INFO L276 IsEmpty]: Start isEmpty. Operand 10 states and 17 transitions. [2019-01-07 14:15:58,684 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-01-07 14:15:58,684 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:15:58,684 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-01-07 14:15:58,685 INFO L423 AbstractCegarLoop]: === Iteration 2 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:15:58,685 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:15:58,685 INFO L82 PathProgramCache]: Analyzing trace with hash 30306, now seen corresponding path program 1 times [2019-01-07 14:15:58,685 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:15:58,686 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:15:58,687 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:15:58,687 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:15:58,687 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:15:58,703 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:15:58,977 INFO L273 TraceCheckUtils]: 0: Hoare triple {86#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {88#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 14:15:58,979 INFO L273 TraceCheckUtils]: 1: Hoare triple {88#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {89#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-07 14:15:58,980 INFO L273 TraceCheckUtils]: 2: Hoare triple {89#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {87#false} is VALID [2019-01-07 14:15:58,980 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:15:58,981 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:15:58,981 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:15:58,982 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 4 with the following transitions: [2019-01-07 14:15:58,985 INFO L207 CegarAbsIntRunner]: [0], [16], [19] [2019-01-07 14:15:59,024 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:15:59,024 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:15:59,137 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:15:59,138 INFO L272 AbstractInterpreter]: Visited 3 different actions 3 times. Never merged. Never widened. Performed 50 root evaluator evaluations with a maximum evaluation depth of 3. Performed 50 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-07 14:15:59,143 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:15:59,144 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:15:59,145 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:15:59,145 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:15:59,154 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:15:59,155 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:15:59,181 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:15:59,203 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:15:59,207 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:15:59,367 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:15:59,383 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:15:59,386 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:15:59,420 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:15:59,441 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:15:59,443 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:15:59,559 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:15:59,560 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:15:59,561 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:15:59,564 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:15:59,573 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:15:59,664 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:15:59,713 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:15:59,723 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:15:59,859 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:15:59,859 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-01-07 14:15:59,876 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:15:59,877 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_22|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_22| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:15:59,880 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:16:00,163 WARN L181 SmtUtils]: Spent 120.00 ms on a formula simplification that was a NOOP. DAG size: 20 [2019-01-07 14:16:00,242 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:00,243 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:00,245 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:00,246 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:00,270 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:00,273 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:00,275 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:00,278 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 14:16:00,283 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:00,357 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:00,357 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-07 14:16:02,362 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:02,362 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_23|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_23| ULTIMATE.start_main_p4))) (and (= .cse0 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_23| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_23| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_23| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_23| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:16:02,363 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:16:02,408 INFO L273 TraceCheckUtils]: 0: Hoare triple {86#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {93#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:16:02,411 INFO L273 TraceCheckUtils]: 1: Hoare triple {93#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {97#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-01-07 14:16:02,412 INFO L273 TraceCheckUtils]: 2: Hoare triple {97#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} assume !(#memory_int[main_p1] >= 0); {87#false} is VALID [2019-01-07 14:16:02,413 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:02,413 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:16:02,445 INFO L273 TraceCheckUtils]: 2: Hoare triple {101#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {87#false} is VALID [2019-01-07 14:16:02,447 INFO L273 TraceCheckUtils]: 1: Hoare triple {105#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {101#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:16:02,449 INFO L273 TraceCheckUtils]: 0: Hoare triple {86#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {105#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:16:02,449 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:02,471 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:16:02,471 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-01-07 14:16:02,471 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:16:02,472 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-01-07 14:16:02,472 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:16:02,472 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-01-07 14:16:02,559 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 6 edges. 6 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:02,559 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-01-07 14:16:02,561 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-01-07 14:16:02,561 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-07 14:16:02,562 INFO L87 Difference]: Start difference. First operand 10 states and 17 transitions. Second operand 6 states. [2019-01-07 14:16:03,116 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:03,116 INFO L93 Difference]: Finished difference Result 31 states and 44 transitions. [2019-01-07 14:16:03,116 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-07 14:16:03,116 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-01-07 14:16:03,116 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:16:03,117 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-07 14:16:03,119 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 44 transitions. [2019-01-07 14:16:03,119 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-07 14:16:03,121 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 44 transitions. [2019-01-07 14:16:03,121 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 44 transitions. [2019-01-07 14:16:03,247 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 44 edges. 44 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:03,250 INFO L225 Difference]: With dead ends: 31 [2019-01-07 14:16:03,250 INFO L226 Difference]: Without dead ends: 28 [2019-01-07 14:16:03,251 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 7 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=31, Invalid=41, Unknown=0, NotChecked=0, Total=72 [2019-01-07 14:16:03,252 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 28 states. [2019-01-07 14:16:03,265 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 28 to 13. [2019-01-07 14:16:03,265 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:16:03,265 INFO L82 GeneralOperation]: Start isEquivalent. First operand 28 states. Second operand 13 states. [2019-01-07 14:16:03,266 INFO L74 IsIncluded]: Start isIncluded. First operand 28 states. Second operand 13 states. [2019-01-07 14:16:03,266 INFO L87 Difference]: Start difference. First operand 28 states. Second operand 13 states. [2019-01-07 14:16:03,268 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:03,269 INFO L93 Difference]: Finished difference Result 28 states and 40 transitions. [2019-01-07 14:16:03,269 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 40 transitions. [2019-01-07 14:16:03,270 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:03,270 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:03,270 INFO L74 IsIncluded]: Start isIncluded. First operand 13 states. Second operand 28 states. [2019-01-07 14:16:03,271 INFO L87 Difference]: Start difference. First operand 13 states. Second operand 28 states. [2019-01-07 14:16:03,273 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:03,273 INFO L93 Difference]: Finished difference Result 28 states and 40 transitions. [2019-01-07 14:16:03,273 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 40 transitions. [2019-01-07 14:16:03,274 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:03,274 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:03,274 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:16:03,274 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:16:03,274 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2019-01-07 14:16:03,276 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 25 transitions. [2019-01-07 14:16:03,276 INFO L78 Accepts]: Start accepts. Automaton has 13 states and 25 transitions. Word has length 3 [2019-01-07 14:16:03,276 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:16:03,276 INFO L480 AbstractCegarLoop]: Abstraction has 13 states and 25 transitions. [2019-01-07 14:16:03,277 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-01-07 14:16:03,277 INFO L276 IsEmpty]: Start isEmpty. Operand 13 states and 25 transitions. [2019-01-07 14:16:03,277 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-01-07 14:16:03,277 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:16:03,277 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-01-07 14:16:03,278 INFO L423 AbstractCegarLoop]: === Iteration 3 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:16:03,278 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:03,278 INFO L82 PathProgramCache]: Analyzing trace with hash 30432, now seen corresponding path program 1 times [2019-01-07 14:16:03,278 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:16:03,279 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:03,280 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:03,280 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:03,280 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:16:03,289 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:03,334 INFO L273 TraceCheckUtils]: 0: Hoare triple {217#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {219#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:03,335 INFO L273 TraceCheckUtils]: 1: Hoare triple {219#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {219#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:03,336 INFO L273 TraceCheckUtils]: 2: Hoare triple {219#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {218#false} is VALID [2019-01-07 14:16:03,336 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:03,337 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2019-01-07 14:16:03,337 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [1] imperfect sequences [] total 1 [2019-01-07 14:16:03,337 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-07 14:16:03,338 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 3 [2019-01-07 14:16:03,338 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:16:03,338 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states. [2019-01-07 14:16:03,370 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 3 edges. 3 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:03,370 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2019-01-07 14:16:03,370 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2019-01-07 14:16:03,371 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-01-07 14:16:03,371 INFO L87 Difference]: Start difference. First operand 13 states and 25 transitions. Second operand 3 states. [2019-01-07 14:16:03,445 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:03,445 INFO L93 Difference]: Finished difference Result 15 states and 25 transitions. [2019-01-07 14:16:03,446 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-07 14:16:03,446 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 3 [2019-01-07 14:16:03,446 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:16:03,446 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-01-07 14:16:03,447 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 20 transitions. [2019-01-07 14:16:03,447 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-01-07 14:16:03,447 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 20 transitions. [2019-01-07 14:16:03,448 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 20 transitions. [2019-01-07 14:16:03,470 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 20 edges. 20 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:03,472 INFO L225 Difference]: With dead ends: 15 [2019-01-07 14:16:03,472 INFO L226 Difference]: Without dead ends: 14 [2019-01-07 14:16:03,473 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 1 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 1 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-01-07 14:16:03,473 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 14 states. [2019-01-07 14:16:03,492 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 14 to 13. [2019-01-07 14:16:03,493 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:16:03,493 INFO L82 GeneralOperation]: Start isEquivalent. First operand 14 states. Second operand 13 states. [2019-01-07 14:16:03,493 INFO L74 IsIncluded]: Start isIncluded. First operand 14 states. Second operand 13 states. [2019-01-07 14:16:03,493 INFO L87 Difference]: Start difference. First operand 14 states. Second operand 13 states. [2019-01-07 14:16:03,495 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:03,496 INFO L93 Difference]: Finished difference Result 14 states and 24 transitions. [2019-01-07 14:16:03,496 INFO L276 IsEmpty]: Start isEmpty. Operand 14 states and 24 transitions. [2019-01-07 14:16:03,496 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:03,496 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:03,496 INFO L74 IsIncluded]: Start isIncluded. First operand 13 states. Second operand 14 states. [2019-01-07 14:16:03,497 INFO L87 Difference]: Start difference. First operand 13 states. Second operand 14 states. [2019-01-07 14:16:03,498 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:03,498 INFO L93 Difference]: Finished difference Result 14 states and 24 transitions. [2019-01-07 14:16:03,498 INFO L276 IsEmpty]: Start isEmpty. Operand 14 states and 24 transitions. [2019-01-07 14:16:03,499 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:03,499 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:03,499 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:16:03,499 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:16:03,499 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2019-01-07 14:16:03,501 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 24 transitions. [2019-01-07 14:16:03,501 INFO L78 Accepts]: Start accepts. Automaton has 13 states and 24 transitions. Word has length 3 [2019-01-07 14:16:03,501 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:16:03,501 INFO L480 AbstractCegarLoop]: Abstraction has 13 states and 24 transitions. [2019-01-07 14:16:03,501 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2019-01-07 14:16:03,501 INFO L276 IsEmpty]: Start isEmpty. Operand 13 states and 24 transitions. [2019-01-07 14:16:03,502 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-01-07 14:16:03,502 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:16:03,502 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-01-07 14:16:03,502 INFO L423 AbstractCegarLoop]: === Iteration 4 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:16:03,502 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:03,503 INFO L82 PathProgramCache]: Analyzing trace with hash 29996, now seen corresponding path program 1 times [2019-01-07 14:16:03,503 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:16:03,504 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:03,504 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:03,504 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:03,504 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:16:03,513 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:03,566 INFO L273 TraceCheckUtils]: 0: Hoare triple {284#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {286#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-07 14:16:03,566 INFO L273 TraceCheckUtils]: 1: Hoare triple {286#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {287#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:16:03,567 INFO L273 TraceCheckUtils]: 2: Hoare triple {287#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {285#false} is VALID [2019-01-07 14:16:03,567 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:03,567 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:03,568 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:16:03,568 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 4 with the following transitions: [2019-01-07 14:16:03,568 INFO L207 CegarAbsIntRunner]: [0], [6], [19] [2019-01-07 14:16:03,571 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:16:03,571 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:16:03,590 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:16:03,590 INFO L272 AbstractInterpreter]: Visited 3 different actions 3 times. Never merged. Never widened. Performed 50 root evaluator evaluations with a maximum evaluation depth of 3. Performed 50 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-07 14:16:03,590 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:03,590 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:16:03,590 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:03,590 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 3 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 3 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:16:03,600 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:03,600 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:16:03,609 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:03,617 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:03,617 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:16:03,665 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:16:03,686 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:03,688 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:16:03,717 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:03,719 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:03,720 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:16:03,755 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:03,756 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:03,757 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:03,760 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:16:03,766 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:03,791 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:03,802 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:03,812 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:03,834 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:03,835 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 4 variables, input treesize:25, output treesize:30 [2019-01-07 14:16:03,844 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:03,845 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_25|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_25| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:16:03,845 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:16:03,903 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:03,905 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:03,906 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:03,908 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:03,909 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:03,910 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:03,912 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:03,914 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 14:16:03,921 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:03,953 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:03,953 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-07 14:16:03,960 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:03,961 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_26|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_26| ULTIMATE.start_main_p1))) (and (= |#memory_int| (store |v_#memory_int_26| ULTIMATE.start_main_p1 (+ .cse0 1))) (= 0 .cse0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_26| ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_26| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |v_#memory_int_26| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:16:03,961 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:16:03,999 INFO L273 TraceCheckUtils]: 0: Hoare triple {284#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {291#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-07 14:16:04,001 INFO L273 TraceCheckUtils]: 1: Hoare triple {291#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {295#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-07 14:16:04,002 INFO L273 TraceCheckUtils]: 2: Hoare triple {295#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {285#false} is VALID [2019-01-07 14:16:04,003 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:04,003 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:16:04,024 INFO L273 TraceCheckUtils]: 2: Hoare triple {299#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {285#false} is VALID [2019-01-07 14:16:04,030 INFO L273 TraceCheckUtils]: 1: Hoare triple {303#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {299#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:16:04,031 INFO L273 TraceCheckUtils]: 0: Hoare triple {284#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {303#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} is VALID [2019-01-07 14:16:04,032 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:04,051 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-01-07 14:16:04,051 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [2, 2] total 6 [2019-01-07 14:16:04,051 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-07 14:16:04,052 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 3 [2019-01-07 14:16:04,052 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:16:04,052 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-01-07 14:16:04,058 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 3 edges. 3 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:04,058 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-01-07 14:16:04,058 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-01-07 14:16:04,058 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-07 14:16:04,059 INFO L87 Difference]: Start difference. First operand 13 states and 24 transitions. Second operand 4 states. [2019-01-07 14:16:04,157 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:04,157 INFO L93 Difference]: Finished difference Result 18 states and 41 transitions. [2019-01-07 14:16:04,157 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2019-01-07 14:16:04,158 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 3 [2019-01-07 14:16:04,158 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:16:04,158 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-07 14:16:04,159 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 24 transitions. [2019-01-07 14:16:04,159 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-07 14:16:04,160 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 24 transitions. [2019-01-07 14:16:04,160 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 24 transitions. [2019-01-07 14:16:04,214 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 24 edges. 24 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:04,215 INFO L225 Difference]: With dead ends: 18 [2019-01-07 14:16:04,216 INFO L226 Difference]: Without dead ends: 17 [2019-01-07 14:16:04,216 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 6 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 6 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 9 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-07 14:16:04,217 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 17 states. [2019-01-07 14:16:04,324 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 17 to 16. [2019-01-07 14:16:04,324 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:16:04,325 INFO L82 GeneralOperation]: Start isEquivalent. First operand 17 states. Second operand 16 states. [2019-01-07 14:16:04,325 INFO L74 IsIncluded]: Start isIncluded. First operand 17 states. Second operand 16 states. [2019-01-07 14:16:04,325 INFO L87 Difference]: Start difference. First operand 17 states. Second operand 16 states. [2019-01-07 14:16:04,328 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:04,328 INFO L93 Difference]: Finished difference Result 17 states and 40 transitions. [2019-01-07 14:16:04,328 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 40 transitions. [2019-01-07 14:16:04,328 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:04,329 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:04,329 INFO L74 IsIncluded]: Start isIncluded. First operand 16 states. Second operand 17 states. [2019-01-07 14:16:04,329 INFO L87 Difference]: Start difference. First operand 16 states. Second operand 17 states. [2019-01-07 14:16:04,331 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:04,331 INFO L93 Difference]: Finished difference Result 17 states and 40 transitions. [2019-01-07 14:16:04,331 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 40 transitions. [2019-01-07 14:16:04,332 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:04,332 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:04,332 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:16:04,332 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:16:04,333 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 16 states. [2019-01-07 14:16:04,334 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 40 transitions. [2019-01-07 14:16:04,334 INFO L78 Accepts]: Start accepts. Automaton has 16 states and 40 transitions. Word has length 3 [2019-01-07 14:16:04,335 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:16:04,335 INFO L480 AbstractCegarLoop]: Abstraction has 16 states and 40 transitions. [2019-01-07 14:16:04,335 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-01-07 14:16:04,335 INFO L276 IsEmpty]: Start isEmpty. Operand 16 states and 40 transitions. [2019-01-07 14:16:04,335 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-01-07 14:16:04,336 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:16:04,336 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-01-07 14:16:04,336 INFO L423 AbstractCegarLoop]: === Iteration 5 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:16:04,336 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:04,337 INFO L82 PathProgramCache]: Analyzing trace with hash 30120, now seen corresponding path program 1 times [2019-01-07 14:16:04,337 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:16:04,338 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:04,338 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:04,338 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:04,338 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:16:04,347 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:04,453 INFO L273 TraceCheckUtils]: 0: Hoare triple {386#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {388#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-07 14:16:04,455 INFO L273 TraceCheckUtils]: 1: Hoare triple {388#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {389#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-07 14:16:04,456 INFO L273 TraceCheckUtils]: 2: Hoare triple {389#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {387#false} is VALID [2019-01-07 14:16:04,456 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:04,457 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:04,457 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:16:04,457 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 4 with the following transitions: [2019-01-07 14:16:04,458 INFO L207 CegarAbsIntRunner]: [0], [10], [19] [2019-01-07 14:16:04,459 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:16:04,459 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:16:04,480 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:16:04,480 INFO L272 AbstractInterpreter]: Visited 3 different actions 3 times. Never merged. Never widened. Performed 50 root evaluator evaluations with a maximum evaluation depth of 3. Performed 50 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-07 14:16:04,480 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:04,481 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:16:04,481 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:04,481 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:16:04,489 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:04,489 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:16:04,511 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:04,528 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:04,528 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:16:04,588 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:16:04,596 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:04,598 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:16:04,616 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:04,618 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:04,619 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:16:04,641 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:04,643 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:04,644 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:04,646 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:16:04,650 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:04,671 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:04,682 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:04,693 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:04,715 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:04,715 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-01-07 14:16:04,727 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:04,727 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_28|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_28| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:16:04,727 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:16:04,810 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:04,811 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:04,813 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:04,815 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:04,816 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:04,817 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:04,819 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:04,820 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 14:16:04,824 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:04,904 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:04,905 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-07 14:16:05,090 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:05,091 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_29|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_29| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_29| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_29| ULTIMATE.start_main_p4) 0) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (store |v_#memory_int_29| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_29| ULTIMATE.start_main_p3) 0))) [2019-01-07 14:16:05,091 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:16:05,138 INFO L273 TraceCheckUtils]: 0: Hoare triple {386#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {393#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:16:05,140 INFO L273 TraceCheckUtils]: 1: Hoare triple {393#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {397#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-07 14:16:05,147 INFO L273 TraceCheckUtils]: 2: Hoare triple {397#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {387#false} is VALID [2019-01-07 14:16:05,147 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:05,147 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:16:05,200 INFO L273 TraceCheckUtils]: 2: Hoare triple {401#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {387#false} is VALID [2019-01-07 14:16:05,202 INFO L273 TraceCheckUtils]: 1: Hoare triple {405#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {401#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:16:05,203 INFO L273 TraceCheckUtils]: 0: Hoare triple {386#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {405#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:16:05,203 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:05,223 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:16:05,223 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-01-07 14:16:05,223 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:16:05,224 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-01-07 14:16:05,224 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:16:05,224 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-01-07 14:16:05,240 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 6 edges. 6 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:05,240 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-01-07 14:16:05,240 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-01-07 14:16:05,240 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-07 14:16:05,241 INFO L87 Difference]: Start difference. First operand 16 states and 40 transitions. Second operand 6 states. [2019-01-07 14:16:05,809 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:05,809 INFO L93 Difference]: Finished difference Result 32 states and 62 transitions. [2019-01-07 14:16:05,809 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-07 14:16:05,809 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-01-07 14:16:05,810 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:16:05,810 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-07 14:16:05,811 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 41 transitions. [2019-01-07 14:16:05,811 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-07 14:16:05,812 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 41 transitions. [2019-01-07 14:16:05,812 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 41 transitions. [2019-01-07 14:16:05,927 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 41 edges. 41 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:05,929 INFO L225 Difference]: With dead ends: 32 [2019-01-07 14:16:05,929 INFO L226 Difference]: Without dead ends: 31 [2019-01-07 14:16:05,930 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 7 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=31, Invalid=41, Unknown=0, NotChecked=0, Total=72 [2019-01-07 14:16:05,931 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 31 states. [2019-01-07 14:16:05,976 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 31 to 18. [2019-01-07 14:16:05,977 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:16:05,977 INFO L82 GeneralOperation]: Start isEquivalent. First operand 31 states. Second operand 18 states. [2019-01-07 14:16:05,978 INFO L74 IsIncluded]: Start isIncluded. First operand 31 states. Second operand 18 states. [2019-01-07 14:16:05,978 INFO L87 Difference]: Start difference. First operand 31 states. Second operand 18 states. [2019-01-07 14:16:05,981 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:05,981 INFO L93 Difference]: Finished difference Result 31 states and 60 transitions. [2019-01-07 14:16:05,981 INFO L276 IsEmpty]: Start isEmpty. Operand 31 states and 60 transitions. [2019-01-07 14:16:05,982 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:05,982 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:05,982 INFO L74 IsIncluded]: Start isIncluded. First operand 18 states. Second operand 31 states. [2019-01-07 14:16:05,983 INFO L87 Difference]: Start difference. First operand 18 states. Second operand 31 states. [2019-01-07 14:16:05,984 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:05,985 INFO L93 Difference]: Finished difference Result 31 states and 60 transitions. [2019-01-07 14:16:05,985 INFO L276 IsEmpty]: Start isEmpty. Operand 31 states and 60 transitions. [2019-01-07 14:16:05,985 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:05,986 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:05,986 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:16:05,986 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:16:05,986 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 18 states. [2019-01-07 14:16:05,988 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 18 states to 18 states and 50 transitions. [2019-01-07 14:16:05,988 INFO L78 Accepts]: Start accepts. Automaton has 18 states and 50 transitions. Word has length 3 [2019-01-07 14:16:05,988 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:16:05,988 INFO L480 AbstractCegarLoop]: Abstraction has 18 states and 50 transitions. [2019-01-07 14:16:05,989 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-01-07 14:16:05,989 INFO L276 IsEmpty]: Start isEmpty. Operand 18 states and 50 transitions. [2019-01-07 14:16:05,989 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-07 14:16:05,989 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:16:05,989 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-07 14:16:05,990 INFO L423 AbstractCegarLoop]: === Iteration 6 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:16:05,990 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:05,990 INFO L82 PathProgramCache]: Analyzing trace with hash 939538, now seen corresponding path program 1 times [2019-01-07 14:16:05,990 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:16:05,993 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:05,993 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:05,993 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:05,993 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:16:06,002 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:06,098 INFO L273 TraceCheckUtils]: 0: Hoare triple {538#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {540#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 14:16:06,100 INFO L273 TraceCheckUtils]: 1: Hoare triple {540#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {541#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:06,101 INFO L273 TraceCheckUtils]: 2: Hoare triple {541#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {541#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:06,101 INFO L273 TraceCheckUtils]: 3: Hoare triple {541#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {539#false} is VALID [2019-01-07 14:16:06,102 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:06,102 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:06,102 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:16:06,102 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-07 14:16:06,103 INFO L207 CegarAbsIntRunner]: [0], [16], [20], [21] [2019-01-07 14:16:06,106 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:16:06,106 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:16:06,131 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:16:06,131 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 52 root evaluator evaluations with a maximum evaluation depth of 3. Performed 52 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-07 14:16:06,131 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:06,132 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:16:06,132 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:06,132 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 5 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 5 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:16:06,141 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:06,141 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:16:06,147 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:06,155 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:06,155 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:16:06,177 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:16:06,196 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-07 14:16:06,212 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:06,216 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 26 [2019-01-07 14:16:06,320 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:06,323 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:06,324 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 33 [2019-01-07 14:16:06,327 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:06,342 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:06,355 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:06,364 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:06,381 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:06,382 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:22, output treesize:27 [2019-01-07 14:16:06,387 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:06,388 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_31|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_31| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:16:06,388 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:16:06,464 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:06,465 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:06,469 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:06,470 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:06,471 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 28 [2019-01-07 14:16:06,474 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:06,498 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:06,499 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:32, output treesize:22 [2019-01-07 14:16:06,506 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:06,506 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_32|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_32| ULTIMATE.start_main_p4))) (and (= (store |v_#memory_int_32| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_32| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_32| ULTIMATE.start_main_p3) 0) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-07 14:16:06,507 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:16:06,686 INFO L273 TraceCheckUtils]: 0: Hoare triple {538#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {545#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:16:06,688 INFO L273 TraceCheckUtils]: 1: Hoare triple {545#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {549#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-07 14:16:06,689 INFO L273 TraceCheckUtils]: 2: Hoare triple {549#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume #memory_int[main_p1] >= 0; {549#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-07 14:16:06,690 INFO L273 TraceCheckUtils]: 3: Hoare triple {549#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume !(#memory_int[main_p2] <= 0); {539#false} is VALID [2019-01-07 14:16:06,690 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:06,690 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:16:06,760 INFO L273 TraceCheckUtils]: 3: Hoare triple {556#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {539#false} is VALID [2019-01-07 14:16:06,760 INFO L273 TraceCheckUtils]: 2: Hoare triple {556#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {556#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:06,761 INFO L273 TraceCheckUtils]: 1: Hoare triple {563#(<= (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {556#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:06,762 INFO L273 TraceCheckUtils]: 0: Hoare triple {538#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {563#(<= (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:06,763 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:06,782 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-01-07 14:16:06,782 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [2, 2] total 6 [2019-01-07 14:16:06,782 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-07 14:16:06,783 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 4 [2019-01-07 14:16:06,783 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:16:06,783 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-01-07 14:16:06,789 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 4 edges. 4 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:06,789 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-01-07 14:16:06,790 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-01-07 14:16:06,790 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=26, Invalid=30, Unknown=0, NotChecked=0, Total=56 [2019-01-07 14:16:06,790 INFO L87 Difference]: Start difference. First operand 18 states and 50 transitions. Second operand 4 states. [2019-01-07 14:16:06,907 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:06,908 INFO L93 Difference]: Finished difference Result 22 states and 58 transitions. [2019-01-07 14:16:06,908 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-07 14:16:06,908 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 4 [2019-01-07 14:16:06,908 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:16:06,909 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-07 14:16:06,910 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 20 transitions. [2019-01-07 14:16:06,910 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-07 14:16:06,910 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 20 transitions. [2019-01-07 14:16:06,911 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 20 transitions. [2019-01-07 14:16:06,938 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 20 edges. 20 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:06,939 INFO L225 Difference]: With dead ends: 22 [2019-01-07 14:16:06,940 INFO L226 Difference]: Without dead ends: 21 [2019-01-07 14:16:06,940 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 8 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 6 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=26, Invalid=30, Unknown=0, NotChecked=0, Total=56 [2019-01-07 14:16:06,941 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 21 states. [2019-01-07 14:16:06,989 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 21 to 20. [2019-01-07 14:16:06,989 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:16:06,989 INFO L82 GeneralOperation]: Start isEquivalent. First operand 21 states. Second operand 20 states. [2019-01-07 14:16:06,989 INFO L74 IsIncluded]: Start isIncluded. First operand 21 states. Second operand 20 states. [2019-01-07 14:16:06,990 INFO L87 Difference]: Start difference. First operand 21 states. Second operand 20 states. [2019-01-07 14:16:06,991 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:06,992 INFO L93 Difference]: Finished difference Result 21 states and 57 transitions. [2019-01-07 14:16:06,992 INFO L276 IsEmpty]: Start isEmpty. Operand 21 states and 57 transitions. [2019-01-07 14:16:06,992 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:06,993 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:06,993 INFO L74 IsIncluded]: Start isIncluded. First operand 20 states. Second operand 21 states. [2019-01-07 14:16:06,993 INFO L87 Difference]: Start difference. First operand 20 states. Second operand 21 states. [2019-01-07 14:16:06,995 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:06,995 INFO L93 Difference]: Finished difference Result 21 states and 57 transitions. [2019-01-07 14:16:06,995 INFO L276 IsEmpty]: Start isEmpty. Operand 21 states and 57 transitions. [2019-01-07 14:16:06,996 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:06,996 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:06,996 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:16:06,996 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:16:06,996 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 20 states. [2019-01-07 14:16:06,998 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 20 states to 20 states and 57 transitions. [2019-01-07 14:16:06,998 INFO L78 Accepts]: Start accepts. Automaton has 20 states and 57 transitions. Word has length 4 [2019-01-07 14:16:06,998 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:16:06,998 INFO L480 AbstractCegarLoop]: Abstraction has 20 states and 57 transitions. [2019-01-07 14:16:06,998 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-01-07 14:16:06,999 INFO L276 IsEmpty]: Start isEmpty. Operand 20 states and 57 transitions. [2019-01-07 14:16:06,999 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-07 14:16:06,999 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:16:06,999 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-07 14:16:07,000 INFO L423 AbstractCegarLoop]: === Iteration 7 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:16:07,000 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:07,000 INFO L82 PathProgramCache]: Analyzing trace with hash 939226, now seen corresponding path program 1 times [2019-01-07 14:16:07,000 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:16:07,001 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:07,001 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:07,002 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:07,002 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:16:07,013 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:07,176 INFO L273 TraceCheckUtils]: 0: Hoare triple {668#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {670#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 14:16:07,177 INFO L273 TraceCheckUtils]: 1: Hoare triple {670#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {671#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-07 14:16:07,178 INFO L273 TraceCheckUtils]: 2: Hoare triple {671#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {672#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-07 14:16:07,179 INFO L273 TraceCheckUtils]: 3: Hoare triple {672#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {669#false} is VALID [2019-01-07 14:16:07,179 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:07,179 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:07,179 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:16:07,180 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-07 14:16:07,180 INFO L207 CegarAbsIntRunner]: [0], [10], [16], [19] [2019-01-07 14:16:07,182 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:16:07,182 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:16:07,208 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:16:07,208 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 52 root evaluator evaluations with a maximum evaluation depth of 3. Performed 52 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-07 14:16:07,209 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:07,209 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:16:07,209 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:07,209 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 6 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 6 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:16:07,218 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:07,218 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:16:07,223 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:07,247 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:07,247 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:16:07,413 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:16:07,422 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:07,423 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:16:07,438 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:07,439 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:07,441 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:16:07,459 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:07,461 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:07,462 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:07,464 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:16:07,468 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:07,488 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:07,501 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:07,511 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:07,530 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:07,531 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 14:16:07,539 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:07,539 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_34|, ULTIMATE.start_main_p3]. (and (= (store (store (store (store |v_#memory_int_34| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:16:07,539 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:16:07,625 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:07,626 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:07,628 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:07,629 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:07,630 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:07,632 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:07,633 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:07,635 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 14:16:07,638 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:07,751 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:07,751 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 14:16:08,693 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:08,694 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_35|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_35| ULTIMATE.start_main_p4))) (and (= 0 (select |v_#memory_int_35| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_35| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= 0 (select |v_#memory_int_35| ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_35| ULTIMATE.start_main_p3)) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:16:08,694 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:16:08,777 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:08,778 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:08,780 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:08,781 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:08,782 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:08,784 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:08,785 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:08,786 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 14:16:08,788 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 60 [2019-01-07 14:16:08,805 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:08,841 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:08,841 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:30 [2019-01-07 14:16:10,869 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:10,869 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_36|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_36| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (select |v_#memory_int_36| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_36| ULTIMATE.start_main_p1) 0) (= 0 (+ (select |v_#memory_int_36| ULTIMATE.start_main_p4) 1)) (= (store |v_#memory_int_36| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:16:10,869 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:16:10,910 INFO L273 TraceCheckUtils]: 0: Hoare triple {668#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {676#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:16:10,925 INFO L273 TraceCheckUtils]: 1: Hoare triple {676#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {680#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-07 14:16:10,928 INFO L273 TraceCheckUtils]: 2: Hoare triple {680#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {684#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-07 14:16:10,929 INFO L273 TraceCheckUtils]: 3: Hoare triple {684#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {669#false} is VALID [2019-01-07 14:16:10,930 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:10,930 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:16:10,998 INFO L273 TraceCheckUtils]: 3: Hoare triple {688#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {669#false} is VALID [2019-01-07 14:16:10,999 INFO L273 TraceCheckUtils]: 2: Hoare triple {692#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {688#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:16:11,001 INFO L273 TraceCheckUtils]: 1: Hoare triple {696#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {692#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:16:11,003 INFO L273 TraceCheckUtils]: 0: Hoare triple {668#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {696#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:16:11,004 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:11,024 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:16:11,024 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 14:16:11,025 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:16:11,025 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-07 14:16:11,025 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:16:11,025 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 14:16:11,044 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:11,044 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 14:16:11,044 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 14:16:11,044 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=43, Invalid=67, Unknown=0, NotChecked=0, Total=110 [2019-01-07 14:16:11,045 INFO L87 Difference]: Start difference. First operand 20 states and 57 transitions. Second operand 8 states. [2019-01-07 14:16:11,777 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:11,777 INFO L93 Difference]: Finished difference Result 37 states and 74 transitions. [2019-01-07 14:16:11,777 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-07 14:16:11,777 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-07 14:16:11,777 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:16:11,778 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 14:16:11,779 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 48 transitions. [2019-01-07 14:16:11,779 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 14:16:11,779 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 48 transitions. [2019-01-07 14:16:11,779 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 48 transitions. [2019-01-07 14:16:11,866 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 48 edges. 48 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:11,867 INFO L225 Difference]: With dead ends: 37 [2019-01-07 14:16:11,867 INFO L226 Difference]: Without dead ends: 36 [2019-01-07 14:16:11,868 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=61, Invalid=95, Unknown=0, NotChecked=0, Total=156 [2019-01-07 14:16:11,868 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 36 states. [2019-01-07 14:16:11,958 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 36 to 17. [2019-01-07 14:16:11,958 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:16:11,958 INFO L82 GeneralOperation]: Start isEquivalent. First operand 36 states. Second operand 17 states. [2019-01-07 14:16:11,958 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 17 states. [2019-01-07 14:16:11,958 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 17 states. [2019-01-07 14:16:11,960 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:11,960 INFO L93 Difference]: Finished difference Result 36 states and 72 transitions. [2019-01-07 14:16:11,961 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 72 transitions. [2019-01-07 14:16:11,961 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:11,961 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:11,961 INFO L74 IsIncluded]: Start isIncluded. First operand 17 states. Second operand 36 states. [2019-01-07 14:16:11,961 INFO L87 Difference]: Start difference. First operand 17 states. Second operand 36 states. [2019-01-07 14:16:11,963 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:11,963 INFO L93 Difference]: Finished difference Result 36 states and 72 transitions. [2019-01-07 14:16:11,964 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 72 transitions. [2019-01-07 14:16:11,964 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:11,964 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:11,964 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:16:11,964 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:16:11,965 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 17 states. [2019-01-07 14:16:11,966 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 41 transitions. [2019-01-07 14:16:11,966 INFO L78 Accepts]: Start accepts. Automaton has 17 states and 41 transitions. Word has length 4 [2019-01-07 14:16:11,966 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:16:11,966 INFO L480 AbstractCegarLoop]: Abstraction has 17 states and 41 transitions. [2019-01-07 14:16:11,966 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 14:16:11,966 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 41 transitions. [2019-01-07 14:16:11,967 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-07 14:16:11,967 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:16:11,967 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-07 14:16:11,967 INFO L423 AbstractCegarLoop]: === Iteration 8 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:16:11,967 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:11,968 INFO L82 PathProgramCache]: Analyzing trace with hash 939350, now seen corresponding path program 1 times [2019-01-07 14:16:11,968 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:16:11,968 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:11,969 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:11,969 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:11,969 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:16:11,978 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:12,149 INFO L273 TraceCheckUtils]: 0: Hoare triple {845#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {847#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 14:16:12,150 INFO L273 TraceCheckUtils]: 1: Hoare triple {847#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {848#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))} is VALID [2019-01-07 14:16:12,151 INFO L273 TraceCheckUtils]: 2: Hoare triple {848#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {849#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-07 14:16:12,152 INFO L273 TraceCheckUtils]: 3: Hoare triple {849#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {846#false} is VALID [2019-01-07 14:16:12,152 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:12,152 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:12,152 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:16:12,152 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-07 14:16:12,153 INFO L207 CegarAbsIntRunner]: [0], [14], [16], [19] [2019-01-07 14:16:12,153 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:16:12,154 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:16:12,165 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:16:12,165 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 52 root evaluator evaluations with a maximum evaluation depth of 3. Performed 52 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-07 14:16:12,166 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:12,166 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:16:12,166 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:12,166 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 7 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 7 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:16:12,176 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:12,176 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:16:12,188 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:12,194 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:12,194 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:16:12,269 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:16:12,316 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:12,317 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:16:12,328 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:12,329 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:12,331 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:16:12,380 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:12,381 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:12,382 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:12,384 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:16:12,386 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:12,411 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:12,422 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:12,431 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:12,447 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:12,448 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 14:16:12,454 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:12,455 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_39|, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_39| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:16:12,455 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:16:12,618 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:12,619 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:12,620 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:12,620 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:12,622 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:12,623 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:12,624 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:12,626 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 14:16:12,629 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:12,661 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:12,661 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 14:16:12,736 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:12,736 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_40|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_40| ULTIMATE.start_main_p4))) (and (= (select |v_#memory_int_40| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_40| ULTIMATE.start_main_p2) 0) (= |#memory_int| (store |v_#memory_int_40| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= (select |v_#memory_int_40| ULTIMATE.start_main_p1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= .cse0 0))) [2019-01-07 14:16:12,737 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:16:12,906 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:12,907 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:12,908 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:12,909 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:12,909 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:12,911 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:12,912 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:12,913 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:12,916 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:12,917 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 67 [2019-01-07 14:16:12,920 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:12,958 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:12,958 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-07 14:16:13,092 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:13,093 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_41|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_41| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_41| ULTIMATE.start_main_p3 (+ .cse0 1))) (= 0 (+ (select |v_#memory_int_41| ULTIMATE.start_main_p4) 1)) (= 0 (select |v_#memory_int_41| ULTIMATE.start_main_p2)) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_41| ULTIMATE.start_main_p1) 0))) [2019-01-07 14:16:13,093 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:16:13,119 INFO L273 TraceCheckUtils]: 0: Hoare triple {845#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {853#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:16:13,121 INFO L273 TraceCheckUtils]: 1: Hoare triple {853#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {857#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-07 14:16:13,124 INFO L273 TraceCheckUtils]: 2: Hoare triple {857#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {861#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-07 14:16:13,128 INFO L273 TraceCheckUtils]: 3: Hoare triple {861#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {846#false} is VALID [2019-01-07 14:16:13,128 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:13,128 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:16:13,214 INFO L273 TraceCheckUtils]: 3: Hoare triple {865#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {846#false} is VALID [2019-01-07 14:16:13,223 INFO L273 TraceCheckUtils]: 2: Hoare triple {869#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {865#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:16:13,233 INFO L273 TraceCheckUtils]: 1: Hoare triple {873#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {869#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:16:13,234 INFO L273 TraceCheckUtils]: 0: Hoare triple {845#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {873#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:16:13,234 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:13,254 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:16:13,254 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 14:16:13,254 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:16:13,255 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-07 14:16:13,255 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:16:13,255 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 14:16:13,271 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:13,272 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 14:16:13,272 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 14:16:13,272 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-07 14:16:13,272 INFO L87 Difference]: Start difference. First operand 17 states and 41 transitions. Second operand 8 states. [2019-01-07 14:16:14,153 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:14,154 INFO L93 Difference]: Finished difference Result 42 states and 89 transitions. [2019-01-07 14:16:14,154 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-07 14:16:14,154 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-07 14:16:14,154 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:16:14,155 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 14:16:14,155 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 50 transitions. [2019-01-07 14:16:14,155 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 14:16:14,156 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 50 transitions. [2019-01-07 14:16:14,156 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 50 transitions. [2019-01-07 14:16:14,236 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 50 edges. 50 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:14,238 INFO L225 Difference]: With dead ends: 42 [2019-01-07 14:16:14,238 INFO L226 Difference]: Without dead ends: 38 [2019-01-07 14:16:14,239 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-01-07 14:16:14,239 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 38 states. [2019-01-07 14:16:14,361 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 38 to 22. [2019-01-07 14:16:14,361 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:16:14,361 INFO L82 GeneralOperation]: Start isEquivalent. First operand 38 states. Second operand 22 states. [2019-01-07 14:16:14,362 INFO L74 IsIncluded]: Start isIncluded. First operand 38 states. Second operand 22 states. [2019-01-07 14:16:14,362 INFO L87 Difference]: Start difference. First operand 38 states. Second operand 22 states. [2019-01-07 14:16:14,364 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:14,364 INFO L93 Difference]: Finished difference Result 38 states and 82 transitions. [2019-01-07 14:16:14,364 INFO L276 IsEmpty]: Start isEmpty. Operand 38 states and 82 transitions. [2019-01-07 14:16:14,365 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:14,365 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:14,365 INFO L74 IsIncluded]: Start isIncluded. First operand 22 states. Second operand 38 states. [2019-01-07 14:16:14,365 INFO L87 Difference]: Start difference. First operand 22 states. Second operand 38 states. [2019-01-07 14:16:14,367 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:14,367 INFO L93 Difference]: Finished difference Result 38 states and 82 transitions. [2019-01-07 14:16:14,367 INFO L276 IsEmpty]: Start isEmpty. Operand 38 states and 82 transitions. [2019-01-07 14:16:14,367 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:14,367 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:14,368 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:16:14,368 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:16:14,368 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 22 states. [2019-01-07 14:16:14,369 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 22 states to 22 states and 65 transitions. [2019-01-07 14:16:14,369 INFO L78 Accepts]: Start accepts. Automaton has 22 states and 65 transitions. Word has length 4 [2019-01-07 14:16:14,369 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:16:14,370 INFO L480 AbstractCegarLoop]: Abstraction has 22 states and 65 transitions. [2019-01-07 14:16:14,370 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 14:16:14,370 INFO L276 IsEmpty]: Start isEmpty. Operand 22 states and 65 transitions. [2019-01-07 14:16:14,370 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-07 14:16:14,370 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:16:14,370 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-07 14:16:14,371 INFO L423 AbstractCegarLoop]: === Iteration 9 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:16:14,371 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:14,371 INFO L82 PathProgramCache]: Analyzing trace with hash 929802, now seen corresponding path program 1 times [2019-01-07 14:16:14,371 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:16:14,372 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:14,372 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:14,372 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:14,372 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:16:14,379 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:14,674 WARN L181 SmtUtils]: Spent 102.00 ms on a formula simplification. DAG size of input: 15 DAG size of output: 9 [2019-01-07 14:16:14,713 INFO L273 TraceCheckUtils]: 0: Hoare triple {1043#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1045#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 14:16:14,714 INFO L273 TraceCheckUtils]: 1: Hoare triple {1045#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1046#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 14:16:14,715 INFO L273 TraceCheckUtils]: 2: Hoare triple {1046#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1047#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:16:14,716 INFO L273 TraceCheckUtils]: 3: Hoare triple {1047#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1044#false} is VALID [2019-01-07 14:16:14,716 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:14,716 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:14,716 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:16:14,716 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-07 14:16:14,716 INFO L207 CegarAbsIntRunner]: [0], [6], [16], [19] [2019-01-07 14:16:14,718 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:16:14,718 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:16:14,731 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:16:14,732 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 52 root evaluator evaluations with a maximum evaluation depth of 3. Performed 52 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-07 14:16:14,732 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:14,732 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:16:14,732 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:14,732 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 8 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 8 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:16:14,747 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:14,747 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:16:14,751 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:14,755 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:14,757 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:16:14,844 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:16:14,853 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:14,854 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:16:14,866 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:14,867 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:14,868 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:16:14,881 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:14,882 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:14,883 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:14,884 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:16:14,893 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:14,910 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:14,921 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:14,930 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:14,946 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:14,947 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-01-07 14:16:14,952 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:14,953 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_44|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (and (= (store (store (store (store |v_#memory_int_44| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:16:14,953 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:16:15,070 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:15,075 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:15,077 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:15,080 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:15,080 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:15,081 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:15,082 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:15,083 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 14:16:15,086 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:15,124 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:15,124 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 14:16:15,128 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:15,129 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_45|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_45| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_45| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= (select |v_#memory_int_45| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_45| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_45| ULTIMATE.start_main_p4) 0) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:16:15,129 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:16:15,178 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:15,182 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:15,183 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:15,183 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:15,185 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:15,186 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:15,187 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:15,188 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:15,189 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:15,191 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 57 [2019-01-07 14:16:15,196 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:15,242 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:15,242 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-07 14:16:15,809 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:15,809 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_46|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_46| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= |#memory_int| (store |v_#memory_int_46| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= (select |v_#memory_int_46| ULTIMATE.start_main_p3) 0) (= 0 (select |v_#memory_int_46| ULTIMATE.start_main_p2)) (= 1 (select |v_#memory_int_46| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:16:15,809 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:16:15,847 INFO L273 TraceCheckUtils]: 0: Hoare triple {1043#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1051#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:16:15,849 INFO L273 TraceCheckUtils]: 1: Hoare triple {1051#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1055#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:16:15,852 INFO L273 TraceCheckUtils]: 2: Hoare triple {1055#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1059#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-07 14:16:15,853 INFO L273 TraceCheckUtils]: 3: Hoare triple {1059#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {1044#false} is VALID [2019-01-07 14:16:15,854 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:15,854 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:16:15,909 INFO L273 TraceCheckUtils]: 3: Hoare triple {1063#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1044#false} is VALID [2019-01-07 14:16:15,910 INFO L273 TraceCheckUtils]: 2: Hoare triple {1067#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1063#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:16:15,912 INFO L273 TraceCheckUtils]: 1: Hoare triple {1071#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1067#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:16:15,914 INFO L273 TraceCheckUtils]: 0: Hoare triple {1043#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1071#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:16:15,914 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:15,934 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:16:15,934 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 14:16:15,934 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:16:15,935 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-07 14:16:15,935 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:16:15,935 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 14:16:15,947 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:15,947 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 14:16:15,947 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 14:16:15,947 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-01-07 14:16:15,948 INFO L87 Difference]: Start difference. First operand 22 states and 65 transitions. Second operand 8 states. [2019-01-07 14:16:16,696 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:16,697 INFO L93 Difference]: Finished difference Result 51 states and 112 transitions. [2019-01-07 14:16:16,697 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-07 14:16:16,697 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-07 14:16:16,697 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:16:16,698 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 14:16:16,699 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 57 transitions. [2019-01-07 14:16:16,699 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 14:16:16,700 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 57 transitions. [2019-01-07 14:16:16,700 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 57 transitions. [2019-01-07 14:16:16,816 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 57 edges. 57 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:16,817 INFO L225 Difference]: With dead ends: 51 [2019-01-07 14:16:16,817 INFO L226 Difference]: Without dead ends: 48 [2019-01-07 14:16:16,818 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 10 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 28 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=53, Invalid=79, Unknown=0, NotChecked=0, Total=132 [2019-01-07 14:16:16,818 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 48 states. [2019-01-07 14:16:16,934 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 48 to 28. [2019-01-07 14:16:16,934 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:16:16,934 INFO L82 GeneralOperation]: Start isEquivalent. First operand 48 states. Second operand 28 states. [2019-01-07 14:16:16,935 INFO L74 IsIncluded]: Start isIncluded. First operand 48 states. Second operand 28 states. [2019-01-07 14:16:16,935 INFO L87 Difference]: Start difference. First operand 48 states. Second operand 28 states. [2019-01-07 14:16:16,938 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:16,938 INFO L93 Difference]: Finished difference Result 48 states and 107 transitions. [2019-01-07 14:16:16,938 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 107 transitions. [2019-01-07 14:16:16,938 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:16,939 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:16,939 INFO L74 IsIncluded]: Start isIncluded. First operand 28 states. Second operand 48 states. [2019-01-07 14:16:16,939 INFO L87 Difference]: Start difference. First operand 28 states. Second operand 48 states. [2019-01-07 14:16:16,941 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:16,941 INFO L93 Difference]: Finished difference Result 48 states and 107 transitions. [2019-01-07 14:16:16,942 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 107 transitions. [2019-01-07 14:16:16,942 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:16,942 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:16,942 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:16:16,942 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:16:16,942 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 28 states. [2019-01-07 14:16:16,944 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 28 states to 28 states and 88 transitions. [2019-01-07 14:16:16,944 INFO L78 Accepts]: Start accepts. Automaton has 28 states and 88 transitions. Word has length 4 [2019-01-07 14:16:16,945 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:16:16,945 INFO L480 AbstractCegarLoop]: Abstraction has 28 states and 88 transitions. [2019-01-07 14:16:16,945 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 14:16:16,945 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 88 transitions. [2019-01-07 14:16:16,945 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-07 14:16:16,945 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:16:16,945 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-07 14:16:16,946 INFO L423 AbstractCegarLoop]: === Iteration 10 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:16:16,946 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:16,946 INFO L82 PathProgramCache]: Analyzing trace with hash 929928, now seen corresponding path program 1 times [2019-01-07 14:16:16,946 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:16:16,947 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:16,947 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:16,947 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:16,947 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:16:16,954 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:17,047 INFO L273 TraceCheckUtils]: 0: Hoare triple {1282#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1284#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-07 14:16:17,049 INFO L273 TraceCheckUtils]: 1: Hoare triple {1284#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1285#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:17,049 INFO L273 TraceCheckUtils]: 2: Hoare triple {1285#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {1285#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:17,051 INFO L273 TraceCheckUtils]: 3: Hoare triple {1285#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {1283#false} is VALID [2019-01-07 14:16:17,051 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:17,051 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:17,051 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:16:17,052 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-07 14:16:17,052 INFO L207 CegarAbsIntRunner]: [0], [6], [20], [21] [2019-01-07 14:16:17,055 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:16:17,055 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:16:17,075 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:16:17,075 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 52 root evaluator evaluations with a maximum evaluation depth of 3. Performed 52 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-07 14:16:17,075 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:17,075 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:16:17,076 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:17,076 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 9 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 9 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:16:17,084 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:17,084 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:16:17,105 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:17,113 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:17,113 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:16:17,143 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:16:17,189 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:17,190 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:16:17,200 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:17,202 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:17,203 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:16:17,221 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:17,223 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:17,224 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:17,226 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:16:17,230 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:17,249 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:17,261 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:17,271 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:17,289 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:17,289 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-01-07 14:16:17,296 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:17,296 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_49|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_49| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:16:17,296 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:16:17,415 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:17,439 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:17,463 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:17,466 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:17,469 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:17,472 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:17,473 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:17,474 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 14:16:17,481 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:17,513 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:17,514 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-07 14:16:19,520 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:19,520 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_50|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_50| ULTIMATE.start_main_p1))) (and (= 0 (select |v_#memory_int_50| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_50| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= 0 (select |v_#memory_int_50| ULTIMATE.start_main_p2)) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 (select |v_#memory_int_50| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:16:19,520 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:16:19,584 INFO L273 TraceCheckUtils]: 0: Hoare triple {1282#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1289#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:16:19,585 INFO L273 TraceCheckUtils]: 1: Hoare triple {1289#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1293#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-07 14:16:19,586 INFO L273 TraceCheckUtils]: 2: Hoare triple {1293#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p1] >= 0; {1293#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-07 14:16:19,587 INFO L273 TraceCheckUtils]: 3: Hoare triple {1293#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume !(#memory_int[main_p2] <= 0); {1283#false} is VALID [2019-01-07 14:16:19,587 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:19,587 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:16:19,611 INFO L273 TraceCheckUtils]: 3: Hoare triple {1300#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {1283#false} is VALID [2019-01-07 14:16:19,611 INFO L273 TraceCheckUtils]: 2: Hoare triple {1300#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {1300#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:19,613 INFO L273 TraceCheckUtils]: 1: Hoare triple {1307#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1300#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:19,615 INFO L273 TraceCheckUtils]: 0: Hoare triple {1282#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1307#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:19,616 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:19,643 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:16:19,643 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-01-07 14:16:19,643 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:16:19,644 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-01-07 14:16:19,644 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:16:19,644 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-01-07 14:16:19,654 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:19,654 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-01-07 14:16:19,654 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-01-07 14:16:19,654 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-07 14:16:19,655 INFO L87 Difference]: Start difference. First operand 28 states and 88 transitions. Second operand 6 states. [2019-01-07 14:16:20,039 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:20,039 INFO L93 Difference]: Finished difference Result 36 states and 98 transitions. [2019-01-07 14:16:20,039 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-07 14:16:20,040 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-01-07 14:16:20,040 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:16:20,040 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-07 14:16:20,040 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 34 transitions. [2019-01-07 14:16:20,040 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-07 14:16:20,041 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 34 transitions. [2019-01-07 14:16:20,041 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 34 transitions. [2019-01-07 14:16:20,121 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 34 edges. 34 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:20,122 INFO L225 Difference]: With dead ends: 36 [2019-01-07 14:16:20,122 INFO L226 Difference]: Without dead ends: 35 [2019-01-07 14:16:20,123 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 10 GetRequests, 3 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=31, Invalid=41, Unknown=0, NotChecked=0, Total=72 [2019-01-07 14:16:20,123 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 35 states. [2019-01-07 14:16:20,292 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 35 to 29. [2019-01-07 14:16:20,292 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:16:20,292 INFO L82 GeneralOperation]: Start isEquivalent. First operand 35 states. Second operand 29 states. [2019-01-07 14:16:20,292 INFO L74 IsIncluded]: Start isIncluded. First operand 35 states. Second operand 29 states. [2019-01-07 14:16:20,293 INFO L87 Difference]: Start difference. First operand 35 states. Second operand 29 states. [2019-01-07 14:16:20,295 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:20,295 INFO L93 Difference]: Finished difference Result 35 states and 96 transitions. [2019-01-07 14:16:20,295 INFO L276 IsEmpty]: Start isEmpty. Operand 35 states and 96 transitions. [2019-01-07 14:16:20,295 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:20,295 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:20,296 INFO L74 IsIncluded]: Start isIncluded. First operand 29 states. Second operand 35 states. [2019-01-07 14:16:20,296 INFO L87 Difference]: Start difference. First operand 29 states. Second operand 35 states. [2019-01-07 14:16:20,297 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:20,297 INFO L93 Difference]: Finished difference Result 35 states and 96 transitions. [2019-01-07 14:16:20,297 INFO L276 IsEmpty]: Start isEmpty. Operand 35 states and 96 transitions. [2019-01-07 14:16:20,298 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:20,298 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:20,298 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:16:20,298 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:16:20,298 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 29 states. [2019-01-07 14:16:20,299 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 29 states to 29 states and 92 transitions. [2019-01-07 14:16:20,300 INFO L78 Accepts]: Start accepts. Automaton has 29 states and 92 transitions. Word has length 4 [2019-01-07 14:16:20,300 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:16:20,300 INFO L480 AbstractCegarLoop]: Abstraction has 29 states and 92 transitions. [2019-01-07 14:16:20,300 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-01-07 14:16:20,300 INFO L276 IsEmpty]: Start isEmpty. Operand 29 states and 92 transitions. [2019-01-07 14:16:20,300 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-07 14:16:20,301 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:16:20,301 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-07 14:16:20,301 INFO L423 AbstractCegarLoop]: === Iteration 11 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:16:20,301 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:20,301 INFO L82 PathProgramCache]: Analyzing trace with hash 929616, now seen corresponding path program 1 times [2019-01-07 14:16:20,301 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:16:20,302 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:20,302 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:20,303 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:20,303 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:16:20,309 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:20,484 INFO L273 TraceCheckUtils]: 0: Hoare triple {1479#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1481#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-01-07 14:16:20,485 INFO L273 TraceCheckUtils]: 1: Hoare triple {1481#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1482#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-07 14:16:20,486 INFO L273 TraceCheckUtils]: 2: Hoare triple {1482#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {1483#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:16:20,487 INFO L273 TraceCheckUtils]: 3: Hoare triple {1483#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1480#false} is VALID [2019-01-07 14:16:20,487 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:20,487 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:20,488 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:16:20,488 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-07 14:16:20,488 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [19] [2019-01-07 14:16:20,491 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:16:20,491 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:16:20,513 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:16:20,513 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 52 root evaluator evaluations with a maximum evaluation depth of 3. Performed 52 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-07 14:16:20,513 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:20,513 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:16:20,513 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:20,514 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 10 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 10 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:16:20,522 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:20,522 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:16:20,527 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:20,531 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:20,532 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:16:20,577 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:16:20,588 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:20,590 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:16:20,663 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:20,664 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:20,665 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:16:20,691 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:20,693 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:20,694 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:20,697 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:16:20,708 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:20,727 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:20,740 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:20,752 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:20,774 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:20,774 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-01-07 14:16:20,781 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:20,781 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_52|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_52| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:16:20,781 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:16:20,851 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:20,852 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:20,854 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:20,855 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:20,856 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:20,858 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:20,859 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:20,860 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 14:16:20,866 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:20,907 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:20,907 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 14:16:20,912 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:20,912 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_53|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_53| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_53| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= (select |v_#memory_int_53| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_53| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_53| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= .cse0 0))) [2019-01-07 14:16:20,912 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:16:21,035 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:21,036 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:21,038 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:21,039 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:21,040 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:21,042 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:21,043 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:21,044 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:21,045 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:21,047 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 65 [2019-01-07 14:16:21,052 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:21,095 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:21,096 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-07 14:16:22,553 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:22,553 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_54|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_54| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= (select |v_#memory_int_54| ULTIMATE.start_main_p4) 0) (= (store |v_#memory_int_54| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_54| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 (select |v_#memory_int_54| ULTIMATE.start_main_p3)))) [2019-01-07 14:16:22,553 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:16:22,593 INFO L273 TraceCheckUtils]: 0: Hoare triple {1479#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1487#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:16:22,596 INFO L273 TraceCheckUtils]: 1: Hoare triple {1487#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1491#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:16:22,598 INFO L273 TraceCheckUtils]: 2: Hoare triple {1491#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {1495#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-07 14:16:22,599 INFO L273 TraceCheckUtils]: 3: Hoare triple {1495#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {1480#false} is VALID [2019-01-07 14:16:22,599 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:22,600 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:16:22,648 INFO L273 TraceCheckUtils]: 3: Hoare triple {1499#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1480#false} is VALID [2019-01-07 14:16:22,649 INFO L273 TraceCheckUtils]: 2: Hoare triple {1503#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {1499#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:16:22,651 INFO L273 TraceCheckUtils]: 1: Hoare triple {1507#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1503#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:16:22,653 INFO L273 TraceCheckUtils]: 0: Hoare triple {1479#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1507#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:16:22,654 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:22,673 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:16:22,673 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 14:16:22,673 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:16:22,674 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-07 14:16:22,674 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:16:22,674 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 14:16:22,687 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:22,687 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 14:16:22,687 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 14:16:22,688 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-01-07 14:16:22,688 INFO L87 Difference]: Start difference. First operand 29 states and 92 transitions. Second operand 8 states. [2019-01-07 14:16:23,692 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:23,692 INFO L93 Difference]: Finished difference Result 55 states and 140 transitions. [2019-01-07 14:16:23,692 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-07 14:16:23,692 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-07 14:16:23,693 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:16:23,693 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 14:16:23,693 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 54 transitions. [2019-01-07 14:16:23,694 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 14:16:23,694 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 54 transitions. [2019-01-07 14:16:23,694 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 54 transitions. [2019-01-07 14:16:23,775 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 54 edges. 54 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:23,776 INFO L225 Difference]: With dead ends: 55 [2019-01-07 14:16:23,776 INFO L226 Difference]: Without dead ends: 54 [2019-01-07 14:16:23,777 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 10 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 28 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=53, Invalid=79, Unknown=0, NotChecked=0, Total=132 [2019-01-07 14:16:23,777 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 54 states. [2019-01-07 14:16:23,959 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 54 to 34. [2019-01-07 14:16:23,960 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:16:23,960 INFO L82 GeneralOperation]: Start isEquivalent. First operand 54 states. Second operand 34 states. [2019-01-07 14:16:23,960 INFO L74 IsIncluded]: Start isIncluded. First operand 54 states. Second operand 34 states. [2019-01-07 14:16:23,960 INFO L87 Difference]: Start difference. First operand 54 states. Second operand 34 states. [2019-01-07 14:16:23,964 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:23,964 INFO L93 Difference]: Finished difference Result 54 states and 137 transitions. [2019-01-07 14:16:23,964 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 137 transitions. [2019-01-07 14:16:23,965 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:23,965 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:23,965 INFO L74 IsIncluded]: Start isIncluded. First operand 34 states. Second operand 54 states. [2019-01-07 14:16:23,965 INFO L87 Difference]: Start difference. First operand 34 states. Second operand 54 states. [2019-01-07 14:16:23,967 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:23,967 INFO L93 Difference]: Finished difference Result 54 states and 137 transitions. [2019-01-07 14:16:23,967 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 137 transitions. [2019-01-07 14:16:23,968 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:23,968 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:23,968 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:16:23,968 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:16:23,968 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 34 states. [2019-01-07 14:16:23,970 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 34 states to 34 states and 117 transitions. [2019-01-07 14:16:23,970 INFO L78 Accepts]: Start accepts. Automaton has 34 states and 117 transitions. Word has length 4 [2019-01-07 14:16:23,970 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:16:23,970 INFO L480 AbstractCegarLoop]: Abstraction has 34 states and 117 transitions. [2019-01-07 14:16:23,970 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 14:16:23,970 INFO L276 IsEmpty]: Start isEmpty. Operand 34 states and 117 transitions. [2019-01-07 14:16:23,971 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-07 14:16:23,971 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:16:23,971 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-07 14:16:23,971 INFO L423 AbstractCegarLoop]: === Iteration 12 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:16:23,971 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:23,971 INFO L82 PathProgramCache]: Analyzing trace with hash 933584, now seen corresponding path program 1 times [2019-01-07 14:16:23,971 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:16:23,972 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:23,972 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:23,972 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:23,973 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:16:23,979 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:24,111 INFO L273 TraceCheckUtils]: 0: Hoare triple {1752#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1754#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-07 14:16:24,112 INFO L273 TraceCheckUtils]: 1: Hoare triple {1754#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {1755#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:16:24,113 INFO L273 TraceCheckUtils]: 2: Hoare triple {1755#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {1756#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-07 14:16:24,118 INFO L273 TraceCheckUtils]: 3: Hoare triple {1756#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {1753#false} is VALID [2019-01-07 14:16:24,119 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:24,119 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:24,119 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:16:24,119 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-07 14:16:24,119 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [19] [2019-01-07 14:16:24,120 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:16:24,120 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:16:24,136 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:16:24,136 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 52 root evaluator evaluations with a maximum evaluation depth of 3. Performed 52 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-07 14:16:24,136 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:24,137 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:16:24,137 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:24,137 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 11 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 11 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:16:24,146 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:24,146 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:16:24,150 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:24,154 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:24,155 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:16:24,174 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:16:24,182 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:24,183 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:16:24,208 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:24,209 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:24,210 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:16:24,224 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:24,225 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:24,226 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:24,228 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:16:24,236 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:24,256 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:24,265 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:24,274 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:24,289 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:24,289 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 14:16:24,294 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:24,295 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_57|, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_57| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:16:24,295 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:16:24,338 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:24,339 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:24,340 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:24,342 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:24,343 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:24,344 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:24,345 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:24,346 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 14:16:24,351 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:24,381 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:24,381 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 14:16:24,466 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:24,467 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_58|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_58| ULTIMATE.start_main_p2))) (and (= 0 (select |v_#memory_int_58| ULTIMATE.start_main_p4)) (= (select |v_#memory_int_58| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_58| ULTIMATE.start_main_p1) 0) (= (store |v_#memory_int_58| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:16:24,467 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:16:24,542 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:24,544 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:24,545 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:24,546 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:24,547 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:24,548 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:24,549 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:24,550 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:24,551 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:24,553 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 67 [2019-01-07 14:16:24,555 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:24,590 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:24,591 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-07 14:16:24,684 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:24,684 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_59|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_59| ULTIMATE.start_main_p3))) (and (= 0 (select |v_#memory_int_59| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_59| ULTIMATE.start_main_p1)) (= (store |v_#memory_int_59| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= 0 .cse0) (= 0 (+ (select |v_#memory_int_59| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:16:24,684 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:16:24,715 INFO L273 TraceCheckUtils]: 0: Hoare triple {1752#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1760#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:16:24,718 INFO L273 TraceCheckUtils]: 1: Hoare triple {1760#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {1764#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-07 14:16:24,720 INFO L273 TraceCheckUtils]: 2: Hoare triple {1764#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {1768#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-07 14:16:24,721 INFO L273 TraceCheckUtils]: 3: Hoare triple {1768#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume !(#memory_int[main_p1] >= 0); {1753#false} is VALID [2019-01-07 14:16:24,722 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:24,722 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:16:24,772 INFO L273 TraceCheckUtils]: 3: Hoare triple {1772#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1753#false} is VALID [2019-01-07 14:16:24,773 INFO L273 TraceCheckUtils]: 2: Hoare triple {1776#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {1772#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:16:24,774 INFO L273 TraceCheckUtils]: 1: Hoare triple {1780#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {1776#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:16:24,776 INFO L273 TraceCheckUtils]: 0: Hoare triple {1752#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1780#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:16:24,777 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:24,797 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:16:24,797 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 14:16:24,797 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:16:24,798 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-07 14:16:24,798 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:16:24,798 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 14:16:24,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-01-07 14:16:24,809 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 14:16:24,809 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 14:16:24,809 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-07 14:16:24,810 INFO L87 Difference]: Start difference. First operand 34 states and 117 transitions. Second operand 8 states. [2019-01-07 14:16:25,661 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:25,661 INFO L93 Difference]: Finished difference Result 56 states and 150 transitions. [2019-01-07 14:16:25,661 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-07 14:16:25,662 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-01-07 14:16:25,662 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:16:25,662 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 14:16:25,662 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 47 transitions. [2019-01-07 14:16:25,662 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 14:16:25,663 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 47 transitions. [2019-01-07 14:16:25,663 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 47 transitions. [2019-01-07 14:16:25,772 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 47 edges. 47 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:25,773 INFO L225 Difference]: With dead ends: 56 [2019-01-07 14:16:25,773 INFO L226 Difference]: Without dead ends: 54 [2019-01-07 14:16:25,774 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-01-07 14:16:25,774 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 54 states. [2019-01-07 14:16:25,969 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 54 to 36. [2019-01-07 14:16:25,969 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:16:25,970 INFO L82 GeneralOperation]: Start isEquivalent. First operand 54 states. Second operand 36 states. [2019-01-07 14:16:25,970 INFO L74 IsIncluded]: Start isIncluded. First operand 54 states. Second operand 36 states. [2019-01-07 14:16:25,970 INFO L87 Difference]: Start difference. First operand 54 states. Second operand 36 states. [2019-01-07 14:16:25,972 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:25,973 INFO L93 Difference]: Finished difference Result 54 states and 146 transitions. [2019-01-07 14:16:25,973 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 146 transitions. [2019-01-07 14:16:25,973 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:25,973 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:25,973 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 54 states. [2019-01-07 14:16:25,974 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 54 states. [2019-01-07 14:16:25,975 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:25,975 INFO L93 Difference]: Finished difference Result 54 states and 146 transitions. [2019-01-07 14:16:25,976 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 146 transitions. [2019-01-07 14:16:25,976 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:25,976 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:25,976 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:16:25,976 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:16:25,976 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 36 states. [2019-01-07 14:16:25,978 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 36 states to 36 states and 127 transitions. [2019-01-07 14:16:25,978 INFO L78 Accepts]: Start accepts. Automaton has 36 states and 127 transitions. Word has length 4 [2019-01-07 14:16:25,978 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:16:25,978 INFO L480 AbstractCegarLoop]: Abstraction has 36 states and 127 transitions. [2019-01-07 14:16:25,978 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 14:16:25,978 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 127 transitions. [2019-01-07 14:16:25,979 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-01-07 14:16:25,979 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:16:25,979 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-01-07 14:16:25,979 INFO L423 AbstractCegarLoop]: === Iteration 13 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:16:25,979 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:25,979 INFO L82 PathProgramCache]: Analyzing trace with hash 937616, now seen corresponding path program 1 times [2019-01-07 14:16:25,979 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:16:25,981 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:25,981 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:25,981 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:25,982 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:16:25,987 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:26,062 INFO L273 TraceCheckUtils]: 0: Hoare triple {2034#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2036#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-07 14:16:26,063 INFO L273 TraceCheckUtils]: 1: Hoare triple {2036#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {2037#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:26,064 INFO L273 TraceCheckUtils]: 2: Hoare triple {2037#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {2037#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:26,065 INFO L273 TraceCheckUtils]: 3: Hoare triple {2037#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {2035#false} is VALID [2019-01-07 14:16:26,065 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:26,065 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:26,066 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:16:26,066 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-01-07 14:16:26,066 INFO L207 CegarAbsIntRunner]: [0], [14], [20], [21] [2019-01-07 14:16:26,067 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:16:26,067 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:16:26,080 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:16:26,080 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 52 root evaluator evaluations with a maximum evaluation depth of 3. Performed 52 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-07 14:16:26,080 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:26,081 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:16:26,081 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:26,081 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 12 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 12 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:16:26,090 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:26,091 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:16:26,094 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:26,100 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:26,100 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:16:26,119 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:16:26,129 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-07 14:16:26,142 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:26,144 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 26 [2019-01-07 14:16:26,157 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:26,158 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:26,159 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 33 [2019-01-07 14:16:26,169 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:26,183 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:26,191 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:26,200 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:26,215 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:26,215 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:22, output treesize:27 [2019-01-07 14:16:26,219 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:26,220 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_62|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_62| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:16:26,220 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:16:26,276 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:26,278 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:26,279 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:26,280 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:26,281 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 34 [2019-01-07 14:16:26,284 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:26,304 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:26,305 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:32, output treesize:22 [2019-01-07 14:16:26,875 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:26,875 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_63|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_63| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= |#memory_int| (store |v_#memory_int_63| ULTIMATE.start_main_p3 (+ .cse0 1))) (= (select |v_#memory_int_63| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_63| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-07 14:16:26,875 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:16:26,917 INFO L273 TraceCheckUtils]: 0: Hoare triple {2034#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2041#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:16:26,919 INFO L273 TraceCheckUtils]: 1: Hoare triple {2041#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {2045#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-07 14:16:26,935 INFO L273 TraceCheckUtils]: 2: Hoare triple {2045#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume #memory_int[main_p1] >= 0; {2045#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-07 14:16:26,936 INFO L273 TraceCheckUtils]: 3: Hoare triple {2045#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume !(#memory_int[main_p2] <= 0); {2035#false} is VALID [2019-01-07 14:16:26,936 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:26,936 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:16:26,960 INFO L273 TraceCheckUtils]: 3: Hoare triple {2052#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {2035#false} is VALID [2019-01-07 14:16:26,961 INFO L273 TraceCheckUtils]: 2: Hoare triple {2052#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {2052#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:26,962 INFO L273 TraceCheckUtils]: 1: Hoare triple {2059#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {2052#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:26,964 INFO L273 TraceCheckUtils]: 0: Hoare triple {2034#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2059#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:26,964 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:26,983 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:16:26,983 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-01-07 14:16:26,984 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:16:26,984 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-01-07 14:16:26,984 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:16:26,984 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-01-07 14:16:26,994 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:26,995 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-01-07 14:16:26,995 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-01-07 14:16:26,995 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-01-07 14:16:26,995 INFO L87 Difference]: Start difference. First operand 36 states and 127 transitions. Second operand 6 states. [2019-01-07 14:16:27,435 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:27,435 INFO L93 Difference]: Finished difference Result 48 states and 142 transitions. [2019-01-07 14:16:27,435 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-07 14:16:27,435 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-01-07 14:16:27,435 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:16:27,436 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-07 14:16:27,436 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 36 transitions. [2019-01-07 14:16:27,436 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-01-07 14:16:27,436 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 36 transitions. [2019-01-07 14:16:27,436 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 36 transitions. [2019-01-07 14:16:27,509 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 36 edges. 36 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:27,510 INFO L225 Difference]: With dead ends: 48 [2019-01-07 14:16:27,510 INFO L226 Difference]: Without dead ends: 47 [2019-01-07 14:16:27,510 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 9 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=31, Invalid=41, Unknown=0, NotChecked=0, Total=72 [2019-01-07 14:16:27,511 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 47 states. [2019-01-07 14:16:27,763 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 47 to 36. [2019-01-07 14:16:27,763 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:16:27,763 INFO L82 GeneralOperation]: Start isEquivalent. First operand 47 states. Second operand 36 states. [2019-01-07 14:16:27,764 INFO L74 IsIncluded]: Start isIncluded. First operand 47 states. Second operand 36 states. [2019-01-07 14:16:27,764 INFO L87 Difference]: Start difference. First operand 47 states. Second operand 36 states. [2019-01-07 14:16:27,766 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:27,766 INFO L93 Difference]: Finished difference Result 47 states and 140 transitions. [2019-01-07 14:16:27,766 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 140 transitions. [2019-01-07 14:16:27,767 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:27,767 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:27,767 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 47 states. [2019-01-07 14:16:27,767 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 47 states. [2019-01-07 14:16:27,769 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:27,769 INFO L93 Difference]: Finished difference Result 47 states and 140 transitions. [2019-01-07 14:16:27,769 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 140 transitions. [2019-01-07 14:16:27,769 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:27,769 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:27,770 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:16:27,770 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:16:27,770 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 36 states. [2019-01-07 14:16:27,771 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 36 states to 36 states and 127 transitions. [2019-01-07 14:16:27,771 INFO L78 Accepts]: Start accepts. Automaton has 36 states and 127 transitions. Word has length 4 [2019-01-07 14:16:27,771 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:16:27,771 INFO L480 AbstractCegarLoop]: Abstraction has 36 states and 127 transitions. [2019-01-07 14:16:27,772 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-01-07 14:16:27,772 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 127 transitions. [2019-01-07 14:16:27,772 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 14:16:27,772 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:16:27,772 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 14:16:27,772 INFO L423 AbstractCegarLoop]: === Iteration 14 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:16:27,773 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:27,773 INFO L82 PathProgramCache]: Analyzing trace with hash 29112214, now seen corresponding path program 1 times [2019-01-07 14:16:27,773 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:16:27,774 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:27,774 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:27,774 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:27,774 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:16:27,780 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:27,950 INFO L273 TraceCheckUtils]: 0: Hoare triple {2289#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2291#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 14:16:27,952 INFO L273 TraceCheckUtils]: 1: Hoare triple {2291#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2292#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-07 14:16:27,953 INFO L273 TraceCheckUtils]: 2: Hoare triple {2292#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {2292#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-07 14:16:27,954 INFO L273 TraceCheckUtils]: 3: Hoare triple {2292#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} assume #memory_int[main_p1] >= 0; {2293#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:27,955 INFO L273 TraceCheckUtils]: 4: Hoare triple {2293#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {2290#false} is VALID [2019-01-07 14:16:27,955 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 14:16:27,956 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:27,956 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:16:27,956 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-07 14:16:27,956 INFO L207 CegarAbsIntRunner]: [0], [6], [16], [20], [21] [2019-01-07 14:16:27,959 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:16:27,959 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:16:27,982 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:16:27,982 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 3. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-07 14:16:27,982 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:27,982 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:16:27,983 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:27,983 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 13 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 13 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:16:27,994 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:27,994 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:16:28,006 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:28,026 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:28,027 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:16:28,112 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:16:28,125 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:28,126 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:16:28,139 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:28,141 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:28,142 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:16:28,160 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:28,161 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:28,162 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:28,164 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:16:28,173 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:28,212 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:28,223 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:28,234 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:28,251 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:28,251 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 14:16:28,259 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:28,259 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_65|, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_65| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:16:28,259 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:16:28,315 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:28,317 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:28,318 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:28,319 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:28,320 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:28,322 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:28,323 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:28,324 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 14:16:28,329 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:28,363 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:28,363 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 14:16:30,369 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:30,370 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_66|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_66| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (select |v_#memory_int_66| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_66| ULTIMATE.start_main_p3) 0) (= (store |v_#memory_int_66| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_66| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:16:30,370 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:16:30,443 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:30,444 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:30,445 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:30,446 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:30,448 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:30,449 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:30,450 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:30,451 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:30,452 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:30,454 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 59 [2019-01-07 14:16:30,466 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:30,500 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:30,500 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-07 14:16:30,514 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:30,514 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_67|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_67| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= (select |v_#memory_int_67| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_67| ULTIMATE.start_main_p2) 0) (= (store |v_#memory_int_67| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= (+ (select |v_#memory_int_67| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:16:30,515 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:16:30,567 INFO L273 TraceCheckUtils]: 0: Hoare triple {2289#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2297#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:16:30,571 INFO L273 TraceCheckUtils]: 1: Hoare triple {2297#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2301#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-07 14:16:30,572 INFO L273 TraceCheckUtils]: 2: Hoare triple {2301#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {2305#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-07 14:16:30,577 INFO L273 TraceCheckUtils]: 3: Hoare triple {2305#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume #memory_int[main_p1] >= 0; {2305#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-07 14:16:30,577 INFO L273 TraceCheckUtils]: 4: Hoare triple {2305#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume !(#memory_int[main_p2] <= 0); {2290#false} is VALID [2019-01-07 14:16:30,578 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:30,578 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:16:30,680 INFO L273 TraceCheckUtils]: 4: Hoare triple {2312#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {2290#false} is VALID [2019-01-07 14:16:30,682 INFO L273 TraceCheckUtils]: 3: Hoare triple {2312#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {2312#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:30,682 INFO L273 TraceCheckUtils]: 2: Hoare triple {2319#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {2312#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:30,684 INFO L273 TraceCheckUtils]: 1: Hoare triple {2323#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2319#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:30,686 INFO L273 TraceCheckUtils]: 0: Hoare triple {2289#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2323#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:30,686 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:30,707 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:16:30,707 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 14:16:30,707 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:16:30,707 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 14:16:30,707 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:16:30,708 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 14:16:30,730 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:30,730 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 14:16:30,731 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 14:16:30,731 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-07 14:16:30,731 INFO L87 Difference]: Start difference. First operand 36 states and 127 transitions. Second operand 8 states. [2019-01-07 14:16:31,644 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:31,644 INFO L93 Difference]: Finished difference Result 56 states and 161 transitions. [2019-01-07 14:16:31,644 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-07 14:16:31,644 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 14:16:31,644 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:16:31,644 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 14:16:31,645 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 44 transitions. [2019-01-07 14:16:31,645 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 14:16:31,646 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 44 transitions. [2019-01-07 14:16:31,646 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 44 transitions. [2019-01-07 14:16:31,710 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 44 edges. 44 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:31,711 INFO L225 Difference]: With dead ends: 56 [2019-01-07 14:16:31,711 INFO L226 Difference]: Without dead ends: 55 [2019-01-07 14:16:31,712 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 2 SyntacticMatches, 1 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-01-07 14:16:31,712 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 55 states. [2019-01-07 14:16:32,119 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 55 to 39. [2019-01-07 14:16:32,120 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:16:32,120 INFO L82 GeneralOperation]: Start isEquivalent. First operand 55 states. Second operand 39 states. [2019-01-07 14:16:32,120 INFO L74 IsIncluded]: Start isIncluded. First operand 55 states. Second operand 39 states. [2019-01-07 14:16:32,120 INFO L87 Difference]: Start difference. First operand 55 states. Second operand 39 states. [2019-01-07 14:16:32,122 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:32,122 INFO L93 Difference]: Finished difference Result 55 states and 159 transitions. [2019-01-07 14:16:32,122 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 159 transitions. [2019-01-07 14:16:32,122 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:32,122 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:32,123 INFO L74 IsIncluded]: Start isIncluded. First operand 39 states. Second operand 55 states. [2019-01-07 14:16:32,123 INFO L87 Difference]: Start difference. First operand 39 states. Second operand 55 states. [2019-01-07 14:16:32,125 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:32,125 INFO L93 Difference]: Finished difference Result 55 states and 159 transitions. [2019-01-07 14:16:32,125 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 159 transitions. [2019-01-07 14:16:32,125 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:32,125 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:32,126 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:16:32,126 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:16:32,126 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 39 states. [2019-01-07 14:16:32,128 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 39 states to 39 states and 142 transitions. [2019-01-07 14:16:32,128 INFO L78 Accepts]: Start accepts. Automaton has 39 states and 142 transitions. Word has length 5 [2019-01-07 14:16:32,128 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:16:32,128 INFO L480 AbstractCegarLoop]: Abstraction has 39 states and 142 transitions. [2019-01-07 14:16:32,128 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 14:16:32,128 INFO L276 IsEmpty]: Start isEmpty. Operand 39 states and 142 transitions. [2019-01-07 14:16:32,129 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 14:16:32,129 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:16:32,129 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 14:16:32,129 INFO L423 AbstractCegarLoop]: === Iteration 15 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:16:32,129 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:32,130 INFO L82 PathProgramCache]: Analyzing trace with hash 29111902, now seen corresponding path program 1 times [2019-01-07 14:16:32,130 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:16:32,131 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:32,131 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:32,131 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:32,131 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:16:32,137 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:32,384 INFO L273 TraceCheckUtils]: 0: Hoare triple {2588#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2590#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (<= (+ ULTIMATE.start_main_p1 3) ULTIMATE.start_main_p4) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-07 14:16:32,385 INFO L273 TraceCheckUtils]: 1: Hoare triple {2590#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (<= (+ ULTIMATE.start_main_p1 3) ULTIMATE.start_main_p4) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2591#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} is VALID [2019-01-07 14:16:32,386 INFO L273 TraceCheckUtils]: 2: Hoare triple {2591#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {2592#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} is VALID [2019-01-07 14:16:32,386 INFO L273 TraceCheckUtils]: 3: Hoare triple {2592#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {2593#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:16:32,387 INFO L273 TraceCheckUtils]: 4: Hoare triple {2593#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {2589#false} is VALID [2019-01-07 14:16:32,388 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:32,388 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:32,388 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:16:32,389 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-07 14:16:32,389 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [16], [19] [2019-01-07 14:16:32,390 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:16:32,390 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:16:32,421 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:16:32,421 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 3. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-07 14:16:32,421 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:32,422 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:16:32,422 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:32,422 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 14 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 14 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:16:32,433 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:32,433 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:16:32,437 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:32,441 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:32,441 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:16:32,485 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:16:32,496 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:32,497 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:16:32,514 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:32,515 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:32,516 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:16:32,547 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:32,548 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:32,549 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:32,551 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:16:32,557 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:32,580 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:32,594 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:32,607 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:32,627 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:32,627 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 14:16:32,635 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:32,635 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_70|, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= |#memory_int| (store (store (store (store |v_#memory_int_70| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0))) [2019-01-07 14:16:32,635 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:16:32,708 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:32,710 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:32,711 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:32,713 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:32,714 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:32,718 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:32,719 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:32,720 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 14:16:32,735 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:32,772 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:32,773 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 14:16:32,831 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:32,832 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_71|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_71| ULTIMATE.start_main_p4))) (and (= .cse0 0) (= 0 (select |v_#memory_int_71| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_71| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 (select |v_#memory_int_71| ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_71| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:16:32,832 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:16:33,034 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:33,036 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:33,037 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:33,038 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:33,040 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:33,041 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:33,042 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:33,043 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:33,045 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:33,046 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 59 [2019-01-07 14:16:33,055 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:33,094 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:33,094 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-07 14:16:33,100 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:33,101 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_72|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_72| ULTIMATE.start_main_p1))) (and (= (store |v_#memory_int_72| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_72| ULTIMATE.start_main_p3)) (= (+ (select |v_#memory_int_72| ULTIMATE.start_main_p4) 1) 0) (= 0 .cse0) (= 0 (select |v_#memory_int_72| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:16:33,101 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:16:33,202 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:33,204 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:33,205 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:33,206 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:33,208 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:33,209 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:33,210 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:33,212 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:33,212 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 14:16:33,213 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:33,215 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 72 [2019-01-07 14:16:33,222 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:33,267 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:33,268 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:30 [2019-01-07 14:16:33,275 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:33,275 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_73|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_73| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_73| ULTIMATE.start_main_p4) 1)) (= (select |v_#memory_int_73| ULTIMATE.start_main_p1) 1) (= (store |v_#memory_int_73| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= 0 (select |v_#memory_int_73| ULTIMATE.start_main_p3)) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:16:33,275 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:16:33,316 INFO L273 TraceCheckUtils]: 0: Hoare triple {2588#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2597#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:16:33,318 INFO L273 TraceCheckUtils]: 1: Hoare triple {2597#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2601#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-07 14:16:33,320 INFO L273 TraceCheckUtils]: 2: Hoare triple {2601#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {2605#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-07 14:16:33,323 INFO L273 TraceCheckUtils]: 3: Hoare triple {2605#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {2609#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-07 14:16:33,324 INFO L273 TraceCheckUtils]: 4: Hoare triple {2609#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {2589#false} is VALID [2019-01-07 14:16:33,325 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:33,325 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:16:33,424 INFO L273 TraceCheckUtils]: 4: Hoare triple {2613#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {2589#false} is VALID [2019-01-07 14:16:33,425 INFO L273 TraceCheckUtils]: 3: Hoare triple {2617#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {2613#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:16:33,427 INFO L273 TraceCheckUtils]: 2: Hoare triple {2621#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {2617#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:16:33,429 INFO L273 TraceCheckUtils]: 1: Hoare triple {2625#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2621#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:16:33,431 INFO L273 TraceCheckUtils]: 0: Hoare triple {2588#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2625#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:16:33,431 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 3 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:33,450 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:16:33,450 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-07 14:16:33,450 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:16:33,451 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-07 14:16:33,451 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:16:33,451 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 14:16:33,465 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:33,465 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 14:16:33,466 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 14:16:33,466 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=70, Invalid=112, Unknown=0, NotChecked=0, Total=182 [2019-01-07 14:16:33,466 INFO L87 Difference]: Start difference. First operand 39 states and 142 transitions. Second operand 10 states. [2019-01-07 14:16:34,870 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:34,871 INFO L93 Difference]: Finished difference Result 76 states and 212 transitions. [2019-01-07 14:16:34,871 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-07 14:16:34,871 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-07 14:16:34,871 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:16:34,872 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 14:16:34,872 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 64 transitions. [2019-01-07 14:16:34,872 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 14:16:34,873 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 64 transitions. [2019-01-07 14:16:34,873 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 64 transitions. [2019-01-07 14:16:34,971 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 64 edges. 64 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:34,973 INFO L225 Difference]: With dead ends: 76 [2019-01-07 14:16:34,973 INFO L226 Difference]: Without dead ends: 75 [2019-01-07 14:16:34,974 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 59 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=88, Invalid=152, Unknown=0, NotChecked=0, Total=240 [2019-01-07 14:16:34,974 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 75 states. [2019-01-07 14:16:35,202 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 75 to 41. [2019-01-07 14:16:35,203 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:16:35,203 INFO L82 GeneralOperation]: Start isEquivalent. First operand 75 states. Second operand 41 states. [2019-01-07 14:16:35,203 INFO L74 IsIncluded]: Start isIncluded. First operand 75 states. Second operand 41 states. [2019-01-07 14:16:35,203 INFO L87 Difference]: Start difference. First operand 75 states. Second operand 41 states. [2019-01-07 14:16:35,206 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:35,207 INFO L93 Difference]: Finished difference Result 75 states and 209 transitions. [2019-01-07 14:16:35,207 INFO L276 IsEmpty]: Start isEmpty. Operand 75 states and 209 transitions. [2019-01-07 14:16:35,207 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:35,207 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:35,207 INFO L74 IsIncluded]: Start isIncluded. First operand 41 states. Second operand 75 states. [2019-01-07 14:16:35,208 INFO L87 Difference]: Start difference. First operand 41 states. Second operand 75 states. [2019-01-07 14:16:35,210 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:35,210 INFO L93 Difference]: Finished difference Result 75 states and 209 transitions. [2019-01-07 14:16:35,210 INFO L276 IsEmpty]: Start isEmpty. Operand 75 states and 209 transitions. [2019-01-07 14:16:35,211 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:35,211 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:35,211 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:16:35,211 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:16:35,211 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 41 states. [2019-01-07 14:16:35,212 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 41 states to 41 states and 152 transitions. [2019-01-07 14:16:35,213 INFO L78 Accepts]: Start accepts. Automaton has 41 states and 152 transitions. Word has length 5 [2019-01-07 14:16:35,213 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:16:35,213 INFO L480 AbstractCegarLoop]: Abstraction has 41 states and 152 transitions. [2019-01-07 14:16:35,213 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 14:16:35,213 INFO L276 IsEmpty]: Start isEmpty. Operand 41 states and 152 transitions. [2019-01-07 14:16:35,213 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 14:16:35,214 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:16:35,214 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 14:16:35,214 INFO L423 AbstractCegarLoop]: === Iteration 16 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:16:35,214 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:35,214 INFO L82 PathProgramCache]: Analyzing trace with hash 29115870, now seen corresponding path program 1 times [2019-01-07 14:16:35,215 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:16:35,215 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:35,215 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:35,215 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:35,216 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:16:35,222 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:35,772 INFO L273 TraceCheckUtils]: 0: Hoare triple {2962#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2964#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:16:35,773 INFO L273 TraceCheckUtils]: 1: Hoare triple {2964#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2965#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-07 14:16:35,774 INFO L273 TraceCheckUtils]: 2: Hoare triple {2965#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {2966#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:16:35,774 INFO L273 TraceCheckUtils]: 3: Hoare triple {2966#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {2967#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-07 14:16:35,776 INFO L273 TraceCheckUtils]: 4: Hoare triple {2967#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {2963#false} is VALID [2019-01-07 14:16:35,776 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:35,776 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:35,777 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:16:35,777 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-07 14:16:35,777 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [16], [19] [2019-01-07 14:16:35,778 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:16:35,778 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:16:35,793 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:16:35,793 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 3. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-07 14:16:35,793 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:35,793 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:16:35,793 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:35,793 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 15 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 15 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:16:35,803 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:35,803 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:16:35,807 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:35,812 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:35,812 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:16:35,835 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:16:35,845 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:35,845 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:16:35,869 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:35,872 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:35,872 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:16:35,917 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:35,919 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:35,922 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:35,922 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:16:35,926 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:35,966 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:35,981 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:36,000 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:36,027 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:36,027 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-07 14:16:36,030 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:36,031 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_77|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_77| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:16:36,031 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:16:36,109 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:36,110 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:36,112 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:36,113 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:36,114 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:36,115 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:36,116 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:36,117 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 14:16:36,122 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:36,153 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:36,154 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-07 14:16:36,192 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:36,192 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_78|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_78| ULTIMATE.start_main_p4))) (and (= (store |v_#memory_int_78| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_78| ULTIMATE.start_main_p2) 0) (= .cse0 0) (= (select |v_#memory_int_78| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_78| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:16:36,192 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:16:36,554 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:36,559 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:36,560 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:36,561 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:36,561 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:36,562 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:36,564 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:36,564 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 14:16:36,565 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 60 [2019-01-07 14:16:36,576 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:36,607 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:36,607 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:30 [2019-01-07 14:16:36,630 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:36,630 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_79|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_79| ULTIMATE.start_main_p2))) (and (= |#memory_int| (store |v_#memory_int_79| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_79| ULTIMATE.start_main_p4) 1)) (= (select |v_#memory_int_79| ULTIMATE.start_main_p1) 0) (= .cse0 0) (= (select |v_#memory_int_79| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:16:36,630 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:16:36,693 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:36,694 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:36,696 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:36,697 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:36,698 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:36,700 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:36,701 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:36,702 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:36,703 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:36,704 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 69 [2019-01-07 14:16:36,711 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:36,747 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:36,748 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:44, output treesize:34 [2019-01-07 14:16:36,762 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:36,762 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_80|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_80| ULTIMATE.start_main_p3))) (and (= 0 (+ (select |v_#memory_int_80| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= |#memory_int| (store |v_#memory_int_80| ULTIMATE.start_main_p3 (+ .cse0 1))) (= (+ (select |v_#memory_int_80| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |v_#memory_int_80| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:16:36,763 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-07 14:16:36,814 INFO L273 TraceCheckUtils]: 0: Hoare triple {2962#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2971#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:16:36,819 INFO L273 TraceCheckUtils]: 1: Hoare triple {2971#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2975#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:16:36,820 INFO L273 TraceCheckUtils]: 2: Hoare triple {2975#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {2979#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-07 14:16:36,822 INFO L273 TraceCheckUtils]: 3: Hoare triple {2979#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {2983#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-01-07 14:16:36,823 INFO L273 TraceCheckUtils]: 4: Hoare triple {2983#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} assume !(#memory_int[main_p1] >= 0); {2963#false} is VALID [2019-01-07 14:16:36,823 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:36,824 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:16:36,901 INFO L273 TraceCheckUtils]: 4: Hoare triple {2987#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {2963#false} is VALID [2019-01-07 14:16:36,903 INFO L273 TraceCheckUtils]: 3: Hoare triple {2991#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {2987#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:16:36,904 INFO L273 TraceCheckUtils]: 2: Hoare triple {2995#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {2991#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:16:36,906 INFO L273 TraceCheckUtils]: 1: Hoare triple {2999#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2995#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:16:36,909 INFO L273 TraceCheckUtils]: 0: Hoare triple {2962#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2999#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:16:36,909 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 1 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:36,929 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:16:36,929 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-07 14:16:36,929 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:16:36,929 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-07 14:16:36,929 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:16:36,930 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 14:16:36,944 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:36,945 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 14:16:36,945 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 14:16:36,945 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=67, Invalid=115, Unknown=0, NotChecked=0, Total=182 [2019-01-07 14:16:36,945 INFO L87 Difference]: Start difference. First operand 41 states and 152 transitions. Second operand 10 states. [2019-01-07 14:16:38,249 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:38,249 INFO L93 Difference]: Finished difference Result 67 states and 187 transitions. [2019-01-07 14:16:38,249 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-07 14:16:38,249 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-07 14:16:38,250 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:16:38,250 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 14:16:38,250 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 55 transitions. [2019-01-07 14:16:38,250 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 14:16:38,250 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 55 transitions. [2019-01-07 14:16:38,251 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 55 transitions. [2019-01-07 14:16:38,335 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 55 edges. 55 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:38,336 INFO L225 Difference]: With dead ends: 67 [2019-01-07 14:16:38,336 INFO L226 Difference]: Without dead ends: 65 [2019-01-07 14:16:38,337 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 15 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 62 ImplicationChecksByTransitivity, 0.8s TimeCoverageRelationStatistics Valid=100, Invalid=172, Unknown=0, NotChecked=0, Total=272 [2019-01-07 14:16:38,337 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 65 states. [2019-01-07 14:16:38,616 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 65 to 39. [2019-01-07 14:16:38,616 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:16:38,617 INFO L82 GeneralOperation]: Start isEquivalent. First operand 65 states. Second operand 39 states. [2019-01-07 14:16:38,617 INFO L74 IsIncluded]: Start isIncluded. First operand 65 states. Second operand 39 states. [2019-01-07 14:16:38,617 INFO L87 Difference]: Start difference. First operand 65 states. Second operand 39 states. [2019-01-07 14:16:38,619 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:38,619 INFO L93 Difference]: Finished difference Result 65 states and 184 transitions. [2019-01-07 14:16:38,620 INFO L276 IsEmpty]: Start isEmpty. Operand 65 states and 184 transitions. [2019-01-07 14:16:38,620 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:38,620 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:38,620 INFO L74 IsIncluded]: Start isIncluded. First operand 39 states. Second operand 65 states. [2019-01-07 14:16:38,620 INFO L87 Difference]: Start difference. First operand 39 states. Second operand 65 states. [2019-01-07 14:16:38,621 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:38,622 INFO L93 Difference]: Finished difference Result 65 states and 184 transitions. [2019-01-07 14:16:38,622 INFO L276 IsEmpty]: Start isEmpty. Operand 65 states and 184 transitions. [2019-01-07 14:16:38,622 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:38,622 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:38,622 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:16:38,622 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:16:38,622 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 39 states. [2019-01-07 14:16:38,623 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 39 states to 39 states and 142 transitions. [2019-01-07 14:16:38,623 INFO L78 Accepts]: Start accepts. Automaton has 39 states and 142 transitions. Word has length 5 [2019-01-07 14:16:38,623 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:16:38,624 INFO L480 AbstractCegarLoop]: Abstraction has 39 states and 142 transitions. [2019-01-07 14:16:38,624 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 14:16:38,624 INFO L276 IsEmpty]: Start isEmpty. Operand 39 states and 142 transitions. [2019-01-07 14:16:38,624 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 14:16:38,624 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:16:38,624 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 14:16:38,624 INFO L423 AbstractCegarLoop]: === Iteration 17 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:16:38,624 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:38,625 INFO L82 PathProgramCache]: Analyzing trace with hash 29119902, now seen corresponding path program 1 times [2019-01-07 14:16:38,625 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:16:38,625 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:38,625 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:38,625 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:38,625 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:16:38,630 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:38,757 INFO L273 TraceCheckUtils]: 0: Hoare triple {3301#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {3303#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 14:16:38,758 INFO L273 TraceCheckUtils]: 1: Hoare triple {3303#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {3304#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-07 14:16:38,758 INFO L273 TraceCheckUtils]: 2: Hoare triple {3304#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {3305#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:38,759 INFO L273 TraceCheckUtils]: 3: Hoare triple {3305#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {3305#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:38,759 INFO L273 TraceCheckUtils]: 4: Hoare triple {3305#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {3302#false} is VALID [2019-01-07 14:16:38,760 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:38,760 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:38,760 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:16:38,760 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-07 14:16:38,760 INFO L207 CegarAbsIntRunner]: [0], [14], [16], [20], [21] [2019-01-07 14:16:38,763 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:16:38,764 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:16:38,776 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:16:38,776 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 3. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-07 14:16:38,776 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:38,776 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:16:38,776 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:38,777 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 16 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 16 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:16:38,787 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:38,787 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:16:38,791 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:38,797 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:38,797 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:16:38,816 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:16:38,827 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-07 14:16:38,838 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:38,839 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 26 [2019-01-07 14:16:38,854 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:38,855 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:38,856 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 33 [2019-01-07 14:16:38,859 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:38,873 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:38,882 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:38,892 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:38,906 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:38,907 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:22, output treesize:27 [2019-01-07 14:16:38,912 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:38,912 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_84|, ULTIMATE.start_main_p1]. (and (= (store (store (store (store |v_#memory_int_84| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:16:38,912 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:16:38,968 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:38,969 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:38,970 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:38,971 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:38,972 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 28 [2019-01-07 14:16:38,976 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:38,994 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:38,995 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:22 [2019-01-07 14:16:41,009 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:41,009 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_85|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_85| ULTIMATE.start_main_p4))) (and (= |#memory_int| (store |v_#memory_int_85| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_85| ULTIMATE.start_main_p3) 0) (= .cse0 0) (= (select |v_#memory_int_85| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-07 14:16:41,009 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:16:41,088 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:41,090 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:41,092 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:41,092 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:41,094 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:41,097 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:41,097 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 28 treesize of output 50 [2019-01-07 14:16:41,101 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:41,142 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:41,142 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:34, output treesize:24 [2019-01-07 14:16:41,408 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:41,408 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_86|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_86| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (store |v_#memory_int_86| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= 0 (+ (select |v_#memory_int_86| ULTIMATE.start_main_p4) 1)) (= (select |v_#memory_int_86| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-07 14:16:41,408 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:16:41,452 INFO L273 TraceCheckUtils]: 0: Hoare triple {3301#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {3309#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:16:41,453 INFO L273 TraceCheckUtils]: 1: Hoare triple {3309#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {3313#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:16:41,454 INFO L273 TraceCheckUtils]: 2: Hoare triple {3313#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {3317#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-07 14:16:41,455 INFO L273 TraceCheckUtils]: 3: Hoare triple {3317#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume #memory_int[main_p1] >= 0; {3317#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-07 14:16:41,456 INFO L273 TraceCheckUtils]: 4: Hoare triple {3317#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume !(#memory_int[main_p2] <= 0); {3302#false} is VALID [2019-01-07 14:16:41,456 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:41,457 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:16:41,503 INFO L273 TraceCheckUtils]: 4: Hoare triple {3324#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {3302#false} is VALID [2019-01-07 14:16:41,504 INFO L273 TraceCheckUtils]: 3: Hoare triple {3324#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {3324#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:41,505 INFO L273 TraceCheckUtils]: 2: Hoare triple {3331#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {3324#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:41,506 INFO L273 TraceCheckUtils]: 1: Hoare triple {3335#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {3331#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:41,508 INFO L273 TraceCheckUtils]: 0: Hoare triple {3301#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {3335#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:41,509 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:41,529 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:16:41,530 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 14:16:41,530 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:16:41,530 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 14:16:41,530 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:16:41,530 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 14:16:41,541 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:41,542 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 14:16:41,542 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 14:16:41,542 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-07 14:16:41,542 INFO L87 Difference]: Start difference. First operand 39 states and 142 transitions. Second operand 8 states. [2019-01-07 14:16:42,491 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:42,491 INFO L93 Difference]: Finished difference Result 58 states and 171 transitions. [2019-01-07 14:16:42,491 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-07 14:16:42,491 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 14:16:42,492 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:16:42,492 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 14:16:42,492 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 44 transitions. [2019-01-07 14:16:42,492 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 14:16:42,492 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 44 transitions. [2019-01-07 14:16:42,493 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 44 transitions. [2019-01-07 14:16:42,632 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 44 edges. 44 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:42,633 INFO L225 Difference]: With dead ends: 58 [2019-01-07 14:16:42,634 INFO L226 Difference]: Without dead ends: 57 [2019-01-07 14:16:42,634 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 13 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-01-07 14:16:42,635 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 57 states. [2019-01-07 14:16:43,060 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 57 to 41. [2019-01-07 14:16:43,060 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:16:43,060 INFO L82 GeneralOperation]: Start isEquivalent. First operand 57 states. Second operand 41 states. [2019-01-07 14:16:43,061 INFO L74 IsIncluded]: Start isIncluded. First operand 57 states. Second operand 41 states. [2019-01-07 14:16:43,061 INFO L87 Difference]: Start difference. First operand 57 states. Second operand 41 states. [2019-01-07 14:16:43,063 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:43,063 INFO L93 Difference]: Finished difference Result 57 states and 169 transitions. [2019-01-07 14:16:43,063 INFO L276 IsEmpty]: Start isEmpty. Operand 57 states and 169 transitions. [2019-01-07 14:16:43,063 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:43,064 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:43,064 INFO L74 IsIncluded]: Start isIncluded. First operand 41 states. Second operand 57 states. [2019-01-07 14:16:43,064 INFO L87 Difference]: Start difference. First operand 41 states. Second operand 57 states. [2019-01-07 14:16:43,065 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:43,065 INFO L93 Difference]: Finished difference Result 57 states and 169 transitions. [2019-01-07 14:16:43,065 INFO L276 IsEmpty]: Start isEmpty. Operand 57 states and 169 transitions. [2019-01-07 14:16:43,066 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:43,066 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:43,066 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:16:43,066 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:16:43,066 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 41 states. [2019-01-07 14:16:43,067 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 41 states to 41 states and 152 transitions. [2019-01-07 14:16:43,068 INFO L78 Accepts]: Start accepts. Automaton has 41 states and 152 transitions. Word has length 5 [2019-01-07 14:16:43,068 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:16:43,068 INFO L480 AbstractCegarLoop]: Abstraction has 41 states and 152 transitions. [2019-01-07 14:16:43,068 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 14:16:43,068 INFO L276 IsEmpty]: Start isEmpty. Operand 41 states and 152 transitions. [2019-01-07 14:16:43,068 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 14:16:43,068 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:16:43,069 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 14:16:43,069 INFO L423 AbstractCegarLoop]: === Iteration 18 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:16:43,069 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:43,069 INFO L82 PathProgramCache]: Analyzing trace with hash 28823602, now seen corresponding path program 2 times [2019-01-07 14:16:43,069 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:16:43,070 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:43,070 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:43,070 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:43,070 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:16:43,075 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:43,285 INFO L273 TraceCheckUtils]: 0: Hoare triple {3612#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {3614#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 14:16:43,286 INFO L273 TraceCheckUtils]: 1: Hoare triple {3614#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {3615#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 14:16:43,287 INFO L273 TraceCheckUtils]: 2: Hoare triple {3615#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {3616#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-07 14:16:43,288 INFO L273 TraceCheckUtils]: 3: Hoare triple {3616#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {3617#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:16:43,293 INFO L273 TraceCheckUtils]: 4: Hoare triple {3617#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {3613#false} is VALID [2019-01-07 14:16:43,294 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:43,294 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:43,294 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:16:43,294 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-07 14:16:43,294 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-07 14:16:43,294 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:43,294 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 17 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 17 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:16:43,303 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-07 14:16:43,303 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-07 14:16:43,309 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-07 14:16:43,309 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-07 14:16:43,312 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:43,312 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:16:43,348 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:16:43,358 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:43,359 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:16:43,397 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:43,400 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:43,401 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:16:43,431 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:43,432 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:43,434 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:43,435 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:16:43,442 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:43,482 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:43,491 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:43,500 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:43,534 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:43,534 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 14:16:43,539 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:43,540 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_89|, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_89| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:16:43,540 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:16:43,582 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:43,584 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:43,585 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:43,586 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:43,587 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:43,588 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:43,589 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:43,590 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 14:16:43,594 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:43,625 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:43,625 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-07 14:16:43,638 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:43,638 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_90|, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_90| ULTIMATE.start_main_p1))) (and (= (store |v_#memory_int_90| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_90| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_90| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_90| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= .cse0 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:16:43,638 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:16:43,689 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:43,690 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:43,691 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:43,691 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:43,692 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:43,694 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:43,697 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:43,698 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:43,699 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:43,700 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 57 [2019-01-07 14:16:43,704 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:43,735 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:43,736 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 14:16:44,759 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:44,759 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_91|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_91| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_91| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_91| ULTIMATE.start_main_p1) 1) (= .cse0 0) (= (select |v_#memory_int_91| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_91| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:16:44,759 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:16:44,811 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:44,812 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:44,813 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:44,814 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:44,816 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:44,817 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:44,818 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:44,819 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:44,819 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 14:16:44,820 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:44,822 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 72 [2019-01-07 14:16:44,826 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:44,862 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:44,862 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:30 [2019-01-07 14:16:44,869 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:44,869 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_92|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_92| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_92| ULTIMATE.start_main_p3)) (= (select |v_#memory_int_92| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |v_#memory_int_92| ULTIMATE.start_main_p4) 1)) (= (store |v_#memory_int_92| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= .cse0 0))) [2019-01-07 14:16:44,869 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:16:44,897 INFO L273 TraceCheckUtils]: 0: Hoare triple {3612#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {3621#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:16:44,899 INFO L273 TraceCheckUtils]: 1: Hoare triple {3621#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {3625#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:16:44,901 INFO L273 TraceCheckUtils]: 2: Hoare triple {3625#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {3629#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-07 14:16:44,904 INFO L273 TraceCheckUtils]: 3: Hoare triple {3629#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {3633#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-07 14:16:44,905 INFO L273 TraceCheckUtils]: 4: Hoare triple {3633#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {3613#false} is VALID [2019-01-07 14:16:44,905 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:44,905 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:16:44,967 INFO L273 TraceCheckUtils]: 4: Hoare triple {3637#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {3613#false} is VALID [2019-01-07 14:16:44,968 INFO L273 TraceCheckUtils]: 3: Hoare triple {3641#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {3637#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:16:44,969 INFO L273 TraceCheckUtils]: 2: Hoare triple {3645#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {3641#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:16:44,971 INFO L273 TraceCheckUtils]: 1: Hoare triple {3649#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {3645#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:16:44,973 INFO L273 TraceCheckUtils]: 0: Hoare triple {3612#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {3649#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:16:44,974 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 2 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:44,994 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:16:44,994 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-07 14:16:44,994 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:16:44,995 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-07 14:16:44,995 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:16:44,995 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 14:16:45,011 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:45,011 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 14:16:45,012 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 14:16:45,012 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=70, Invalid=112, Unknown=0, NotChecked=0, Total=182 [2019-01-07 14:16:45,012 INFO L87 Difference]: Start difference. First operand 41 states and 152 transitions. Second operand 10 states. [2019-01-07 14:16:46,317 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:46,318 INFO L93 Difference]: Finished difference Result 71 states and 199 transitions. [2019-01-07 14:16:46,318 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-07 14:16:46,318 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-07 14:16:46,318 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:16:46,318 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 14:16:46,319 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 63 transitions. [2019-01-07 14:16:46,319 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 14:16:46,319 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 63 transitions. [2019-01-07 14:16:46,319 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 63 transitions. [2019-01-07 14:16:46,411 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 63 edges. 63 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:46,413 INFO L225 Difference]: With dead ends: 71 [2019-01-07 14:16:46,413 INFO L226 Difference]: Without dead ends: 70 [2019-01-07 14:16:46,414 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 56 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=90, Invalid=150, Unknown=0, NotChecked=0, Total=240 [2019-01-07 14:16:46,414 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 70 states. [2019-01-07 14:16:46,663 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 70 to 30. [2019-01-07 14:16:46,664 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:16:46,664 INFO L82 GeneralOperation]: Start isEquivalent. First operand 70 states. Second operand 30 states. [2019-01-07 14:16:46,664 INFO L74 IsIncluded]: Start isIncluded. First operand 70 states. Second operand 30 states. [2019-01-07 14:16:46,664 INFO L87 Difference]: Start difference. First operand 70 states. Second operand 30 states. [2019-01-07 14:16:46,666 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:46,666 INFO L93 Difference]: Finished difference Result 70 states and 196 transitions. [2019-01-07 14:16:46,666 INFO L276 IsEmpty]: Start isEmpty. Operand 70 states and 196 transitions. [2019-01-07 14:16:46,667 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:46,667 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:46,667 INFO L74 IsIncluded]: Start isIncluded. First operand 30 states. Second operand 70 states. [2019-01-07 14:16:46,667 INFO L87 Difference]: Start difference. First operand 30 states. Second operand 70 states. [2019-01-07 14:16:46,668 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:46,668 INFO L93 Difference]: Finished difference Result 70 states and 196 transitions. [2019-01-07 14:16:46,668 INFO L276 IsEmpty]: Start isEmpty. Operand 70 states and 196 transitions. [2019-01-07 14:16:46,669 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:46,669 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:46,669 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:16:46,669 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:16:46,669 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 30 states. [2019-01-07 14:16:46,670 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 30 states to 30 states and 97 transitions. [2019-01-07 14:16:46,670 INFO L78 Accepts]: Start accepts. Automaton has 30 states and 97 transitions. Word has length 5 [2019-01-07 14:16:46,670 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:16:46,670 INFO L480 AbstractCegarLoop]: Abstraction has 30 states and 97 transitions. [2019-01-07 14:16:46,670 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 14:16:46,670 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states and 97 transitions. [2019-01-07 14:16:46,670 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 14:16:46,671 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:16:46,671 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 14:16:46,671 INFO L423 AbstractCegarLoop]: === Iteration 19 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:16:46,671 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:46,671 INFO L82 PathProgramCache]: Analyzing trace with hash 28827822, now seen corresponding path program 1 times [2019-01-07 14:16:46,671 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:16:46,672 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:46,672 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-07 14:16:46,672 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:46,672 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:16:46,676 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:46,945 INFO L273 TraceCheckUtils]: 0: Hoare triple {3947#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {3949#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:16:46,946 INFO L273 TraceCheckUtils]: 1: Hoare triple {3949#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {3949#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:16:46,951 INFO L273 TraceCheckUtils]: 2: Hoare triple {3949#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} assume #memory_int[main_p1] >= 0; {3950#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-07 14:16:46,952 INFO L273 TraceCheckUtils]: 3: Hoare triple {3950#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p2] <= 0; {3950#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-07 14:16:46,952 INFO L273 TraceCheckUtils]: 4: Hoare triple {3950#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume !(#memory_int[main_p3] >= 0); {3948#false} is VALID [2019-01-07 14:16:46,953 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 14:16:46,953 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2019-01-07 14:16:46,953 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [] total 2 [2019-01-07 14:16:46,953 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-07 14:16:46,953 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 5 [2019-01-07 14:16:46,953 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:16:46,954 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-01-07 14:16:46,960 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 5 edges. 5 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:46,960 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-01-07 14:16:46,960 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-01-07 14:16:46,960 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=6, Invalid=6, Unknown=0, NotChecked=0, Total=12 [2019-01-07 14:16:46,960 INFO L87 Difference]: Start difference. First operand 30 states and 97 transitions. Second operand 4 states. [2019-01-07 14:16:47,607 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:47,607 INFO L93 Difference]: Finished difference Result 36 states and 106 transitions. [2019-01-07 14:16:47,607 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-01-07 14:16:47,607 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 5 [2019-01-07 14:16:47,608 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:16:47,608 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-07 14:16:47,608 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 21 transitions. [2019-01-07 14:16:47,608 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-07 14:16:47,609 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 21 transitions. [2019-01-07 14:16:47,609 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 21 transitions. [2019-01-07 14:16:47,630 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 21 edges. 21 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:47,631 INFO L225 Difference]: With dead ends: 36 [2019-01-07 14:16:47,631 INFO L226 Difference]: Without dead ends: 33 [2019-01-07 14:16:47,631 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 3 GetRequests, 0 SyntacticMatches, 1 SemanticMatches, 2 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=6, Invalid=6, Unknown=0, NotChecked=0, Total=12 [2019-01-07 14:16:47,632 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 33 states. [2019-01-07 14:16:47,907 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 33 to 29. [2019-01-07 14:16:47,907 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:16:47,907 INFO L82 GeneralOperation]: Start isEquivalent. First operand 33 states. Second operand 29 states. [2019-01-07 14:16:47,907 INFO L74 IsIncluded]: Start isIncluded. First operand 33 states. Second operand 29 states. [2019-01-07 14:16:47,907 INFO L87 Difference]: Start difference. First operand 33 states. Second operand 29 states. [2019-01-07 14:16:47,908 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:47,909 INFO L93 Difference]: Finished difference Result 33 states and 102 transitions. [2019-01-07 14:16:47,909 INFO L276 IsEmpty]: Start isEmpty. Operand 33 states and 102 transitions. [2019-01-07 14:16:47,909 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:47,909 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:47,910 INFO L74 IsIncluded]: Start isIncluded. First operand 29 states. Second operand 33 states. [2019-01-07 14:16:47,910 INFO L87 Difference]: Start difference. First operand 29 states. Second operand 33 states. [2019-01-07 14:16:47,910 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:47,911 INFO L93 Difference]: Finished difference Result 33 states and 102 transitions. [2019-01-07 14:16:47,911 INFO L276 IsEmpty]: Start isEmpty. Operand 33 states and 102 transitions. [2019-01-07 14:16:47,911 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:47,911 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:47,911 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:16:47,911 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:16:47,912 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 29 states. [2019-01-07 14:16:47,912 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 29 states to 29 states and 99 transitions. [2019-01-07 14:16:47,912 INFO L78 Accepts]: Start accepts. Automaton has 29 states and 99 transitions. Word has length 5 [2019-01-07 14:16:47,913 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:16:47,913 INFO L480 AbstractCegarLoop]: Abstraction has 29 states and 99 transitions. [2019-01-07 14:16:47,913 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-01-07 14:16:47,913 INFO L276 IsEmpty]: Start isEmpty. Operand 29 states and 99 transitions. [2019-01-07 14:16:47,913 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 14:16:47,913 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:16:47,913 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 14:16:47,914 INFO L423 AbstractCegarLoop]: === Iteration 20 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:16:47,914 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:47,914 INFO L82 PathProgramCache]: Analyzing trace with hash 28818148, now seen corresponding path program 1 times [2019-01-07 14:16:47,914 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:16:47,915 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:47,915 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:47,915 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:47,915 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:16:47,921 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:48,108 INFO L273 TraceCheckUtils]: 0: Hoare triple {4120#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {4122#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-07 14:16:48,109 INFO L273 TraceCheckUtils]: 1: Hoare triple {4122#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {4123#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:48,110 INFO L273 TraceCheckUtils]: 2: Hoare triple {4123#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {4124#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:48,110 INFO L273 TraceCheckUtils]: 3: Hoare triple {4124#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {4124#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:48,110 INFO L273 TraceCheckUtils]: 4: Hoare triple {4124#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {4121#false} is VALID [2019-01-07 14:16:48,110 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:48,111 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:48,111 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:16:48,111 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-07 14:16:48,111 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [20], [21] [2019-01-07 14:16:48,113 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:16:48,113 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:16:48,127 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:16:48,127 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 3. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-07 14:16:48,127 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:48,127 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:16:48,127 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:48,127 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 18 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 18 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:16:48,137 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:48,137 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:16:48,141 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:48,144 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:48,145 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:16:48,171 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:16:48,179 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:48,180 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:16:48,192 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:48,193 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:48,194 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:16:48,212 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:48,214 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:48,215 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:48,216 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:16:48,226 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:48,248 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:48,259 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:48,270 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:48,289 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:48,289 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-01-07 14:16:48,295 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:48,295 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_96|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_96| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:16:48,295 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:16:48,349 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:48,351 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:48,352 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:48,353 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:48,354 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:48,355 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:48,357 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:48,357 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 14:16:48,383 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:48,789 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:48,790 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-07 14:16:48,829 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:48,829 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_97|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_97| ULTIMATE.start_main_p1))) (and (= (select |v_#memory_int_97| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_97| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= (select |v_#memory_int_97| ULTIMATE.start_main_p3) 0) (= 0 .cse0) (= 0 (select |v_#memory_int_97| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:16:48,830 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:16:48,895 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:48,896 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:48,898 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:48,899 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:48,900 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:48,901 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:48,902 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:48,903 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:48,904 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:48,905 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 65 [2019-01-07 14:16:48,920 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:48,958 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:48,958 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-07 14:16:48,972 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:48,972 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_98|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_98| ULTIMATE.start_main_p2))) (and (= 0 (select |v_#memory_int_98| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_98| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= 0 .cse0) (= 0 (select |v_#memory_int_98| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_98| ULTIMATE.start_main_p1) 1))) [2019-01-07 14:16:48,972 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:16:49,054 INFO L273 TraceCheckUtils]: 0: Hoare triple {4120#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {4128#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:16:49,056 INFO L273 TraceCheckUtils]: 1: Hoare triple {4128#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {4132#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-07 14:16:49,057 INFO L273 TraceCheckUtils]: 2: Hoare triple {4132#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {4136#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-07 14:16:49,058 INFO L273 TraceCheckUtils]: 3: Hoare triple {4136#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p1] >= 0; {4136#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-07 14:16:49,059 INFO L273 TraceCheckUtils]: 4: Hoare triple {4136#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume !(#memory_int[main_p2] <= 0); {4121#false} is VALID [2019-01-07 14:16:49,059 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:49,060 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:16:49,088 INFO L273 TraceCheckUtils]: 4: Hoare triple {4124#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {4121#false} is VALID [2019-01-07 14:16:49,089 INFO L273 TraceCheckUtils]: 3: Hoare triple {4124#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {4124#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:49,090 INFO L273 TraceCheckUtils]: 2: Hoare triple {4149#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {4124#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:49,091 INFO L273 TraceCheckUtils]: 1: Hoare triple {4153#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {4149#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} is VALID [2019-01-07 14:16:49,093 INFO L273 TraceCheckUtils]: 0: Hoare triple {4120#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {4153#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1)} is VALID [2019-01-07 14:16:49,093 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:49,114 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:16:49,114 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 8 [2019-01-07 14:16:49,115 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:16:49,115 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 14:16:49,115 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:16:49,115 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 14:16:49,130 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:49,130 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 14:16:49,131 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 14:16:49,131 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=39, Invalid=51, Unknown=0, NotChecked=0, Total=90 [2019-01-07 14:16:49,131 INFO L87 Difference]: Start difference. First operand 29 states and 99 transitions. Second operand 8 states. [2019-01-07 14:16:50,122 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:50,123 INFO L93 Difference]: Finished difference Result 44 states and 125 transitions. [2019-01-07 14:16:50,123 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-07 14:16:50,123 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 14:16:50,123 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:16:50,123 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 14:16:50,124 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 45 transitions. [2019-01-07 14:16:50,124 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 14:16:50,125 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 45 transitions. [2019-01-07 14:16:50,125 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 45 transitions. [2019-01-07 14:16:50,183 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 45 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:50,184 INFO L225 Difference]: With dead ends: 44 [2019-01-07 14:16:50,184 INFO L226 Difference]: Without dead ends: 43 [2019-01-07 14:16:50,185 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 13 GetRequests, 4 SyntacticMatches, 0 SemanticMatches, 9 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 24 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=47, Invalid=63, Unknown=0, NotChecked=0, Total=110 [2019-01-07 14:16:50,185 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 43 states. [2019-01-07 14:16:50,648 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 43 to 32. [2019-01-07 14:16:50,649 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:16:50,649 INFO L82 GeneralOperation]: Start isEquivalent. First operand 43 states. Second operand 32 states. [2019-01-07 14:16:50,649 INFO L74 IsIncluded]: Start isIncluded. First operand 43 states. Second operand 32 states. [2019-01-07 14:16:50,649 INFO L87 Difference]: Start difference. First operand 43 states. Second operand 32 states. [2019-01-07 14:16:50,650 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:50,650 INFO L93 Difference]: Finished difference Result 43 states and 123 transitions. [2019-01-07 14:16:50,650 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 123 transitions. [2019-01-07 14:16:50,650 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:50,650 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:50,650 INFO L74 IsIncluded]: Start isIncluded. First operand 32 states. Second operand 43 states. [2019-01-07 14:16:50,651 INFO L87 Difference]: Start difference. First operand 32 states. Second operand 43 states. [2019-01-07 14:16:50,652 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:50,652 INFO L93 Difference]: Finished difference Result 43 states and 123 transitions. [2019-01-07 14:16:50,652 INFO L276 IsEmpty]: Start isEmpty. Operand 43 states and 123 transitions. [2019-01-07 14:16:50,652 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:50,653 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:50,653 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:16:50,653 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:16:50,653 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 32 states. [2019-01-07 14:16:50,653 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 32 states to 32 states and 114 transitions. [2019-01-07 14:16:50,654 INFO L78 Accepts]: Start accepts. Automaton has 32 states and 114 transitions. Word has length 5 [2019-01-07 14:16:50,654 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:16:50,654 INFO L480 AbstractCegarLoop]: Abstraction has 32 states and 114 transitions. [2019-01-07 14:16:50,654 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 14:16:50,654 INFO L276 IsEmpty]: Start isEmpty. Operand 32 states and 114 transitions. [2019-01-07 14:16:50,654 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 14:16:50,654 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:16:50,654 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 14:16:50,655 INFO L423 AbstractCegarLoop]: === Iteration 21 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:16:50,655 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:50,655 INFO L82 PathProgramCache]: Analyzing trace with hash 28821992, now seen corresponding path program 1 times [2019-01-07 14:16:50,655 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:16:50,656 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:50,656 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:50,656 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:50,656 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:16:50,661 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:50,825 INFO L273 TraceCheckUtils]: 0: Hoare triple {4362#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {4364#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-07 14:16:50,826 INFO L273 TraceCheckUtils]: 1: Hoare triple {4364#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {4364#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-07 14:16:50,827 INFO L273 TraceCheckUtils]: 2: Hoare triple {4364#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {4365#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-07 14:16:50,827 INFO L273 TraceCheckUtils]: 3: Hoare triple {4365#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} assume #memory_int[main_p1] >= 0; {4366#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:50,828 INFO L273 TraceCheckUtils]: 4: Hoare triple {4366#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {4363#false} is VALID [2019-01-07 14:16:50,829 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 14:16:50,829 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:50,829 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:16:50,829 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-07 14:16:50,829 INFO L207 CegarAbsIntRunner]: [0], [6], [14], [20], [21] [2019-01-07 14:16:50,830 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:16:50,830 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:16:50,838 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:16:50,838 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 3. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-07 14:16:50,838 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:50,839 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:16:50,839 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:50,839 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 19 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 19 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:16:50,847 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:50,848 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:16:50,853 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:50,856 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:50,856 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:16:50,892 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:16:50,908 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:50,909 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:16:50,923 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:50,925 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:50,926 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:16:50,950 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:50,952 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:50,953 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:50,954 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:16:50,960 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:50,980 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:50,993 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:51,004 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:51,023 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:51,024 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 14:16:51,030 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:51,030 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_101|, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_101| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:16:51,030 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:16:51,175 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:51,178 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:51,180 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:51,182 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:51,185 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:51,188 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:51,191 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:51,191 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 14:16:51,199 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:51,249 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:51,249 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 14:16:51,323 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:51,324 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_102|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_102| ULTIMATE.start_main_p1))) (and (= 0 (select |v_#memory_int_102| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_102| ULTIMATE.start_main_p1 (+ .cse0 1))) (= 0 .cse0) (= 0 (select |v_#memory_int_102| ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_102| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-07 14:16:51,324 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:16:51,436 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:51,438 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:51,440 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:51,442 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:51,445 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:51,447 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:51,449 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:51,452 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:51,452 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 14:16:51,453 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 59 [2019-01-07 14:16:51,460 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:51,505 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:51,505 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-07 14:16:51,519 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:51,520 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_103|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_103| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_103| ULTIMATE.start_main_p3 (+ .cse0 1))) (= 0 (select |v_#memory_int_103| ULTIMATE.start_main_p4)) (= 1 (select |v_#memory_int_103| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 (select |v_#memory_int_103| ULTIMATE.start_main_p2)) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-07 14:16:51,520 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:16:51,596 INFO L273 TraceCheckUtils]: 0: Hoare triple {4362#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {4370#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:16:51,599 INFO L273 TraceCheckUtils]: 1: Hoare triple {4370#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {4374#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:16:51,600 INFO L273 TraceCheckUtils]: 2: Hoare triple {4374#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {4378#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-07 14:16:51,601 INFO L273 TraceCheckUtils]: 3: Hoare triple {4378#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume #memory_int[main_p1] >= 0; {4378#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-07 14:16:51,602 INFO L273 TraceCheckUtils]: 4: Hoare triple {4378#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume !(#memory_int[main_p2] <= 0); {4363#false} is VALID [2019-01-07 14:16:51,603 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:51,603 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:16:51,657 INFO L273 TraceCheckUtils]: 4: Hoare triple {4385#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {4363#false} is VALID [2019-01-07 14:16:51,657 INFO L273 TraceCheckUtils]: 3: Hoare triple {4385#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {4385#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:51,659 INFO L273 TraceCheckUtils]: 2: Hoare triple {4392#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {4385#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:51,660 INFO L273 TraceCheckUtils]: 1: Hoare triple {4396#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {4392#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:51,662 INFO L273 TraceCheckUtils]: 0: Hoare triple {4362#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {4396#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:51,662 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:51,682 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:16:51,682 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 14:16:51,682 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:16:51,682 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 14:16:51,682 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:16:51,683 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 14:16:51,695 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:51,695 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 14:16:51,696 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 14:16:51,696 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=41, Invalid=69, Unknown=0, NotChecked=0, Total=110 [2019-01-07 14:16:51,696 INFO L87 Difference]: Start difference. First operand 32 states and 114 transitions. Second operand 8 states. [2019-01-07 14:16:53,074 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:53,074 INFO L93 Difference]: Finished difference Result 49 states and 142 transitions. [2019-01-07 14:16:53,074 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-07 14:16:53,075 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 14:16:53,075 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:16:53,075 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 14:16:53,075 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 40 transitions. [2019-01-07 14:16:53,076 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 14:16:53,076 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 40 transitions. [2019-01-07 14:16:53,076 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 40 transitions. [2019-01-07 14:16:53,135 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 40 edges. 40 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:53,136 INFO L225 Difference]: With dead ends: 49 [2019-01-07 14:16:53,136 INFO L226 Difference]: Without dead ends: 48 [2019-01-07 14:16:53,136 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 2 SyntacticMatches, 1 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 30 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=59, Invalid=97, Unknown=0, NotChecked=0, Total=156 [2019-01-07 14:16:53,137 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 48 states. [2019-01-07 14:16:53,924 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 48 to 34. [2019-01-07 14:16:53,924 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:16:53,924 INFO L82 GeneralOperation]: Start isEquivalent. First operand 48 states. Second operand 34 states. [2019-01-07 14:16:53,924 INFO L74 IsIncluded]: Start isIncluded. First operand 48 states. Second operand 34 states. [2019-01-07 14:16:53,924 INFO L87 Difference]: Start difference. First operand 48 states. Second operand 34 states. [2019-01-07 14:16:53,925 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:53,925 INFO L93 Difference]: Finished difference Result 48 states and 140 transitions. [2019-01-07 14:16:53,926 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 140 transitions. [2019-01-07 14:16:53,926 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:53,926 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:53,926 INFO L74 IsIncluded]: Start isIncluded. First operand 34 states. Second operand 48 states. [2019-01-07 14:16:53,926 INFO L87 Difference]: Start difference. First operand 34 states. Second operand 48 states. [2019-01-07 14:16:53,927 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:53,927 INFO L93 Difference]: Finished difference Result 48 states and 140 transitions. [2019-01-07 14:16:53,927 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 140 transitions. [2019-01-07 14:16:53,927 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:53,927 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:53,927 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:16:53,928 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:16:53,928 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 34 states. [2019-01-07 14:16:53,928 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 34 states to 34 states and 124 transitions. [2019-01-07 14:16:53,928 INFO L78 Accepts]: Start accepts. Automaton has 34 states and 124 transitions. Word has length 5 [2019-01-07 14:16:53,929 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:16:53,929 INFO L480 AbstractCegarLoop]: Abstraction has 34 states and 124 transitions. [2019-01-07 14:16:53,929 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 14:16:53,929 INFO L276 IsEmpty]: Start isEmpty. Operand 34 states and 124 transitions. [2019-01-07 14:16:53,929 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 14:16:53,929 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:16:53,929 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 14:16:53,930 INFO L423 AbstractCegarLoop]: === Iteration 22 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:16:53,930 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:53,930 INFO L82 PathProgramCache]: Analyzing trace with hash 28933468, now seen corresponding path program 2 times [2019-01-07 14:16:53,930 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:16:53,931 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:53,931 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:53,931 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:53,931 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:16:53,937 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:54,273 WARN L181 SmtUtils]: Spent 101.00 ms on a formula simplification. DAG size of input: 20 DAG size of output: 14 [2019-01-07 14:16:54,297 INFO L273 TraceCheckUtils]: 0: Hoare triple {4629#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {4631#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-07 14:16:54,298 INFO L273 TraceCheckUtils]: 1: Hoare triple {4631#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {4632#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-07 14:16:54,299 INFO L273 TraceCheckUtils]: 2: Hoare triple {4632#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {4633#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-01-07 14:16:54,300 INFO L273 TraceCheckUtils]: 3: Hoare triple {4633#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume #memory_int[main_p1] >= 0; {4633#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-01-07 14:16:54,301 INFO L273 TraceCheckUtils]: 4: Hoare triple {4633#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume !(#memory_int[main_p2] <= 0); {4630#false} is VALID [2019-01-07 14:16:54,301 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:54,301 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:54,302 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:16:54,302 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-07 14:16:54,302 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-07 14:16:54,302 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:54,302 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 20 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 20 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:16:54,312 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-07 14:16:54,312 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-07 14:16:54,324 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 2 check-sat command(s) [2019-01-07 14:16:54,325 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-07 14:16:54,327 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:54,328 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:16:54,354 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:16:54,360 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:54,361 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:16:54,370 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:54,372 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:54,373 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:16:54,385 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:54,386 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:54,388 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:54,388 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:16:54,391 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:54,410 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:54,420 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:54,429 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:54,446 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:54,446 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-01-07 14:16:54,452 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:54,452 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_106|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_106| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:16:54,452 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:16:54,954 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:54,956 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:54,958 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:54,959 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:54,960 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:54,961 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:54,962 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:54,964 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 14:16:54,973 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:55,002 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:55,002 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 14:16:55,009 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:55,009 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_107|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_107| ULTIMATE.start_main_p2))) (and (= 0 (select |v_#memory_int_107| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_107| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= 0 (select |v_#memory_int_107| ULTIMATE.start_main_p4)) (= .cse0 0) (= 0 (select |v_#memory_int_107| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:16:55,009 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:16:55,060 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:55,061 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:55,062 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:55,063 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:55,064 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:55,066 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:55,067 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:55,068 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:55,069 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:55,070 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 67 [2019-01-07 14:16:55,073 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:55,107 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:55,107 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-07 14:16:55,117 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:55,118 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_108|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_108| ULTIMATE.start_main_p1))) (and (= 0 .cse0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_108| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= 0 (+ (select |v_#memory_int_108| ULTIMATE.start_main_p2) 1)) (= 0 (select |v_#memory_int_108| ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_108| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:16:55,118 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-07 14:16:55,158 INFO L273 TraceCheckUtils]: 0: Hoare triple {4629#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {4637#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:16:55,161 INFO L273 TraceCheckUtils]: 1: Hoare triple {4637#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {4641#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:16:55,163 INFO L273 TraceCheckUtils]: 2: Hoare triple {4641#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {4645#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-07 14:16:55,164 INFO L273 TraceCheckUtils]: 3: Hoare triple {4645#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume #memory_int[main_p1] >= 0; {4645#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-07 14:16:55,164 INFO L273 TraceCheckUtils]: 4: Hoare triple {4645#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume !(#memory_int[main_p2] <= 0); {4630#false} is VALID [2019-01-07 14:16:55,165 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:55,165 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:16:55,199 INFO L273 TraceCheckUtils]: 4: Hoare triple {4652#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {4630#false} is VALID [2019-01-07 14:16:55,199 INFO L273 TraceCheckUtils]: 3: Hoare triple {4652#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {4652#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:55,203 INFO L273 TraceCheckUtils]: 2: Hoare triple {4659#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {4652#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:55,204 INFO L273 TraceCheckUtils]: 1: Hoare triple {4663#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {4659#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:55,205 INFO L273 TraceCheckUtils]: 0: Hoare triple {4629#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {4663#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:55,205 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:55,224 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:16:55,225 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 14:16:55,225 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:16:55,225 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 14:16:55,225 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:16:55,225 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 14:16:55,241 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:55,241 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 14:16:55,241 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 14:16:55,242 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-01-07 14:16:55,242 INFO L87 Difference]: Start difference. First operand 34 states and 124 transitions. Second operand 8 states. [2019-01-07 14:16:56,681 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:56,682 INFO L93 Difference]: Finished difference Result 58 states and 161 transitions. [2019-01-07 14:16:56,682 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-07 14:16:56,682 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 14:16:56,682 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:16:56,682 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 14:16:56,683 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 52 transitions. [2019-01-07 14:16:56,683 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 14:16:56,683 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 52 transitions. [2019-01-07 14:16:56,683 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 52 transitions. [2019-01-07 14:16:56,752 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 52 edges. 52 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:56,754 INFO L225 Difference]: With dead ends: 58 [2019-01-07 14:16:56,754 INFO L226 Difference]: Without dead ends: 57 [2019-01-07 14:16:56,755 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 13 GetRequests, 3 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 28 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=53, Invalid=79, Unknown=0, NotChecked=0, Total=132 [2019-01-07 14:16:56,755 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 57 states. [2019-01-07 14:16:57,178 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 57 to 36. [2019-01-07 14:16:57,178 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:16:57,178 INFO L82 GeneralOperation]: Start isEquivalent. First operand 57 states. Second operand 36 states. [2019-01-07 14:16:57,179 INFO L74 IsIncluded]: Start isIncluded. First operand 57 states. Second operand 36 states. [2019-01-07 14:16:57,179 INFO L87 Difference]: Start difference. First operand 57 states. Second operand 36 states. [2019-01-07 14:16:57,181 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:57,181 INFO L93 Difference]: Finished difference Result 57 states and 159 transitions. [2019-01-07 14:16:57,181 INFO L276 IsEmpty]: Start isEmpty. Operand 57 states and 159 transitions. [2019-01-07 14:16:57,181 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:57,181 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:57,182 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 57 states. [2019-01-07 14:16:57,182 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 57 states. [2019-01-07 14:16:57,183 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:57,183 INFO L93 Difference]: Finished difference Result 57 states and 159 transitions. [2019-01-07 14:16:57,183 INFO L276 IsEmpty]: Start isEmpty. Operand 57 states and 159 transitions. [2019-01-07 14:16:57,183 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:57,184 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:57,184 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:16:57,184 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:16:57,184 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 36 states. [2019-01-07 14:16:57,185 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 36 states to 36 states and 134 transitions. [2019-01-07 14:16:57,185 INFO L78 Accepts]: Start accepts. Automaton has 36 states and 134 transitions. Word has length 5 [2019-01-07 14:16:57,185 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:16:57,185 INFO L480 AbstractCegarLoop]: Abstraction has 36 states and 134 transitions. [2019-01-07 14:16:57,185 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 14:16:57,185 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 134 transitions. [2019-01-07 14:16:57,185 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 14:16:57,186 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:16:57,186 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 14:16:57,186 INFO L423 AbstractCegarLoop]: === Iteration 23 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:16:57,186 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:57,186 INFO L82 PathProgramCache]: Analyzing trace with hash 28941156, now seen corresponding path program 1 times [2019-01-07 14:16:57,186 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:16:57,187 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:57,187 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-07 14:16:57,187 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:57,187 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:16:57,190 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:57,335 INFO L273 TraceCheckUtils]: 0: Hoare triple {4928#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {4930#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-07 14:16:57,336 INFO L273 TraceCheckUtils]: 1: Hoare triple {4930#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {4931#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-07 14:16:57,340 INFO L273 TraceCheckUtils]: 2: Hoare triple {4931#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {4932#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-01-07 14:16:57,342 INFO L273 TraceCheckUtils]: 3: Hoare triple {4932#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume #memory_int[main_p1] >= 0; {4932#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-01-07 14:16:57,342 INFO L273 TraceCheckUtils]: 4: Hoare triple {4932#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume !(#memory_int[main_p2] <= 0); {4929#false} is VALID [2019-01-07 14:16:57,343 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:57,343 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:57,343 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:16:57,343 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-07 14:16:57,343 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [20], [21] [2019-01-07 14:16:57,344 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:16:57,344 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:16:57,390 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:16:57,390 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 3. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-07 14:16:57,390 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:57,390 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:16:57,390 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:57,391 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 21 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 21 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:16:57,399 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:57,399 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:16:57,403 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:57,406 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:57,406 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:16:57,421 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:16:57,429 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-07 14:16:57,439 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:57,440 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 26 [2019-01-07 14:16:57,455 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:57,456 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:57,457 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 33 [2019-01-07 14:16:57,461 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:57,476 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:57,485 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:57,495 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:57,510 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:57,511 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:22, output treesize:27 [2019-01-07 14:16:57,514 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:57,515 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_111|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_111| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:16:57,515 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:16:57,572 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:57,573 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:57,575 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:57,576 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:57,577 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 34 [2019-01-07 14:16:57,580 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:57,600 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:57,600 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:22 [2019-01-07 14:16:57,611 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:57,611 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_112|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_112| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (select |v_#memory_int_112| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_112| ULTIMATE.start_main_p3) 0) (= |#memory_int| (store |v_#memory_int_112| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-07 14:16:57,611 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:16:57,657 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:57,659 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:57,660 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:57,661 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:57,662 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:57,663 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:57,664 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 28 treesize of output 50 [2019-01-07 14:16:57,667 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:57,692 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:57,692 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:34, output treesize:24 [2019-01-07 14:16:57,698 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:57,698 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_113|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_113| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_113| ULTIMATE.start_main_p2) 1)) (= (store |v_#memory_int_113| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= .cse0 0) (= (select |v_#memory_int_113| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-07 14:16:57,699 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-07 14:16:57,751 INFO L273 TraceCheckUtils]: 0: Hoare triple {4928#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {4936#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:16:57,752 INFO L273 TraceCheckUtils]: 1: Hoare triple {4936#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {4940#(and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:16:57,753 INFO L273 TraceCheckUtils]: 2: Hoare triple {4940#(and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {4944#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-07 14:16:57,754 INFO L273 TraceCheckUtils]: 3: Hoare triple {4944#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume #memory_int[main_p1] >= 0; {4944#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-07 14:16:57,754 INFO L273 TraceCheckUtils]: 4: Hoare triple {4944#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume !(#memory_int[main_p2] <= 0); {4929#false} is VALID [2019-01-07 14:16:57,755 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:57,755 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:16:57,798 INFO L273 TraceCheckUtils]: 4: Hoare triple {4951#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {4929#false} is VALID [2019-01-07 14:16:57,798 INFO L273 TraceCheckUtils]: 3: Hoare triple {4951#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {4951#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:57,799 INFO L273 TraceCheckUtils]: 2: Hoare triple {4958#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {4951#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:57,801 INFO L273 TraceCheckUtils]: 1: Hoare triple {4962#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {4958#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:57,803 INFO L273 TraceCheckUtils]: 0: Hoare triple {4928#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {4962#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:16:57,803 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:57,823 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:16:57,823 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 14:16:57,823 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:16:57,824 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 14:16:57,824 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:16:57,824 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 14:16:57,838 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:57,838 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 14:16:57,838 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 14:16:57,838 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-01-07 14:16:57,839 INFO L87 Difference]: Start difference. First operand 36 states and 134 transitions. Second operand 8 states. [2019-01-07 14:16:58,860 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:58,860 INFO L93 Difference]: Finished difference Result 59 states and 162 transitions. [2019-01-07 14:16:58,860 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-07 14:16:58,860 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-01-07 14:16:58,861 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:16:58,861 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 14:16:58,861 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 53 transitions. [2019-01-07 14:16:58,861 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 14:16:58,862 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 53 transitions. [2019-01-07 14:16:58,862 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 53 transitions. [2019-01-07 14:16:58,930 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 53 edges. 53 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:58,932 INFO L225 Difference]: With dead ends: 59 [2019-01-07 14:16:58,932 INFO L226 Difference]: Without dead ends: 58 [2019-01-07 14:16:58,932 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 12 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 28 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=53, Invalid=79, Unknown=0, NotChecked=0, Total=132 [2019-01-07 14:16:58,933 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 58 states. [2019-01-07 14:16:59,513 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 58 to 37. [2019-01-07 14:16:59,513 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:16:59,513 INFO L82 GeneralOperation]: Start isEquivalent. First operand 58 states. Second operand 37 states. [2019-01-07 14:16:59,514 INFO L74 IsIncluded]: Start isIncluded. First operand 58 states. Second operand 37 states. [2019-01-07 14:16:59,514 INFO L87 Difference]: Start difference. First operand 58 states. Second operand 37 states. [2019-01-07 14:16:59,516 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:59,516 INFO L93 Difference]: Finished difference Result 58 states and 160 transitions. [2019-01-07 14:16:59,516 INFO L276 IsEmpty]: Start isEmpty. Operand 58 states and 160 transitions. [2019-01-07 14:16:59,517 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:59,517 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:59,517 INFO L74 IsIncluded]: Start isIncluded. First operand 37 states. Second operand 58 states. [2019-01-07 14:16:59,517 INFO L87 Difference]: Start difference. First operand 37 states. Second operand 58 states. [2019-01-07 14:16:59,518 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:16:59,518 INFO L93 Difference]: Finished difference Result 58 states and 160 transitions. [2019-01-07 14:16:59,519 INFO L276 IsEmpty]: Start isEmpty. Operand 58 states and 160 transitions. [2019-01-07 14:16:59,519 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:16:59,519 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:16:59,519 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:16:59,519 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:16:59,519 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 37 states. [2019-01-07 14:16:59,520 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 37 states to 37 states and 139 transitions. [2019-01-07 14:16:59,520 INFO L78 Accepts]: Start accepts. Automaton has 37 states and 139 transitions. Word has length 5 [2019-01-07 14:16:59,520 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:16:59,520 INFO L480 AbstractCegarLoop]: Abstraction has 37 states and 139 transitions. [2019-01-07 14:16:59,520 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 14:16:59,520 INFO L276 IsEmpty]: Start isEmpty. Operand 37 states and 139 transitions. [2019-01-07 14:16:59,521 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 14:16:59,521 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:16:59,521 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 14:16:59,521 INFO L423 AbstractCegarLoop]: === Iteration 24 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:16:59,521 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:59,521 INFO L82 PathProgramCache]: Analyzing trace with hash 29066150, now seen corresponding path program 1 times [2019-01-07 14:16:59,521 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:16:59,522 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:59,522 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:59,522 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:16:59,522 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:16:59,525 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:59,574 INFO L273 TraceCheckUtils]: 0: Hoare triple {5232#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {5234#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-07 14:16:59,575 INFO L273 TraceCheckUtils]: 1: Hoare triple {5234#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {5235#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:16:59,575 INFO L273 TraceCheckUtils]: 2: Hoare triple {5235#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {5235#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:16:59,575 INFO L273 TraceCheckUtils]: 3: Hoare triple {5235#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {5235#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:16:59,576 INFO L273 TraceCheckUtils]: 4: Hoare triple {5235#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {5233#false} is VALID [2019-01-07 14:16:59,576 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:59,576 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:59,577 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:16:59,577 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-07 14:16:59,577 INFO L207 CegarAbsIntRunner]: [0], [14], [20], [22], [23] [2019-01-07 14:16:59,579 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:16:59,579 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:16:59,595 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:16:59,595 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 3. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-07 14:16:59,595 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:16:59,595 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:16:59,595 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:16:59,595 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 22 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 22 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:16:59,604 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:16:59,605 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:16:59,608 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:59,611 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:16:59,611 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:16:59,634 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:16:59,642 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-07 14:16:59,658 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-01-07 14:16:59,674 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:59,675 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 1 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 25 [2019-01-07 14:16:59,680 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:59,692 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:59,702 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:59,713 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:16:59,727 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:59,728 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 4 variables, input treesize:19, output treesize:24 [2019-01-07 14:16:59,733 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:59,733 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_116|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_116| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|)) [2019-01-07 14:16:59,733 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:16:59,777 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:59,778 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:16:59,779 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 21 [2019-01-07 14:16:59,781 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:16:59,792 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:16:59,792 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:24, output treesize:14 [2019-01-07 14:16:59,797 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:16:59,797 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_117|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_117| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_117| ULTIMATE.start_main_p4)) (= (store |v_#memory_int_117| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= 0 .cse0))) [2019-01-07 14:16:59,797 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:16:59,838 INFO L273 TraceCheckUtils]: 0: Hoare triple {5232#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {5239#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-07 14:16:59,839 INFO L273 TraceCheckUtils]: 1: Hoare triple {5239#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {5243#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-07 14:16:59,840 INFO L273 TraceCheckUtils]: 2: Hoare triple {5243#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p1] >= 0; {5243#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-07 14:16:59,841 INFO L273 TraceCheckUtils]: 3: Hoare triple {5243#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p2] <= 0; {5243#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-07 14:16:59,842 INFO L273 TraceCheckUtils]: 4: Hoare triple {5243#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume !(#memory_int[main_p3] >= 0); {5233#false} is VALID [2019-01-07 14:16:59,842 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:59,842 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:16:59,860 INFO L273 TraceCheckUtils]: 4: Hoare triple {5235#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {5233#false} is VALID [2019-01-07 14:16:59,861 INFO L273 TraceCheckUtils]: 3: Hoare triple {5235#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {5235#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:16:59,861 INFO L273 TraceCheckUtils]: 2: Hoare triple {5235#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {5235#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:16:59,862 INFO L273 TraceCheckUtils]: 1: Hoare triple {5262#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {5235#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:16:59,864 INFO L273 TraceCheckUtils]: 0: Hoare triple {5232#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {5262#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1))} is VALID [2019-01-07 14:16:59,865 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:16:59,885 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-01-07 14:16:59,885 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [2, 2] total 5 [2019-01-07 14:16:59,886 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-07 14:16:59,886 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 5 [2019-01-07 14:16:59,886 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:16:59,886 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-01-07 14:16:59,898 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 5 edges. 5 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:16:59,898 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-01-07 14:16:59,898 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-01-07 14:16:59,898 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=19, Invalid=23, Unknown=0, NotChecked=0, Total=42 [2019-01-07 14:16:59,899 INFO L87 Difference]: Start difference. First operand 37 states and 139 transitions. Second operand 4 states. [2019-01-07 14:17:01,429 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:17:01,429 INFO L93 Difference]: Finished difference Result 74 states and 262 transitions. [2019-01-07 14:17:01,429 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2019-01-07 14:17:01,429 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 5 [2019-01-07 14:17:01,429 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:17:01,429 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-07 14:17:01,430 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 32 transitions. [2019-01-07 14:17:01,430 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-01-07 14:17:01,430 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 32 transitions. [2019-01-07 14:17:01,430 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 32 transitions. [2019-01-07 14:17:01,478 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 32 edges. 32 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:17:01,480 INFO L225 Difference]: With dead ends: 74 [2019-01-07 14:17:01,480 INFO L226 Difference]: Without dead ends: 73 [2019-01-07 14:17:01,481 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 10 GetRequests, 5 SyntacticMatches, 0 SemanticMatches, 5 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 8 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=19, Invalid=23, Unknown=0, NotChecked=0, Total=42 [2019-01-07 14:17:01,481 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 73 states. [2019-01-07 14:17:03,022 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 73 to 59. [2019-01-07 14:17:03,022 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:17:03,022 INFO L82 GeneralOperation]: Start isEquivalent. First operand 73 states. Second operand 59 states. [2019-01-07 14:17:03,022 INFO L74 IsIncluded]: Start isIncluded. First operand 73 states. Second operand 59 states. [2019-01-07 14:17:03,022 INFO L87 Difference]: Start difference. First operand 73 states. Second operand 59 states. [2019-01-07 14:17:03,024 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:17:03,024 INFO L93 Difference]: Finished difference Result 73 states and 261 transitions. [2019-01-07 14:17:03,024 INFO L276 IsEmpty]: Start isEmpty. Operand 73 states and 261 transitions. [2019-01-07 14:17:03,024 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:17:03,024 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:17:03,025 INFO L74 IsIncluded]: Start isIncluded. First operand 59 states. Second operand 73 states. [2019-01-07 14:17:03,025 INFO L87 Difference]: Start difference. First operand 59 states. Second operand 73 states. [2019-01-07 14:17:03,026 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:17:03,026 INFO L93 Difference]: Finished difference Result 73 states and 261 transitions. [2019-01-07 14:17:03,026 INFO L276 IsEmpty]: Start isEmpty. Operand 73 states and 261 transitions. [2019-01-07 14:17:03,027 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:17:03,027 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:17:03,027 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:17:03,027 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:17:03,027 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 59 states. [2019-01-07 14:17:03,028 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 59 states to 59 states and 250 transitions. [2019-01-07 14:17:03,028 INFO L78 Accepts]: Start accepts. Automaton has 59 states and 250 transitions. Word has length 5 [2019-01-07 14:17:03,028 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:17:03,028 INFO L480 AbstractCegarLoop]: Abstraction has 59 states and 250 transitions. [2019-01-07 14:17:03,028 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-01-07 14:17:03,028 INFO L276 IsEmpty]: Start isEmpty. Operand 59 states and 250 transitions. [2019-01-07 14:17:03,029 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-01-07 14:17:03,029 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:17:03,029 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-01-07 14:17:03,029 INFO L423 AbstractCegarLoop]: === Iteration 25 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:17:03,029 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:17:03,029 INFO L82 PathProgramCache]: Analyzing trace with hash 29052506, now seen corresponding path program 1 times [2019-01-07 14:17:03,029 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:17:03,030 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:17:03,030 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:17:03,030 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:17:03,030 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:17:03,034 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:17:03,444 INFO L273 TraceCheckUtils]: 0: Hoare triple {5638#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {5640#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (<= (+ ULTIMATE.start_main_p1 3) ULTIMATE.start_main_p4) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:17:03,446 INFO L273 TraceCheckUtils]: 1: Hoare triple {5640#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (<= (+ ULTIMATE.start_main_p1 3) ULTIMATE.start_main_p4) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {5641#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (<= (+ ULTIMATE.start_main_p1 3) ULTIMATE.start_main_p4))} is VALID [2019-01-07 14:17:03,447 INFO L273 TraceCheckUtils]: 2: Hoare triple {5641#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (<= (+ ULTIMATE.start_main_p1 3) ULTIMATE.start_main_p4))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {5642#(and (<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (<= (+ ULTIMATE.start_main_p1 3) ULTIMATE.start_main_p4))} is VALID [2019-01-07 14:17:03,448 INFO L273 TraceCheckUtils]: 3: Hoare triple {5642#(and (<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (<= (+ ULTIMATE.start_main_p1 3) ULTIMATE.start_main_p4))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {5643#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:17:03,448 INFO L273 TraceCheckUtils]: 4: Hoare triple {5643#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {5639#false} is VALID [2019-01-07 14:17:03,449 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:17:03,449 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:17:03,449 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:17:03,449 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-01-07 14:17:03,450 INFO L207 CegarAbsIntRunner]: [0], [6], [14], [16], [19] [2019-01-07 14:17:03,451 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:17:03,451 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:17:03,465 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:17:03,465 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 3. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-07 14:17:03,465 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:17:03,466 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:17:03,466 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:17:03,466 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 23 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 23 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:17:03,473 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:17:03,474 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:17:03,477 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:17:03,481 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:17:03,481 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:17:03,515 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:17:03,560 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:03,561 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:17:03,580 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:03,581 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:03,582 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:17:03,593 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:03,595 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:03,596 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:03,597 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:17:03,600 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:17:03,618 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:17:03,629 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:17:03,638 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:17:03,652 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:17:03,652 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 14:17:03,659 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:17:03,660 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_119|, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_119| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:17:03,660 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:17:03,702 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:03,703 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:03,704 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:03,706 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:03,707 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:03,708 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:03,710 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:03,711 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 14:17:03,715 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:17:03,745 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:17:03,745 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 14:17:03,751 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:17:03,752 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_120|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_120| ULTIMATE.start_main_p3))) (and (= (select |v_#memory_int_120| ULTIMATE.start_main_p1) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_120| ULTIMATE.start_main_p3 (+ .cse0 1))) (= 0 .cse0) (= (select |v_#memory_int_120| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_120| ULTIMATE.start_main_p4) 0))) [2019-01-07 14:17:03,752 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:17:03,794 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:03,795 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:03,796 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:03,798 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:03,799 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:03,800 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:03,802 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:03,803 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:03,803 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 14:17:03,805 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 59 [2019-01-07 14:17:03,808 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:17:03,857 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:17:03,857 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 14:17:03,872 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:17:03,872 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_121|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_121| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (select |v_#memory_int_121| ULTIMATE.start_main_p2) 0) (= |#memory_int| (store |v_#memory_int_121| ULTIMATE.start_main_p1 (+ .cse0 1))) (= 1 (select |v_#memory_int_121| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 (select |v_#memory_int_121| ULTIMATE.start_main_p4)))) [2019-01-07 14:17:03,872 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:17:03,930 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:03,932 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:03,933 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:03,934 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:03,935 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:03,937 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:03,938 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:03,939 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:03,940 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:03,941 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 57 [2019-01-07 14:17:03,943 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:17:03,978 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:17:03,978 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-07 14:17:03,988 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:17:03,989 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_122|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_122| ULTIMATE.start_main_p4))) (and (= 1 (select |v_#memory_int_122| ULTIMATE.start_main_p3)) (= (store |v_#memory_int_122| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_122| ULTIMATE.start_main_p1) 1) (= 0 .cse0) (= (select |v_#memory_int_122| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:17:03,989 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:17:04,013 INFO L273 TraceCheckUtils]: 0: Hoare triple {5638#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {5647#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:17:04,015 INFO L273 TraceCheckUtils]: 1: Hoare triple {5647#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {5651#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:17:04,016 INFO L273 TraceCheckUtils]: 2: Hoare triple {5651#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {5655#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:17:04,019 INFO L273 TraceCheckUtils]: 3: Hoare triple {5655#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {5659#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-07 14:17:04,019 INFO L273 TraceCheckUtils]: 4: Hoare triple {5659#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {5639#false} is VALID [2019-01-07 14:17:04,020 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:17:04,020 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:17:04,068 INFO L273 TraceCheckUtils]: 4: Hoare triple {5643#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {5639#false} is VALID [2019-01-07 14:17:04,069 INFO L273 TraceCheckUtils]: 3: Hoare triple {5666#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {5643#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:17:04,070 INFO L273 TraceCheckUtils]: 2: Hoare triple {5670#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {5666#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:17:04,072 INFO L273 TraceCheckUtils]: 1: Hoare triple {5674#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {5670#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:17:04,074 INFO L273 TraceCheckUtils]: 0: Hoare triple {5638#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {5674#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:17:04,075 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 5 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:17:04,095 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:17:04,095 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-07 14:17:04,095 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:17:04,096 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-07 14:17:04,096 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:17:04,096 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 14:17:04,112 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:17:04,112 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 14:17:04,112 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 14:17:04,112 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=66, Invalid=90, Unknown=0, NotChecked=0, Total=156 [2019-01-07 14:17:04,113 INFO L87 Difference]: Start difference. First operand 59 states and 250 transitions. Second operand 10 states. [2019-01-07 14:17:05,711 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:17:05,711 INFO L93 Difference]: Finished difference Result 105 states and 359 transitions. [2019-01-07 14:17:05,711 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-07 14:17:05,712 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-01-07 14:17:05,712 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:17:05,712 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 14:17:05,712 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 63 transitions. [2019-01-07 14:17:05,712 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 14:17:05,713 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 63 transitions. [2019-01-07 14:17:05,713 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 63 transitions. [2019-01-07 14:17:05,848 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 63 edges. 63 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:17:05,851 INFO L225 Difference]: With dead ends: 105 [2019-01-07 14:17:05,851 INFO L226 Difference]: Without dead ends: 97 [2019-01-07 14:17:05,851 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 1 SyntacticMatches, 0 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 53 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=84, Invalid=126, Unknown=0, NotChecked=0, Total=210 [2019-01-07 14:17:05,852 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 97 states. [2019-01-07 14:17:06,887 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 97 to 71. [2019-01-07 14:17:06,887 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:17:06,887 INFO L82 GeneralOperation]: Start isEquivalent. First operand 97 states. Second operand 71 states. [2019-01-07 14:17:06,887 INFO L74 IsIncluded]: Start isIncluded. First operand 97 states. Second operand 71 states. [2019-01-07 14:17:06,887 INFO L87 Difference]: Start difference. First operand 97 states. Second operand 71 states. [2019-01-07 14:17:06,891 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:17:06,891 INFO L93 Difference]: Finished difference Result 97 states and 344 transitions. [2019-01-07 14:17:06,891 INFO L276 IsEmpty]: Start isEmpty. Operand 97 states and 344 transitions. [2019-01-07 14:17:06,891 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:17:06,891 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:17:06,892 INFO L74 IsIncluded]: Start isIncluded. First operand 71 states. Second operand 97 states. [2019-01-07 14:17:06,892 INFO L87 Difference]: Start difference. First operand 71 states. Second operand 97 states. [2019-01-07 14:17:06,894 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:17:06,894 INFO L93 Difference]: Finished difference Result 97 states and 344 transitions. [2019-01-07 14:17:06,894 INFO L276 IsEmpty]: Start isEmpty. Operand 97 states and 344 transitions. [2019-01-07 14:17:06,894 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:17:06,894 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:17:06,894 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:17:06,894 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:17:06,894 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 71 states. [2019-01-07 14:17:06,896 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 71 states to 71 states and 308 transitions. [2019-01-07 14:17:06,896 INFO L78 Accepts]: Start accepts. Automaton has 71 states and 308 transitions. Word has length 5 [2019-01-07 14:17:06,896 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:17:06,896 INFO L480 AbstractCegarLoop]: Abstraction has 71 states and 308 transitions. [2019-01-07 14:17:06,896 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 14:17:06,896 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 308 transitions. [2019-01-07 14:17:06,897 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-07 14:17:06,897 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:17:06,897 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1] [2019-01-07 14:17:06,897 INFO L423 AbstractCegarLoop]: === Iteration 26 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:17:06,897 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:17:06,897 INFO L82 PathProgramCache]: Analyzing trace with hash 902776598, now seen corresponding path program 1 times [2019-01-07 14:17:06,898 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:17:06,898 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:17:06,898 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:17:06,898 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:17:06,899 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:17:06,902 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:17:06,975 INFO L273 TraceCheckUtils]: 0: Hoare triple {6172#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {6174#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:17:06,976 INFO L273 TraceCheckUtils]: 1: Hoare triple {6174#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {6174#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:17:06,977 INFO L273 TraceCheckUtils]: 2: Hoare triple {6174#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {6175#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-07 14:17:06,978 INFO L273 TraceCheckUtils]: 3: Hoare triple {6175#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p1] >= 0; {6175#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-07 14:17:06,978 INFO L273 TraceCheckUtils]: 4: Hoare triple {6175#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p2] <= 0; {6175#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-07 14:17:06,979 INFO L273 TraceCheckUtils]: 5: Hoare triple {6175#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume !(#memory_int[main_p3] >= 0); {6173#false} is VALID [2019-01-07 14:17:06,980 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 14:17:06,980 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:17:06,980 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:17:06,980 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-07 14:17:06,981 INFO L207 CegarAbsIntRunner]: [0], [16], [20], [22], [23] [2019-01-07 14:17:06,985 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:17:06,985 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:17:07,001 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:17:07,002 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 3. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-07 14:17:07,002 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:17:07,002 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:17:07,002 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:17:07,003 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 24 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 24 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:17:07,010 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:17:07,011 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:17:07,014 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:17:07,019 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:17:07,019 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:17:07,037 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:17:07,047 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-07 14:17:07,059 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-01-07 14:17:07,099 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:07,100 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 1 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 25 [2019-01-07 14:17:07,104 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:17:07,114 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:17:07,124 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:17:07,134 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:17:07,146 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:17:07,147 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:19, output treesize:24 [2019-01-07 14:17:07,151 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:17:07,151 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_126|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (= (store (store (store (store |v_#memory_int_126| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) [2019-01-07 14:17:07,151 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:17:07,192 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:07,193 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:07,194 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 15 [2019-01-07 14:17:07,197 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:17:07,205 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:17:07,206 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:24, output treesize:14 [2019-01-07 14:17:07,213 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:17:07,213 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_127|]. (let ((.cse0 (select |v_#memory_int_127| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_127| ULTIMATE.start_main_p3)) (= |#memory_int| (store |v_#memory_int_127| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= .cse0 0))) [2019-01-07 14:17:07,213 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-07 14:17:07,251 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:07,253 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:07,254 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:07,255 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:07,255 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 4 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 27 [2019-01-07 14:17:07,269 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:17:07,282 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:17:07,282 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:26, output treesize:14 [2019-01-07 14:17:09,307 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:17:09,308 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_128|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_128| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_128| ULTIMATE.start_main_p3)) (= (store |v_#memory_int_128| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (+ .cse0 1) 0))) [2019-01-07 14:17:09,308 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-07 14:17:09,353 INFO L273 TraceCheckUtils]: 0: Hoare triple {6172#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {6179#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:17:09,355 INFO L273 TraceCheckUtils]: 1: Hoare triple {6179#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {6183#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-07 14:17:09,356 INFO L273 TraceCheckUtils]: 2: Hoare triple {6183#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {6187#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))))} is VALID [2019-01-07 14:17:09,357 INFO L273 TraceCheckUtils]: 3: Hoare triple {6187#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))))} assume #memory_int[main_p1] >= 0; {6187#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))))} is VALID [2019-01-07 14:17:09,359 INFO L273 TraceCheckUtils]: 4: Hoare triple {6187#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))))} assume #memory_int[main_p2] <= 0; {6187#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))))} is VALID [2019-01-07 14:17:09,360 INFO L273 TraceCheckUtils]: 5: Hoare triple {6187#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))))} assume !(#memory_int[main_p3] >= 0); {6173#false} is VALID [2019-01-07 14:17:09,360 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:17:09,360 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:17:09,403 INFO L273 TraceCheckUtils]: 5: Hoare triple {6197#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {6173#false} is VALID [2019-01-07 14:17:09,404 INFO L273 TraceCheckUtils]: 4: Hoare triple {6197#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {6197#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:17:09,404 INFO L273 TraceCheckUtils]: 3: Hoare triple {6197#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {6197#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:17:09,405 INFO L273 TraceCheckUtils]: 2: Hoare triple {6207#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {6197#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:17:09,406 INFO L273 TraceCheckUtils]: 1: Hoare triple {6211#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 2))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {6207#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:17:09,408 INFO L273 TraceCheckUtils]: 0: Hoare triple {6172#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {6211#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 2))) ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:17:09,409 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:17:09,428 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:17:09,428 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 3, 3] total 8 [2019-01-07 14:17:09,428 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:17:09,428 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 6 [2019-01-07 14:17:09,428 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:17:09,428 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states. [2019-01-07 14:17:09,440 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:17:09,440 INFO L459 AbstractCegarLoop]: Interpolant automaton has 7 states [2019-01-07 14:17:09,441 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2019-01-07 14:17:09,441 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=37, Invalid=53, Unknown=0, NotChecked=0, Total=90 [2019-01-07 14:17:09,441 INFO L87 Difference]: Start difference. First operand 71 states and 308 transitions. Second operand 7 states. [2019-01-07 14:17:11,133 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:17:11,133 INFO L93 Difference]: Finished difference Result 85 states and 324 transitions. [2019-01-07 14:17:11,134 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-07 14:17:11,134 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 6 [2019-01-07 14:17:11,134 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:17:11,134 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2019-01-07 14:17:11,134 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 42 transitions. [2019-01-07 14:17:11,134 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2019-01-07 14:17:11,134 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 42 transitions. [2019-01-07 14:17:11,135 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 42 transitions. [2019-01-07 14:17:11,181 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 42 edges. 42 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:17:11,183 INFO L225 Difference]: With dead ends: 85 [2019-01-07 14:17:11,183 INFO L226 Difference]: Without dead ends: 80 [2019-01-07 14:17:11,184 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 5 SyntacticMatches, 0 SemanticMatches, 9 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 25 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-01-07 14:17:11,184 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 80 states. [2019-01-07 14:17:12,935 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 80 to 71. [2019-01-07 14:17:12,935 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:17:12,935 INFO L82 GeneralOperation]: Start isEquivalent. First operand 80 states. Second operand 71 states. [2019-01-07 14:17:12,935 INFO L74 IsIncluded]: Start isIncluded. First operand 80 states. Second operand 71 states. [2019-01-07 14:17:12,935 INFO L87 Difference]: Start difference. First operand 80 states. Second operand 71 states. [2019-01-07 14:17:12,937 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:17:12,937 INFO L93 Difference]: Finished difference Result 80 states and 318 transitions. [2019-01-07 14:17:12,938 INFO L276 IsEmpty]: Start isEmpty. Operand 80 states and 318 transitions. [2019-01-07 14:17:12,938 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:17:12,938 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:17:12,938 INFO L74 IsIncluded]: Start isIncluded. First operand 71 states. Second operand 80 states. [2019-01-07 14:17:12,938 INFO L87 Difference]: Start difference. First operand 71 states. Second operand 80 states. [2019-01-07 14:17:12,940 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:17:12,940 INFO L93 Difference]: Finished difference Result 80 states and 318 transitions. [2019-01-07 14:17:12,940 INFO L276 IsEmpty]: Start isEmpty. Operand 80 states and 318 transitions. [2019-01-07 14:17:12,940 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:17:12,940 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:17:12,940 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:17:12,941 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:17:12,941 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 71 states. [2019-01-07 14:17:12,942 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 71 states to 71 states and 307 transitions. [2019-01-07 14:17:12,942 INFO L78 Accepts]: Start accepts. Automaton has 71 states and 307 transitions. Word has length 6 [2019-01-07 14:17:12,942 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:17:12,943 INFO L480 AbstractCegarLoop]: Abstraction has 71 states and 307 transitions. [2019-01-07 14:17:12,943 INFO L481 AbstractCegarLoop]: Interpolant automaton has 7 states. [2019-01-07 14:17:12,943 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 307 transitions. [2019-01-07 14:17:12,943 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-07 14:17:12,943 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:17:12,943 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-07 14:17:12,943 INFO L423 AbstractCegarLoop]: === Iteration 27 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:17:12,943 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:17:12,944 INFO L82 PathProgramCache]: Analyzing trace with hash 902478688, now seen corresponding path program 1 times [2019-01-07 14:17:12,944 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:17:12,944 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:17:12,944 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:17:12,944 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:17:12,945 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:17:12,949 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:17:13,115 INFO L273 TraceCheckUtils]: 0: Hoare triple {6651#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {6653#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:17:13,116 INFO L273 TraceCheckUtils]: 1: Hoare triple {6653#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {6654#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:17:13,117 INFO L273 TraceCheckUtils]: 2: Hoare triple {6654#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {6655#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-07 14:17:13,118 INFO L273 TraceCheckUtils]: 3: Hoare triple {6655#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p1] >= 0; {6655#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-07 14:17:13,119 INFO L273 TraceCheckUtils]: 4: Hoare triple {6655#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p2] <= 0; {6655#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-07 14:17:13,119 INFO L273 TraceCheckUtils]: 5: Hoare triple {6655#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume !(#memory_int[main_p3] >= 0); {6652#false} is VALID [2019-01-07 14:17:13,120 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:17:13,120 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:17:13,120 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:17:13,120 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-07 14:17:13,120 INFO L207 CegarAbsIntRunner]: [0], [6], [16], [20], [22], [23] [2019-01-07 14:17:13,121 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:17:13,122 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:17:13,133 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:17:13,133 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 3. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-07 14:17:13,133 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:17:13,134 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:17:13,134 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:17:13,134 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 25 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 25 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:17:13,142 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:17:13,142 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:17:13,146 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:17:13,149 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:17:13,150 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:17:13,192 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:17:13,211 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:13,212 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:17:13,239 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:13,241 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:13,242 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:17:13,266 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:13,267 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:13,269 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:13,270 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:17:13,278 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:17:13,300 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:17:13,313 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:17:13,324 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:17:13,343 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:17:13,343 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 14:17:13,350 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:17:13,350 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_131|, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_131| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:17:13,351 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:17:13,438 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:13,439 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:13,441 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:13,442 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:13,443 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:13,445 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:13,446 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:13,447 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 14:17:13,455 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:17:13,489 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:17:13,489 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 14:17:15,190 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:17:15,190 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_132|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_132| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_132| ULTIMATE.start_main_p1) 0) (= |#memory_int| (store |v_#memory_int_132| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= .cse0 0) (= (select |v_#memory_int_132| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_132| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:17:15,190 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:17:15,305 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:15,306 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:15,308 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:15,309 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:15,310 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:15,311 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:15,313 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:15,314 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:15,315 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:15,316 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 59 [2019-01-07 14:17:15,325 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:17:15,363 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:17:15,363 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-07 14:17:15,372 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:17:15,373 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_133|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_133| ULTIMATE.start_main_p1))) (and (= 0 (select |v_#memory_int_133| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_133| ULTIMATE.start_main_p4) 1)) (= |#memory_int| (store |v_#memory_int_133| ULTIMATE.start_main_p1 (+ .cse0 1))) (= .cse0 0) (= 0 (select |v_#memory_int_133| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:17:15,373 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:17:15,480 INFO L273 TraceCheckUtils]: 0: Hoare triple {6651#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {6659#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:17:15,482 INFO L273 TraceCheckUtils]: 1: Hoare triple {6659#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {6663#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-07 14:17:15,485 INFO L273 TraceCheckUtils]: 2: Hoare triple {6663#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {6667#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-07 14:17:15,486 INFO L273 TraceCheckUtils]: 3: Hoare triple {6667#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p1] >= 0; {6667#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-07 14:17:15,487 INFO L273 TraceCheckUtils]: 4: Hoare triple {6667#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p2] <= 0; {6667#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-07 14:17:15,488 INFO L273 TraceCheckUtils]: 5: Hoare triple {6667#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume !(#memory_int[main_p3] >= 0); {6652#false} is VALID [2019-01-07 14:17:15,489 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:17:15,489 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:17:15,564 INFO L273 TraceCheckUtils]: 5: Hoare triple {6677#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {6652#false} is VALID [2019-01-07 14:17:15,564 INFO L273 TraceCheckUtils]: 4: Hoare triple {6677#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {6677#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:17:15,565 INFO L273 TraceCheckUtils]: 3: Hoare triple {6677#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {6677#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:17:15,566 INFO L273 TraceCheckUtils]: 2: Hoare triple {6687#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {6677#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:17:15,567 INFO L273 TraceCheckUtils]: 1: Hoare triple {6691#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {6687#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:17:15,569 INFO L273 TraceCheckUtils]: 0: Hoare triple {6651#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {6691#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:17:15,570 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:17:15,590 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:17:15,590 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 14:17:15,590 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:17:15,590 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-07 14:17:15,590 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:17:15,590 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 14:17:15,608 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:17:15,608 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 14:17:15,609 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 14:17:15,609 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-01-07 14:17:15,609 INFO L87 Difference]: Start difference. First operand 71 states and 307 transitions. Second operand 8 states. [2019-01-07 14:17:18,246 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:17:18,246 INFO L93 Difference]: Finished difference Result 83 states and 322 transitions. [2019-01-07 14:17:18,246 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-07 14:17:18,247 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-07 14:17:18,247 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:17:18,247 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 14:17:18,247 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 38 transitions. [2019-01-07 14:17:18,247 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 14:17:18,247 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 38 transitions. [2019-01-07 14:17:18,247 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 38 transitions. [2019-01-07 14:17:18,300 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 38 edges. 38 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:17:18,303 INFO L225 Difference]: With dead ends: 83 [2019-01-07 14:17:18,303 INFO L226 Difference]: Without dead ends: 82 [2019-01-07 14:17:18,303 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 16 GetRequests, 5 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-01-07 14:17:18,304 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 82 states. [2019-01-07 14:17:18,998 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 82 to 71. [2019-01-07 14:17:18,999 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:17:18,999 INFO L82 GeneralOperation]: Start isEquivalent. First operand 82 states. Second operand 71 states. [2019-01-07 14:17:18,999 INFO L74 IsIncluded]: Start isIncluded. First operand 82 states. Second operand 71 states. [2019-01-07 14:17:18,999 INFO L87 Difference]: Start difference. First operand 82 states. Second operand 71 states. [2019-01-07 14:17:19,002 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:17:19,002 INFO L93 Difference]: Finished difference Result 82 states and 320 transitions. [2019-01-07 14:17:19,002 INFO L276 IsEmpty]: Start isEmpty. Operand 82 states and 320 transitions. [2019-01-07 14:17:19,003 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:17:19,003 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:17:19,003 INFO L74 IsIncluded]: Start isIncluded. First operand 71 states. Second operand 82 states. [2019-01-07 14:17:19,003 INFO L87 Difference]: Start difference. First operand 71 states. Second operand 82 states. [2019-01-07 14:17:19,005 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:17:19,005 INFO L93 Difference]: Finished difference Result 82 states and 320 transitions. [2019-01-07 14:17:19,005 INFO L276 IsEmpty]: Start isEmpty. Operand 82 states and 320 transitions. [2019-01-07 14:17:19,006 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:17:19,006 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:17:19,006 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:17:19,006 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:17:19,006 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 71 states. [2019-01-07 14:17:19,008 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 71 states to 71 states and 307 transitions. [2019-01-07 14:17:19,008 INFO L78 Accepts]: Start accepts. Automaton has 71 states and 307 transitions. Word has length 6 [2019-01-07 14:17:19,009 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:17:19,009 INFO L480 AbstractCegarLoop]: Abstraction has 71 states and 307 transitions. [2019-01-07 14:17:19,009 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 14:17:19,009 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 307 transitions. [2019-01-07 14:17:19,009 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-07 14:17:19,009 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:17:19,009 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-07 14:17:19,010 INFO L423 AbstractCegarLoop]: === Iteration 28 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:17:19,010 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:17:19,010 INFO L82 PathProgramCache]: Analyzing trace with hash 902469014, now seen corresponding path program 1 times [2019-01-07 14:17:19,010 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:17:19,011 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:17:19,011 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:17:19,011 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:17:19,011 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:17:19,016 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:17:19,281 INFO L273 TraceCheckUtils]: 0: Hoare triple {7135#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {7137#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 14:17:19,282 INFO L273 TraceCheckUtils]: 1: Hoare triple {7137#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {7138#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-07 14:17:19,283 INFO L273 TraceCheckUtils]: 2: Hoare triple {7138#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {7138#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-07 14:17:19,284 INFO L273 TraceCheckUtils]: 3: Hoare triple {7138#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {7139#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (<= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-07 14:17:19,285 INFO L273 TraceCheckUtils]: 4: Hoare triple {7139#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (<= (select |#memory_int| ULTIMATE.start_main_p2) 0))} assume #memory_int[main_p1] >= 0; {7140#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:17:19,286 INFO L273 TraceCheckUtils]: 5: Hoare triple {7140#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {7136#false} is VALID [2019-01-07 14:17:19,286 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 14:17:19,286 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:17:19,287 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:17:19,287 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-07 14:17:19,287 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [16], [20], [21] [2019-01-07 14:17:19,288 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:17:19,288 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:17:19,304 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:17:19,304 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 3. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-07 14:17:19,304 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:17:19,305 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:17:19,305 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:17:19,305 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 26 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 26 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:17:19,314 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:17:19,315 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:17:19,324 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:17:19,331 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:17:19,331 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:17:19,350 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:17:19,359 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:19,359 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:17:19,371 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:19,372 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:19,373 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:17:19,388 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:19,389 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:19,391 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:19,391 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:17:19,396 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:17:19,415 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:17:19,426 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:17:19,436 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:17:19,452 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:17:19,452 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 14:17:19,461 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:17:19,462 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_136|, ULTIMATE.start_main_p3]. (and (= (store (store (store (store |v_#memory_int_136| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:17:19,462 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:17:19,516 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:19,518 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:19,519 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:19,520 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:19,522 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:19,523 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:19,524 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:19,525 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 14:17:19,529 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:17:19,560 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:17:19,561 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 14:17:21,572 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:17:21,572 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_137|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_137| ULTIMATE.start_main_p4))) (and (= |#memory_int| (store |v_#memory_int_137| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_137| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_137| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_137| ULTIMATE.start_main_p3) 0) (= 0 .cse0))) [2019-01-07 14:17:21,573 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:17:21,660 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:21,661 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:21,662 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:21,664 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:21,665 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:21,666 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:21,668 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:21,669 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:21,670 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:21,671 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 59 [2019-01-07 14:17:21,675 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:17:21,712 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:17:21,712 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-07 14:17:21,736 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:17:21,737 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_138|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_138| ULTIMATE.start_main_p1))) (and (= .cse0 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_138| ULTIMATE.start_main_p3)) (= (+ (select |v_#memory_int_138| ULTIMATE.start_main_p4) 1) 0) (= |#memory_int| (store |v_#memory_int_138| ULTIMATE.start_main_p1 (+ .cse0 1))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 (select |v_#memory_int_138| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:17:21,737 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:17:21,825 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:21,827 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:21,830 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:21,832 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:21,835 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:21,839 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:21,841 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:21,844 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:21,846 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 14:17:21,848 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:21,848 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 72 [2019-01-07 14:17:21,852 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:17:21,905 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:17:21,905 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:30 [2019-01-07 14:17:21,920 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:17:21,920 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_139|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_139| ULTIMATE.start_main_p2))) (and (= (select |v_#memory_int_139| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |v_#memory_int_139| ULTIMATE.start_main_p4) 1) 0) (= .cse0 0) (= (store |v_#memory_int_139| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |v_#memory_int_139| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:17:21,920 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:17:22,060 INFO L273 TraceCheckUtils]: 0: Hoare triple {7135#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {7144#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:17:22,061 INFO L273 TraceCheckUtils]: 1: Hoare triple {7144#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {7148#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-07 14:17:22,063 INFO L273 TraceCheckUtils]: 2: Hoare triple {7148#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {7152#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-07 14:17:22,065 INFO L273 TraceCheckUtils]: 3: Hoare triple {7152#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {7156#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-07 14:17:22,066 INFO L273 TraceCheckUtils]: 4: Hoare triple {7156#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume #memory_int[main_p1] >= 0; {7156#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-07 14:17:22,067 INFO L273 TraceCheckUtils]: 5: Hoare triple {7156#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume !(#memory_int[main_p2] <= 0); {7136#false} is VALID [2019-01-07 14:17:22,067 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:17:22,067 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:17:22,167 INFO L273 TraceCheckUtils]: 5: Hoare triple {7140#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {7136#false} is VALID [2019-01-07 14:17:22,169 INFO L273 TraceCheckUtils]: 4: Hoare triple {7140#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {7140#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:17:22,170 INFO L273 TraceCheckUtils]: 3: Hoare triple {7169#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {7140#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:17:22,171 INFO L273 TraceCheckUtils]: 2: Hoare triple {7173#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {7169#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} is VALID [2019-01-07 14:17:22,172 INFO L273 TraceCheckUtils]: 1: Hoare triple {7177#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {7173#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1)} is VALID [2019-01-07 14:17:22,174 INFO L273 TraceCheckUtils]: 0: Hoare triple {7135#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {7177#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1)} is VALID [2019-01-07 14:17:22,175 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 4 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:17:22,195 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:17:22,195 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-07 14:17:22,195 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:17:22,195 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-07 14:17:22,195 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:17:22,196 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 14:17:22,230 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:17:22,230 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 14:17:22,230 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 14:17:22,230 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=64, Invalid=92, Unknown=0, NotChecked=0, Total=156 [2019-01-07 14:17:22,230 INFO L87 Difference]: Start difference. First operand 71 states and 307 transitions. Second operand 10 states. [2019-01-07 14:17:24,602 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:17:24,602 INFO L93 Difference]: Finished difference Result 97 states and 346 transitions. [2019-01-07 14:17:24,602 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-07 14:17:24,602 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-07 14:17:24,602 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:17:24,603 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 14:17:24,604 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 56 transitions. [2019-01-07 14:17:24,605 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 14:17:24,606 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 56 transitions. [2019-01-07 14:17:24,606 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 56 transitions. [2019-01-07 14:17:24,693 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 56 edges. 56 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:17:24,695 INFO L225 Difference]: With dead ends: 97 [2019-01-07 14:17:24,696 INFO L226 Difference]: Without dead ends: 96 [2019-01-07 14:17:24,696 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 3 SyntacticMatches, 1 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 52 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=92, Invalid=148, Unknown=0, NotChecked=0, Total=240 [2019-01-07 14:17:24,696 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 96 states. [2019-01-07 14:17:26,226 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 96 to 71. [2019-01-07 14:17:26,226 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:17:26,226 INFO L82 GeneralOperation]: Start isEquivalent. First operand 96 states. Second operand 71 states. [2019-01-07 14:17:26,226 INFO L74 IsIncluded]: Start isIncluded. First operand 96 states. Second operand 71 states. [2019-01-07 14:17:26,227 INFO L87 Difference]: Start difference. First operand 96 states. Second operand 71 states. [2019-01-07 14:17:26,232 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:17:26,232 INFO L93 Difference]: Finished difference Result 96 states and 344 transitions. [2019-01-07 14:17:26,232 INFO L276 IsEmpty]: Start isEmpty. Operand 96 states and 344 transitions. [2019-01-07 14:17:26,233 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:17:26,233 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:17:26,233 INFO L74 IsIncluded]: Start isIncluded. First operand 71 states. Second operand 96 states. [2019-01-07 14:17:26,233 INFO L87 Difference]: Start difference. First operand 71 states. Second operand 96 states. [2019-01-07 14:17:26,238 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:17:26,238 INFO L93 Difference]: Finished difference Result 96 states and 344 transitions. [2019-01-07 14:17:26,239 INFO L276 IsEmpty]: Start isEmpty. Operand 96 states and 344 transitions. [2019-01-07 14:17:26,239 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:17:26,239 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:17:26,239 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:17:26,239 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:17:26,240 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 71 states. [2019-01-07 14:17:26,244 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 71 states to 71 states and 307 transitions. [2019-01-07 14:17:26,244 INFO L78 Accepts]: Start accepts. Automaton has 71 states and 307 transitions. Word has length 6 [2019-01-07 14:17:26,245 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:17:26,245 INFO L480 AbstractCegarLoop]: Abstraction has 71 states and 307 transitions. [2019-01-07 14:17:26,245 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 14:17:26,245 INFO L276 IsEmpty]: Start isEmpty. Operand 71 states and 307 transitions. [2019-01-07 14:17:26,245 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-07 14:17:26,245 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:17:26,246 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-07 14:17:26,246 INFO L423 AbstractCegarLoop]: === Iteration 29 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:17:26,246 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:17:26,246 INFO L82 PathProgramCache]: Analyzing trace with hash 902472858, now seen corresponding path program 1 times [2019-01-07 14:17:26,246 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:17:26,247 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:17:26,247 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:17:26,247 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:17:26,247 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:17:26,251 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:17:26,604 INFO L273 TraceCheckUtils]: 0: Hoare triple {7668#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {7670#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 14:17:26,606 INFO L273 TraceCheckUtils]: 1: Hoare triple {7670#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {7671#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-07 14:17:26,606 INFO L273 TraceCheckUtils]: 2: Hoare triple {7671#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {7671#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-07 14:17:26,607 INFO L273 TraceCheckUtils]: 3: Hoare triple {7671#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {7672#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-07 14:17:26,607 INFO L273 TraceCheckUtils]: 4: Hoare triple {7672#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} assume #memory_int[main_p1] >= 0; {7673#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:17:26,608 INFO L273 TraceCheckUtils]: 5: Hoare triple {7673#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {7669#false} is VALID [2019-01-07 14:17:26,608 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 14:17:26,608 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:17:26,608 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:17:26,608 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-07 14:17:26,609 INFO L207 CegarAbsIntRunner]: [0], [6], [14], [16], [20], [21] [2019-01-07 14:17:26,610 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:17:26,610 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:17:26,627 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:17:26,627 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 3. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-07 14:17:26,627 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:17:26,627 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:17:26,627 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:17:26,628 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 27 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 27 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:17:26,639 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:17:26,639 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:17:26,644 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:17:26,648 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:17:26,649 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:17:26,693 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:17:26,705 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:26,706 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:17:26,725 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:26,727 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:26,728 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:17:26,753 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:26,754 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:26,756 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:26,757 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:17:26,765 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:17:26,786 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:17:26,798 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:17:26,809 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:17:26,826 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:17:26,826 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-07 14:17:26,832 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:17:26,833 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_143|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_143| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:17:26,833 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:17:26,940 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:26,942 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:26,944 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:26,946 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:26,948 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:26,950 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:26,952 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:26,953 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 14:17:26,961 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:17:27,003 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:17:27,003 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-07 14:17:27,051 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:17:27,051 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_144|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_144| ULTIMATE.start_main_p4))) (and (= 0 (select |v_#memory_int_144| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_144| ULTIMATE.start_main_p1) 0) (= |#memory_int| (store |v_#memory_int_144| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= 0 (select |v_#memory_int_144| ULTIMATE.start_main_p2)) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:17:27,051 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:17:27,190 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:27,192 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:27,194 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:27,196 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:27,198 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:27,200 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:27,202 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:27,204 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:27,206 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:27,206 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 59 [2019-01-07 14:17:27,221 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:17:27,260 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:17:27,260 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-07 14:17:27,353 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:17:27,353 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_145|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_145| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= |#memory_int| (store |v_#memory_int_145| ULTIMATE.start_main_p1 (+ .cse0 1))) (= 0 (select |v_#memory_int_145| ULTIMATE.start_main_p3)) (= 0 (select |v_#memory_int_145| ULTIMATE.start_main_p2)) (= (+ (select |v_#memory_int_145| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-07 14:17:27,353 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:17:27,452 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:27,453 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:27,455 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:27,456 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:27,457 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:27,458 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:27,460 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:27,461 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:27,462 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:27,463 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:27,464 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 14:17:27,465 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 77 [2019-01-07 14:17:27,473 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:17:27,517 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:17:27,517 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-07 14:17:28,141 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:17:28,142 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_146|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_146| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_146| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= (select |v_#memory_int_146| ULTIMATE.start_main_p1) 1) (= 0 (select |v_#memory_int_146| ULTIMATE.start_main_p2)) (= 0 (+ (select |v_#memory_int_146| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-07 14:17:28,142 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:17:28,222 INFO L273 TraceCheckUtils]: 0: Hoare triple {7668#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {7677#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:17:28,223 INFO L273 TraceCheckUtils]: 1: Hoare triple {7677#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {7681#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:17:28,225 INFO L273 TraceCheckUtils]: 2: Hoare triple {7681#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {7685#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:17:28,227 INFO L273 TraceCheckUtils]: 3: Hoare triple {7685#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {7689#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-07 14:17:28,227 INFO L273 TraceCheckUtils]: 4: Hoare triple {7689#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume #memory_int[main_p1] >= 0; {7689#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-07 14:17:28,228 INFO L273 TraceCheckUtils]: 5: Hoare triple {7689#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume !(#memory_int[main_p2] <= 0); {7669#false} is VALID [2019-01-07 14:17:28,228 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:17:28,228 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:17:28,334 INFO L273 TraceCheckUtils]: 5: Hoare triple {7696#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {7669#false} is VALID [2019-01-07 14:17:28,335 INFO L273 TraceCheckUtils]: 4: Hoare triple {7696#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {7696#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:17:28,336 INFO L273 TraceCheckUtils]: 3: Hoare triple {7703#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {7696#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:17:28,338 INFO L273 TraceCheckUtils]: 2: Hoare triple {7707#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {7703#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:17:28,340 INFO L273 TraceCheckUtils]: 1: Hoare triple {7711#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {7707#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:17:28,342 INFO L273 TraceCheckUtils]: 0: Hoare triple {7668#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {7711#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:17:28,342 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 1 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:17:28,361 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:17:28,362 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-07 14:17:28,362 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:17:28,362 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-07 14:17:28,362 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:17:28,362 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 14:17:28,382 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:17:28,382 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 14:17:28,382 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 14:17:28,383 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=65, Invalid=117, Unknown=0, NotChecked=0, Total=182 [2019-01-07 14:17:28,383 INFO L87 Difference]: Start difference. First operand 71 states and 307 transitions. Second operand 10 states. [2019-01-07 14:17:31,711 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:17:31,712 INFO L93 Difference]: Finished difference Result 102 states and 389 transitions. [2019-01-07 14:17:31,712 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-07 14:17:31,712 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-07 14:17:31,712 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:17:31,712 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 14:17:31,714 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 47 transitions. [2019-01-07 14:17:31,714 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 14:17:31,714 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 47 transitions. [2019-01-07 14:17:31,714 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 47 transitions. [2019-01-07 14:17:31,786 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 47 edges. 47 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:17:31,788 INFO L225 Difference]: With dead ends: 102 [2019-01-07 14:17:31,788 INFO L226 Difference]: Without dead ends: 101 [2019-01-07 14:17:31,789 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 2 SyntacticMatches, 1 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 61 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=98, Invalid=174, Unknown=0, NotChecked=0, Total=272 [2019-01-07 14:17:31,790 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 101 states. [2019-01-07 14:17:32,866 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 101 to 81. [2019-01-07 14:17:32,866 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:17:32,866 INFO L82 GeneralOperation]: Start isEquivalent. First operand 101 states. Second operand 81 states. [2019-01-07 14:17:32,866 INFO L74 IsIncluded]: Start isIncluded. First operand 101 states. Second operand 81 states. [2019-01-07 14:17:32,867 INFO L87 Difference]: Start difference. First operand 101 states. Second operand 81 states. [2019-01-07 14:17:32,872 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:17:32,872 INFO L93 Difference]: Finished difference Result 101 states and 386 transitions. [2019-01-07 14:17:32,872 INFO L276 IsEmpty]: Start isEmpty. Operand 101 states and 386 transitions. [2019-01-07 14:17:32,872 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:17:32,872 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:17:32,873 INFO L74 IsIncluded]: Start isIncluded. First operand 81 states. Second operand 101 states. [2019-01-07 14:17:32,873 INFO L87 Difference]: Start difference. First operand 81 states. Second operand 101 states. [2019-01-07 14:17:32,876 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:17:32,877 INFO L93 Difference]: Finished difference Result 101 states and 386 transitions. [2019-01-07 14:17:32,877 INFO L276 IsEmpty]: Start isEmpty. Operand 101 states and 386 transitions. [2019-01-07 14:17:32,877 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:17:32,877 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:17:32,877 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:17:32,877 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:17:32,878 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 81 states. [2019-01-07 14:17:32,882 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 81 states to 81 states and 357 transitions. [2019-01-07 14:17:32,882 INFO L78 Accepts]: Start accepts. Automaton has 81 states and 357 transitions. Word has length 6 [2019-01-07 14:17:32,882 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:17:32,883 INFO L480 AbstractCegarLoop]: Abstraction has 81 states and 357 transitions. [2019-01-07 14:17:32,883 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 14:17:32,883 INFO L276 IsEmpty]: Start isEmpty. Operand 81 states and 357 transitions. [2019-01-07 14:17:32,883 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-07 14:17:32,883 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:17:32,883 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-07 14:17:32,884 INFO L423 AbstractCegarLoop]: === Iteration 30 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:17:32,884 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:17:32,884 INFO L82 PathProgramCache]: Analyzing trace with hash 902592022, now seen corresponding path program 1 times [2019-01-07 14:17:32,884 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:17:32,885 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:17:32,885 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:17:32,885 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:17:32,885 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:17:32,888 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:17:33,132 WARN L181 SmtUtils]: Spent 168.00 ms on a formula simplification. DAG size of input: 30 DAG size of output: 17 [2019-01-07 14:17:33,210 INFO L273 TraceCheckUtils]: 0: Hoare triple {8246#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {8248#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 14:17:33,212 INFO L273 TraceCheckUtils]: 1: Hoare triple {8248#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {8249#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-07 14:17:33,213 INFO L273 TraceCheckUtils]: 2: Hoare triple {8249#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {8250#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-07 14:17:33,213 INFO L273 TraceCheckUtils]: 3: Hoare triple {8250#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {8251#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-01-07 14:17:33,214 INFO L273 TraceCheckUtils]: 4: Hoare triple {8251#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume #memory_int[main_p1] >= 0; {8251#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-01-07 14:17:33,214 INFO L273 TraceCheckUtils]: 5: Hoare triple {8251#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume !(#memory_int[main_p2] <= 0); {8247#false} is VALID [2019-01-07 14:17:33,215 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:17:33,215 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:17:33,215 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:17:33,215 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-07 14:17:33,215 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [16], [20], [21] [2019-01-07 14:17:33,218 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:17:33,218 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:17:33,227 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:17:33,227 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 3. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-07 14:17:33,228 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:17:33,228 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:17:33,228 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:17:33,228 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 28 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 28 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:17:33,239 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:17:33,239 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:17:33,243 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:17:33,251 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:17:33,252 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:17:33,263 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:17:33,270 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-07 14:17:33,281 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:33,282 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 26 [2019-01-07 14:17:33,296 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:33,298 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:33,298 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 33 [2019-01-07 14:17:33,302 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:17:33,315 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:17:33,325 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:17:33,335 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:17:33,349 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:17:33,350 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:22, output treesize:27 [2019-01-07 14:17:33,354 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:17:33,354 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_150|, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_150| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:17:33,354 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:17:33,409 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:33,411 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:33,412 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:33,413 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:33,414 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 28 [2019-01-07 14:17:33,417 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:17:33,435 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:17:33,436 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:22 [2019-01-07 14:17:35,470 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:17:35,470 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_151|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_151| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= (select |v_#memory_int_151| ULTIMATE.start_main_p2) 0) (= 0 (select |v_#memory_int_151| ULTIMATE.start_main_p3)) (= |#memory_int| (store |v_#memory_int_151| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-07 14:17:35,470 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:17:35,521 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:35,523 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:35,524 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:35,525 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:35,526 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 14:17:35,527 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 28 treesize of output 41 [2019-01-07 14:17:35,532 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:17:35,551 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:17:35,551 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:34, output treesize:22 [2019-01-07 14:17:35,560 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:17:35,560 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_152|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_152| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_152| ULTIMATE.start_main_p4) 1)) (= |#memory_int| (store |v_#memory_int_152| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= .cse0 0) (= 0 (select |v_#memory_int_152| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-07 14:17:35,560 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:17:35,609 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:35,611 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:35,612 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:35,613 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:35,614 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:35,616 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:35,616 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 30 treesize of output 44 [2019-01-07 14:17:35,620 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:17:35,643 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:17:35,644 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:36, output treesize:26 [2019-01-07 14:17:35,650 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:17:35,650 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_153|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_153| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |v_#memory_int_153| ULTIMATE.start_main_p4) 1) 0) (= |#memory_int| (store |v_#memory_int_153| ULTIMATE.start_main_p3 (+ .cse0 1))) (= .cse0 0) (= (+ (select |v_#memory_int_153| ULTIMATE.start_main_p2) 1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-07 14:17:35,650 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-07 14:17:35,690 INFO L273 TraceCheckUtils]: 0: Hoare triple {8246#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {8255#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:17:35,691 INFO L273 TraceCheckUtils]: 1: Hoare triple {8255#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {8259#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:17:35,696 INFO L273 TraceCheckUtils]: 2: Hoare triple {8259#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {8263#(and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:17:35,697 INFO L273 TraceCheckUtils]: 3: Hoare triple {8263#(and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {8267#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-07 14:17:35,698 INFO L273 TraceCheckUtils]: 4: Hoare triple {8267#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume #memory_int[main_p1] >= 0; {8267#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-07 14:17:35,698 INFO L273 TraceCheckUtils]: 5: Hoare triple {8267#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume !(#memory_int[main_p2] <= 0); {8247#false} is VALID [2019-01-07 14:17:35,699 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:17:35,699 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:17:35,761 INFO L273 TraceCheckUtils]: 5: Hoare triple {8274#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {8247#false} is VALID [2019-01-07 14:17:35,767 INFO L273 TraceCheckUtils]: 4: Hoare triple {8274#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {8274#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:17:35,784 INFO L273 TraceCheckUtils]: 3: Hoare triple {8281#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {8274#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:17:35,785 INFO L273 TraceCheckUtils]: 2: Hoare triple {8285#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {8281#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:17:35,786 INFO L273 TraceCheckUtils]: 1: Hoare triple {8289#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {8285#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:17:35,788 INFO L273 TraceCheckUtils]: 0: Hoare triple {8246#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {8289#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:17:35,788 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 5 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:17:35,807 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:17:35,807 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-07 14:17:35,807 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:17:35,808 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-07 14:17:35,808 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:17:35,808 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 14:17:35,824 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:17:35,825 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 14:17:35,825 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 14:17:35,825 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=71, Invalid=111, Unknown=0, NotChecked=0, Total=182 [2019-01-07 14:17:35,825 INFO L87 Difference]: Start difference. First operand 81 states and 357 transitions. Second operand 10 states. [2019-01-07 14:17:38,054 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:17:38,054 INFO L93 Difference]: Finished difference Result 108 states and 386 transitions. [2019-01-07 14:17:38,054 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-07 14:17:38,055 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-07 14:17:38,055 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:17:38,055 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 14:17:38,055 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 57 transitions. [2019-01-07 14:17:38,056 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 14:17:38,056 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 57 transitions. [2019-01-07 14:17:38,056 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 57 transitions. [2019-01-07 14:17:38,166 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 57 edges. 57 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:17:38,168 INFO L225 Difference]: With dead ends: 108 [2019-01-07 14:17:38,168 INFO L226 Difference]: Without dead ends: 107 [2019-01-07 14:17:38,169 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 16 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 59 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=89, Invalid=151, Unknown=0, NotChecked=0, Total=240 [2019-01-07 14:17:38,169 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 107 states. [2019-01-07 14:17:39,703 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 107 to 77. [2019-01-07 14:17:39,703 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:17:39,703 INFO L82 GeneralOperation]: Start isEquivalent. First operand 107 states. Second operand 77 states. [2019-01-07 14:17:39,703 INFO L74 IsIncluded]: Start isIncluded. First operand 107 states. Second operand 77 states. [2019-01-07 14:17:39,703 INFO L87 Difference]: Start difference. First operand 107 states. Second operand 77 states. [2019-01-07 14:17:39,706 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:17:39,706 INFO L93 Difference]: Finished difference Result 107 states and 383 transitions. [2019-01-07 14:17:39,706 INFO L276 IsEmpty]: Start isEmpty. Operand 107 states and 383 transitions. [2019-01-07 14:17:39,706 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:17:39,706 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:17:39,707 INFO L74 IsIncluded]: Start isIncluded. First operand 77 states. Second operand 107 states. [2019-01-07 14:17:39,707 INFO L87 Difference]: Start difference. First operand 77 states. Second operand 107 states. [2019-01-07 14:17:39,710 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:17:39,710 INFO L93 Difference]: Finished difference Result 107 states and 383 transitions. [2019-01-07 14:17:39,710 INFO L276 IsEmpty]: Start isEmpty. Operand 107 states and 383 transitions. [2019-01-07 14:17:39,710 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:17:39,710 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:17:39,711 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:17:39,711 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:17:39,711 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 77 states. [2019-01-07 14:17:39,713 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 77 states to 77 states and 337 transitions. [2019-01-07 14:17:39,713 INFO L78 Accepts]: Start accepts. Automaton has 77 states and 337 transitions. Word has length 6 [2019-01-07 14:17:39,714 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:17:39,714 INFO L480 AbstractCegarLoop]: Abstraction has 77 states and 337 transitions. [2019-01-07 14:17:39,714 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 14:17:39,714 INFO L276 IsEmpty]: Start isEmpty. Operand 77 states and 337 transitions. [2019-01-07 14:17:39,714 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-07 14:17:39,714 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:17:39,714 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-07 14:17:39,715 INFO L423 AbstractCegarLoop]: === Iteration 31 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:17:39,715 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:17:39,715 INFO L82 PathProgramCache]: Analyzing trace with hash 902591586, now seen corresponding path program 1 times [2019-01-07 14:17:39,715 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:17:39,716 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:17:39,716 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:17:39,716 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:17:39,716 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:17:39,720 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:17:40,224 INFO L273 TraceCheckUtils]: 0: Hoare triple {8830#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {8832#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:17:40,225 INFO L273 TraceCheckUtils]: 1: Hoare triple {8832#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {8833#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-07 14:17:40,226 INFO L273 TraceCheckUtils]: 2: Hoare triple {8833#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {8834#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:17:40,227 INFO L273 TraceCheckUtils]: 3: Hoare triple {8834#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {8835#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-01-07 14:17:40,228 INFO L273 TraceCheckUtils]: 4: Hoare triple {8835#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {8836#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:17:40,228 INFO L273 TraceCheckUtils]: 5: Hoare triple {8836#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {8831#false} is VALID [2019-01-07 14:17:40,229 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:17:40,229 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:17:40,229 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:17:40,229 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-07 14:17:40,230 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [14], [16], [19] [2019-01-07 14:17:40,231 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:17:40,231 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:17:40,244 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:17:40,244 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 3. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 4 fixpoints after 4 different actions. Largest state had 0 variables. [2019-01-07 14:17:40,244 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:17:40,245 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:17:40,245 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:17:40,245 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 29 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 29 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:17:40,254 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:17:40,254 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:17:40,258 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:17:40,267 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:17:40,267 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:17:40,300 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:17:40,312 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:40,313 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:17:40,330 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:40,332 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:40,332 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:17:40,360 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:40,361 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:40,363 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:40,364 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:17:40,372 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:17:40,392 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:17:40,405 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:17:40,417 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:17:40,435 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:17:40,435 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-07 14:17:40,441 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:17:40,442 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_157|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_157| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:17:40,442 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:17:40,527 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:40,528 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:40,529 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:40,531 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:40,532 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:40,533 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:40,534 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:40,535 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 14:17:40,543 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:17:40,572 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:17:40,572 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-07 14:17:40,630 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:17:40,630 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_158|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_158| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_158| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= (select |v_#memory_int_158| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_158| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_158| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= .cse0 0))) [2019-01-07 14:17:40,630 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:17:40,715 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:40,716 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:40,717 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:40,718 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:40,720 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:40,721 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:40,722 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:40,723 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 14:17:40,724 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 60 [2019-01-07 14:17:40,732 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:17:40,770 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:17:40,770 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:30 [2019-01-07 14:17:41,062 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:17:41,062 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_159|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_159| ULTIMATE.start_main_p2))) (and (= 0 .cse0) (= 0 (+ (select |v_#memory_int_159| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_159| ULTIMATE.start_main_p1)) (= |#memory_int| (store |v_#memory_int_159| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= 0 (select |v_#memory_int_159| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:17:41,062 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:17:41,156 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:41,157 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:41,158 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:41,160 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:41,161 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:41,162 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:41,163 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:41,164 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:41,166 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:41,167 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 69 [2019-01-07 14:17:41,175 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:17:41,220 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:17:41,220 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:44, output treesize:34 [2019-01-07 14:17:43,240 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:17:43,240 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_160|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_160| ULTIMATE.start_main_p3))) (and (= 0 (+ (select |v_#memory_int_160| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |v_#memory_int_160| ULTIMATE.start_main_p2) 1) 0) (= |#memory_int| (store |v_#memory_int_160| ULTIMATE.start_main_p3 (+ .cse0 1))) (= (select |v_#memory_int_160| ULTIMATE.start_main_p1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= .cse0 0))) [2019-01-07 14:17:43,240 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-07 14:17:43,406 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:43,408 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:43,409 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:43,410 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:43,411 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:43,412 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:43,413 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:43,414 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:43,415 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:43,416 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:43,417 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:43,418 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 14:17:43,419 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 75 [2019-01-07 14:17:43,435 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:17:43,484 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:17:43,484 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:44, output treesize:34 [2019-01-07 14:17:43,494 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:17:43,494 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_161|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_161| ULTIMATE.start_main_p1))) (and (= (+ (select |v_#memory_int_161| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_161| ULTIMATE.start_main_p3) 1) (= 0 .cse0) (= (store |v_#memory_int_161| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |v_#memory_int_161| ULTIMATE.start_main_p2) 1) 0))) [2019-01-07 14:17:43,494 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-07 14:17:43,536 INFO L273 TraceCheckUtils]: 0: Hoare triple {8830#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {8840#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:17:43,538 INFO L273 TraceCheckUtils]: 1: Hoare triple {8840#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {8844#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:17:43,540 INFO L273 TraceCheckUtils]: 2: Hoare triple {8844#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {8848#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-07 14:17:43,543 INFO L273 TraceCheckUtils]: 3: Hoare triple {8848#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {8852#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-01-07 14:17:43,545 INFO L273 TraceCheckUtils]: 4: Hoare triple {8852#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {8856#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-07 14:17:43,546 INFO L273 TraceCheckUtils]: 5: Hoare triple {8856#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume !(#memory_int[main_p1] >= 0); {8831#false} is VALID [2019-01-07 14:17:43,547 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:17:43,547 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:17:43,732 INFO L273 TraceCheckUtils]: 5: Hoare triple {8836#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {8831#false} is VALID [2019-01-07 14:17:43,733 INFO L273 TraceCheckUtils]: 4: Hoare triple {8863#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {8836#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:17:43,734 INFO L273 TraceCheckUtils]: 3: Hoare triple {8867#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {8863#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} is VALID [2019-01-07 14:17:43,736 INFO L273 TraceCheckUtils]: 2: Hoare triple {8871#(<= 0 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {8867#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1))} is VALID [2019-01-07 14:17:43,738 INFO L273 TraceCheckUtils]: 1: Hoare triple {8875#(<= 0 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {8871#(<= 0 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1))} is VALID [2019-01-07 14:17:43,740 INFO L273 TraceCheckUtils]: 0: Hoare triple {8830#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {8875#(<= 0 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1))} is VALID [2019-01-07 14:17:43,740 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 4 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:17:43,759 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:17:43,759 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5, 5] total 14 [2019-01-07 14:17:43,759 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:17:43,760 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-07 14:17:43,760 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:17:43,760 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-01-07 14:17:43,778 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:17:43,778 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-01-07 14:17:43,778 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-01-07 14:17:43,779 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=93, Invalid=147, Unknown=0, NotChecked=0, Total=240 [2019-01-07 14:17:43,779 INFO L87 Difference]: Start difference. First operand 77 states and 337 transitions. Second operand 12 states. [2019-01-07 14:17:48,365 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:17:48,365 INFO L93 Difference]: Finished difference Result 120 states and 459 transitions. [2019-01-07 14:17:48,365 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-07 14:17:48,365 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-07 14:17:48,365 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:17:48,365 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-07 14:17:48,366 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 63 transitions. [2019-01-07 14:17:48,366 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-07 14:17:48,367 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 63 transitions. [2019-01-07 14:17:48,367 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 63 transitions. [2019-01-07 14:17:48,713 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 63 edges. 63 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:17:48,716 INFO L225 Difference]: With dead ends: 120 [2019-01-07 14:17:48,716 INFO L226 Difference]: Without dead ends: 119 [2019-01-07 14:17:48,716 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 1 SyntacticMatches, 0 SemanticMatches, 17 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 86 ImplicationChecksByTransitivity, 0.8s TimeCoverageRelationStatistics Valid=129, Invalid=213, Unknown=0, NotChecked=0, Total=342 [2019-01-07 14:17:48,716 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 119 states. [2019-01-07 14:17:49,473 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 119 to 82. [2019-01-07 14:17:49,473 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:17:49,473 INFO L82 GeneralOperation]: Start isEquivalent. First operand 119 states. Second operand 82 states. [2019-01-07 14:17:49,474 INFO L74 IsIncluded]: Start isIncluded. First operand 119 states. Second operand 82 states. [2019-01-07 14:17:49,474 INFO L87 Difference]: Start difference. First operand 119 states. Second operand 82 states. [2019-01-07 14:17:49,479 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:17:49,479 INFO L93 Difference]: Finished difference Result 119 states and 455 transitions. [2019-01-07 14:17:49,479 INFO L276 IsEmpty]: Start isEmpty. Operand 119 states and 455 transitions. [2019-01-07 14:17:49,479 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:17:49,480 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:17:49,480 INFO L74 IsIncluded]: Start isIncluded. First operand 82 states. Second operand 119 states. [2019-01-07 14:17:49,480 INFO L87 Difference]: Start difference. First operand 82 states. Second operand 119 states. [2019-01-07 14:17:49,484 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:17:49,484 INFO L93 Difference]: Finished difference Result 119 states and 455 transitions. [2019-01-07 14:17:49,484 INFO L276 IsEmpty]: Start isEmpty. Operand 119 states and 455 transitions. [2019-01-07 14:17:49,484 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:17:49,485 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:17:49,485 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:17:49,485 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:17:49,485 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 82 states. [2019-01-07 14:17:49,487 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 82 states to 82 states and 362 transitions. [2019-01-07 14:17:49,488 INFO L78 Accepts]: Start accepts. Automaton has 82 states and 362 transitions. Word has length 6 [2019-01-07 14:17:49,488 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:17:49,488 INFO L480 AbstractCegarLoop]: Abstraction has 82 states and 362 transitions. [2019-01-07 14:17:49,488 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-01-07 14:17:49,488 INFO L276 IsEmpty]: Start isEmpty. Operand 82 states and 362 transitions. [2019-01-07 14:17:49,489 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-07 14:17:49,489 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:17:49,489 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-07 14:17:49,489 INFO L423 AbstractCegarLoop]: === Iteration 32 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:17:49,489 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:17:49,489 INFO L82 PathProgramCache]: Analyzing trace with hash 902703186, now seen corresponding path program 2 times [2019-01-07 14:17:49,490 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:17:49,490 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:17:49,490 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:17:49,490 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:17:49,491 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:17:49,494 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:17:49,968 INFO L273 TraceCheckUtils]: 0: Hoare triple {9479#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {9481#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:17:49,969 INFO L273 TraceCheckUtils]: 1: Hoare triple {9481#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {9482#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:17:49,970 INFO L273 TraceCheckUtils]: 2: Hoare triple {9482#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {9483#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} is VALID [2019-01-07 14:17:49,971 INFO L273 TraceCheckUtils]: 3: Hoare triple {9483#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {9484#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} is VALID [2019-01-07 14:17:49,972 INFO L273 TraceCheckUtils]: 4: Hoare triple {9484#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {9485#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:17:49,972 INFO L273 TraceCheckUtils]: 5: Hoare triple {9485#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {9480#false} is VALID [2019-01-07 14:17:49,973 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:17:49,973 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:17:49,973 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:17:49,973 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-07 14:17:49,974 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-07 14:17:49,974 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:17:49,974 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 30 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 30 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:17:49,984 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-07 14:17:49,985 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-07 14:17:49,991 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-07 14:17:49,991 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-07 14:17:49,995 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:17:49,996 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:17:50,017 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:17:50,025 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:50,026 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:17:50,036 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:50,037 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:50,038 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:17:50,052 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:50,054 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:50,055 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:50,056 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:17:50,060 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:17:50,078 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:17:50,088 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:17:50,098 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:17:50,113 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:17:50,114 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-07 14:17:50,117 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:17:50,118 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_166|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_166| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:17:50,118 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:17:50,173 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:50,175 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:50,176 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:50,177 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:50,178 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:50,179 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:50,181 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:50,181 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 14:17:50,185 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:17:50,213 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:17:50,213 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-07 14:17:52,225 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:17:52,225 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_167|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_167| ULTIMATE.start_main_p4))) (and (= (select |v_#memory_int_167| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_167| ULTIMATE.start_main_p1) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (store |v_#memory_int_167| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_167| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:17:52,225 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:17:52,290 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:52,291 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:52,292 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:52,294 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:52,295 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:52,296 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:52,297 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:52,298 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:52,300 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:52,301 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 67 [2019-01-07 14:17:52,305 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:17:52,342 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:17:52,343 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-07 14:17:52,893 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:17:52,893 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_168|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_168| ULTIMATE.start_main_p3))) (and (= (+ (select |v_#memory_int_168| ULTIMATE.start_main_p4) 1) 0) (= (select |v_#memory_int_168| ULTIMATE.start_main_p1) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_168| ULTIMATE.start_main_p3 (+ .cse0 1))) (= (select |v_#memory_int_168| ULTIMATE.start_main_p2) 0) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:17:52,893 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:17:52,958 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:52,959 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:52,960 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:52,962 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:52,963 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:52,964 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:52,965 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:52,966 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:52,967 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:52,968 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:52,969 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:52,970 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 14:17:52,971 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 73 [2019-01-07 14:17:52,974 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:17:53,011 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:17:53,012 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-07 14:17:53,017 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:17:53,017 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_169|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_169| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_169| ULTIMATE.start_main_p3) 1) (= (+ (select |v_#memory_int_169| ULTIMATE.start_main_p4) 1) 0) (= .cse0 0) (= (select |v_#memory_int_169| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (store |v_#memory_int_169| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:17:53,018 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:17:53,078 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:53,079 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:53,080 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:53,082 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:53,083 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:53,084 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:53,086 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:53,087 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:53,087 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 14:17:53,089 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:53,090 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 72 [2019-01-07 14:17:53,094 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:17:53,133 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:17:53,133 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:30 [2019-01-07 14:17:53,203 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:17:53,203 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_170|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_170| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (select |v_#memory_int_170| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |v_#memory_int_170| ULTIMATE.start_main_p4) 1)) (= |#memory_int| (store |v_#memory_int_170| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= (select |v_#memory_int_170| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:17:53,203 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:17:53,238 INFO L273 TraceCheckUtils]: 0: Hoare triple {9479#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {9489#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:17:53,240 INFO L273 TraceCheckUtils]: 1: Hoare triple {9489#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {9493#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:17:53,242 INFO L273 TraceCheckUtils]: 2: Hoare triple {9493#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {9497#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:17:53,244 INFO L273 TraceCheckUtils]: 3: Hoare triple {9497#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {9501#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:17:53,246 INFO L273 TraceCheckUtils]: 4: Hoare triple {9501#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {9505#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 1))} is VALID [2019-01-07 14:17:53,247 INFO L273 TraceCheckUtils]: 5: Hoare triple {9505#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 1))} assume !(#memory_int[main_p1] >= 0); {9480#false} is VALID [2019-01-07 14:17:53,247 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:17:53,247 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:17:53,378 INFO L273 TraceCheckUtils]: 5: Hoare triple {9509#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {9480#false} is VALID [2019-01-07 14:17:53,380 INFO L273 TraceCheckUtils]: 4: Hoare triple {9513#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {9509#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:17:53,381 INFO L273 TraceCheckUtils]: 3: Hoare triple {9517#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {9513#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:17:53,383 INFO L273 TraceCheckUtils]: 2: Hoare triple {9521#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {9517#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:17:53,385 INFO L273 TraceCheckUtils]: 1: Hoare triple {9525#(<= 0 (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {9521#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:17:53,387 INFO L273 TraceCheckUtils]: 0: Hoare triple {9479#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {9525#(<= 0 (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:17:53,388 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 6 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:17:53,407 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:17:53,408 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5, 5] total 15 [2019-01-07 14:17:53,408 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:17:53,408 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-07 14:17:53,408 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:17:53,408 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-01-07 14:17:53,428 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:17:53,428 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-01-07 14:17:53,428 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-01-07 14:17:53,429 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=102, Invalid=170, Unknown=0, NotChecked=0, Total=272 [2019-01-07 14:17:53,429 INFO L87 Difference]: Start difference. First operand 82 states and 362 transitions. Second operand 12 states. [2019-01-07 14:17:56,912 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:17:56,912 INFO L93 Difference]: Finished difference Result 146 states and 556 transitions. [2019-01-07 14:17:56,912 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-07 14:17:56,912 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-07 14:17:56,912 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:17:56,912 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-07 14:17:56,913 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 67 transitions. [2019-01-07 14:17:56,913 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-07 14:17:56,914 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 67 transitions. [2019-01-07 14:17:56,914 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 67 transitions. [2019-01-07 14:17:57,019 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 67 edges. 67 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:17:57,022 INFO L225 Difference]: With dead ends: 146 [2019-01-07 14:17:57,022 INFO L226 Difference]: Without dead ends: 145 [2019-01-07 14:17:57,023 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 18 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 100 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=134, Invalid=246, Unknown=0, NotChecked=0, Total=380 [2019-01-07 14:17:57,023 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 145 states. [2019-01-07 14:17:59,226 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 145 to 98. [2019-01-07 14:17:59,226 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:17:59,226 INFO L82 GeneralOperation]: Start isEquivalent. First operand 145 states. Second operand 98 states. [2019-01-07 14:17:59,226 INFO L74 IsIncluded]: Start isIncluded. First operand 145 states. Second operand 98 states. [2019-01-07 14:17:59,227 INFO L87 Difference]: Start difference. First operand 145 states. Second operand 98 states. [2019-01-07 14:17:59,230 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:17:59,231 INFO L93 Difference]: Finished difference Result 145 states and 549 transitions. [2019-01-07 14:17:59,231 INFO L276 IsEmpty]: Start isEmpty. Operand 145 states and 549 transitions. [2019-01-07 14:17:59,231 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:17:59,231 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:17:59,231 INFO L74 IsIncluded]: Start isIncluded. First operand 98 states. Second operand 145 states. [2019-01-07 14:17:59,232 INFO L87 Difference]: Start difference. First operand 98 states. Second operand 145 states. [2019-01-07 14:17:59,235 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:17:59,235 INFO L93 Difference]: Finished difference Result 145 states and 549 transitions. [2019-01-07 14:17:59,235 INFO L276 IsEmpty]: Start isEmpty. Operand 145 states and 549 transitions. [2019-01-07 14:17:59,235 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:17:59,236 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:17:59,236 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:17:59,236 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:17:59,236 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 98 states. [2019-01-07 14:17:59,238 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 98 states to 98 states and 442 transitions. [2019-01-07 14:17:59,238 INFO L78 Accepts]: Start accepts. Automaton has 98 states and 442 transitions. Word has length 6 [2019-01-07 14:17:59,238 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:17:59,238 INFO L480 AbstractCegarLoop]: Abstraction has 98 states and 442 transitions. [2019-01-07 14:17:59,238 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-01-07 14:17:59,239 INFO L276 IsEmpty]: Start isEmpty. Operand 98 states and 442 transitions. [2019-01-07 14:17:59,239 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-07 14:17:59,239 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:17:59,239 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-07 14:17:59,239 INFO L423 AbstractCegarLoop]: === Iteration 33 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:17:59,239 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:17:59,239 INFO L82 PathProgramCache]: Analyzing trace with hash 893362642, now seen corresponding path program 1 times [2019-01-07 14:17:59,240 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:17:59,240 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:17:59,240 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-07 14:17:59,240 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:17:59,241 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:17:59,244 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:17:59,602 INFO L273 TraceCheckUtils]: 0: Hoare triple {10256#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {10258#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:17:59,603 INFO L273 TraceCheckUtils]: 1: Hoare triple {10258#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {10258#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:17:59,604 INFO L273 TraceCheckUtils]: 2: Hoare triple {10258#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {10259#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-07 14:17:59,605 INFO L273 TraceCheckUtils]: 3: Hoare triple {10259#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p1] >= 0; {10259#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-07 14:17:59,605 INFO L273 TraceCheckUtils]: 4: Hoare triple {10259#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume #memory_int[main_p2] <= 0; {10259#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-07 14:17:59,606 INFO L273 TraceCheckUtils]: 5: Hoare triple {10259#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume !(#memory_int[main_p3] >= 0); {10257#false} is VALID [2019-01-07 14:17:59,606 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 14:17:59,607 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:17:59,607 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:17:59,607 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-07 14:17:59,607 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [20], [22], [23] [2019-01-07 14:17:59,608 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:17:59,608 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:17:59,617 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:17:59,618 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 3. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-07 14:17:59,618 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:17:59,618 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:17:59,618 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:17:59,618 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 31 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 31 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:17:59,628 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:17:59,628 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:17:59,635 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:17:59,637 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:17:59,637 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:17:59,686 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:17:59,699 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:59,700 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:17:59,719 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:59,720 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:59,721 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:17:59,746 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:59,747 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:59,749 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:59,749 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:17:59,758 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:17:59,777 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:17:59,792 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:17:59,804 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:17:59,824 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:17:59,825 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 14:17:59,832 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:17:59,832 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_175|, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_175| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:17:59,832 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:17:59,976 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:59,977 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:59,979 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:59,980 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:59,981 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:59,982 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:59,983 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:17:59,984 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 14:17:59,992 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:18:00,030 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:18:00,031 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 14:18:00,190 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:18:00,190 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_176|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_176| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= 0 (select |v_#memory_int_176| ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_176| ULTIMATE.start_main_p2)) (= (store |v_#memory_int_176| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= 0 (select |v_#memory_int_176| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-07 14:18:00,190 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:18:00,279 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:00,281 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:00,282 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:00,283 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:00,284 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:00,286 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:00,287 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:00,288 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:00,289 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:00,290 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 65 [2019-01-07 14:18:00,299 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:18:00,337 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:18:00,337 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-07 14:18:00,349 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:18:00,349 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_177|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_177| ULTIMATE.start_main_p2))) (and (= 1 (select |v_#memory_int_177| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_177| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= 0 .cse0) (= 0 (select |v_#memory_int_177| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 (select |v_#memory_int_177| ULTIMATE.start_main_p4)))) [2019-01-07 14:18:00,349 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:18:00,488 INFO L273 TraceCheckUtils]: 0: Hoare triple {10256#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {10263#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:18:00,490 INFO L273 TraceCheckUtils]: 1: Hoare triple {10263#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {10267#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:18:00,492 INFO L273 TraceCheckUtils]: 2: Hoare triple {10267#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {10271#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-07 14:18:00,493 INFO L273 TraceCheckUtils]: 3: Hoare triple {10271#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p1] >= 0; {10271#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-07 14:18:00,494 INFO L273 TraceCheckUtils]: 4: Hoare triple {10271#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p2] <= 0; {10271#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-07 14:18:00,495 INFO L273 TraceCheckUtils]: 5: Hoare triple {10271#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume !(#memory_int[main_p3] >= 0); {10257#false} is VALID [2019-01-07 14:18:00,496 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:18:00,496 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:18:00,582 INFO L273 TraceCheckUtils]: 5: Hoare triple {10281#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {10257#false} is VALID [2019-01-07 14:18:00,582 INFO L273 TraceCheckUtils]: 4: Hoare triple {10281#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {10281#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:18:00,583 INFO L273 TraceCheckUtils]: 3: Hoare triple {10281#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {10281#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:18:00,583 INFO L273 TraceCheckUtils]: 2: Hoare triple {10291#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {10281#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:18:00,584 INFO L273 TraceCheckUtils]: 1: Hoare triple {10295#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {10291#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:18:00,585 INFO L273 TraceCheckUtils]: 0: Hoare triple {10256#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {10295#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:18:00,586 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:18:00,605 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:18:00,605 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 3, 3] total 8 [2019-01-07 14:18:00,605 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:18:00,605 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 6 [2019-01-07 14:18:00,606 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:18:00,606 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states. [2019-01-07 14:18:00,622 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:18:00,622 INFO L459 AbstractCegarLoop]: Interpolant automaton has 7 states [2019-01-07 14:18:00,622 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2019-01-07 14:18:00,622 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=35, Invalid=55, Unknown=0, NotChecked=0, Total=90 [2019-01-07 14:18:00,623 INFO L87 Difference]: Start difference. First operand 98 states and 442 transitions. Second operand 7 states. [2019-01-07 14:18:02,671 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:18:02,671 INFO L93 Difference]: Finished difference Result 111 states and 462 transitions. [2019-01-07 14:18:02,672 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-07 14:18:02,672 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 6 [2019-01-07 14:18:02,672 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:18:02,672 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2019-01-07 14:18:02,672 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 38 transitions. [2019-01-07 14:18:02,673 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2019-01-07 14:18:02,673 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 38 transitions. [2019-01-07 14:18:02,673 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 38 transitions. [2019-01-07 14:18:02,721 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 38 edges. 38 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:18:02,723 INFO L225 Difference]: With dead ends: 111 [2019-01-07 14:18:02,723 INFO L226 Difference]: Without dead ends: 110 [2019-01-07 14:18:02,723 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 17 GetRequests, 5 SyntacticMatches, 2 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 24 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=51, Invalid=81, Unknown=0, NotChecked=0, Total=132 [2019-01-07 14:18:02,723 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 110 states. [2019-01-07 14:18:04,027 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 110 to 100. [2019-01-07 14:18:04,027 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:18:04,028 INFO L82 GeneralOperation]: Start isEquivalent. First operand 110 states. Second operand 100 states. [2019-01-07 14:18:04,028 INFO L74 IsIncluded]: Start isIncluded. First operand 110 states. Second operand 100 states. [2019-01-07 14:18:04,028 INFO L87 Difference]: Start difference. First operand 110 states. Second operand 100 states. [2019-01-07 14:18:04,030 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:18:04,030 INFO L93 Difference]: Finished difference Result 110 states and 460 transitions. [2019-01-07 14:18:04,030 INFO L276 IsEmpty]: Start isEmpty. Operand 110 states and 460 transitions. [2019-01-07 14:18:04,031 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:18:04,031 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:18:04,031 INFO L74 IsIncluded]: Start isIncluded. First operand 100 states. Second operand 110 states. [2019-01-07 14:18:04,031 INFO L87 Difference]: Start difference. First operand 100 states. Second operand 110 states. [2019-01-07 14:18:04,033 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:18:04,033 INFO L93 Difference]: Finished difference Result 110 states and 460 transitions. [2019-01-07 14:18:04,034 INFO L276 IsEmpty]: Start isEmpty. Operand 110 states and 460 transitions. [2019-01-07 14:18:04,034 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:18:04,034 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:18:04,034 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:18:04,034 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:18:04,034 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 100 states. [2019-01-07 14:18:04,036 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 100 states to 100 states and 452 transitions. [2019-01-07 14:18:04,036 INFO L78 Accepts]: Start accepts. Automaton has 100 states and 452 transitions. Word has length 6 [2019-01-07 14:18:04,036 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:18:04,037 INFO L480 AbstractCegarLoop]: Abstraction has 100 states and 452 transitions. [2019-01-07 14:18:04,037 INFO L481 AbstractCegarLoop]: Interpolant automaton has 7 states. [2019-01-07 14:18:04,037 INFO L276 IsEmpty]: Start isEmpty. Operand 100 states and 452 transitions. [2019-01-07 14:18:04,037 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-07 14:18:04,037 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:18:04,037 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-07 14:18:04,037 INFO L423 AbstractCegarLoop]: === Iteration 34 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:18:04,037 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:18:04,038 INFO L82 PathProgramCache]: Analyzing trace with hash 893472132, now seen corresponding path program 1 times [2019-01-07 14:18:04,038 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:18:04,038 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:18:04,038 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:18:04,038 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:18:04,038 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:18:04,043 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:18:04,372 INFO L273 TraceCheckUtils]: 0: Hoare triple {10909#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {10911#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-07 14:18:04,373 INFO L273 TraceCheckUtils]: 1: Hoare triple {10911#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {10911#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-07 14:18:04,374 INFO L273 TraceCheckUtils]: 2: Hoare triple {10911#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {10912#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-07 14:18:04,375 INFO L273 TraceCheckUtils]: 3: Hoare triple {10912#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {10913#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-07 14:18:04,376 INFO L273 TraceCheckUtils]: 4: Hoare triple {10913#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= (select |#memory_int| ULTIMATE.start_main_p2) 0))} assume #memory_int[main_p1] >= 0; {10914#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:18:04,376 INFO L273 TraceCheckUtils]: 5: Hoare triple {10914#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {10910#false} is VALID [2019-01-07 14:18:04,377 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 14:18:04,377 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:18:04,377 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:18:04,377 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-07 14:18:04,378 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [14], [20], [21] [2019-01-07 14:18:04,379 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:18:04,379 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:18:04,393 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:18:04,393 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 3. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-07 14:18:04,394 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:18:04,394 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:18:04,394 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:18:04,394 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 32 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 32 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:18:04,403 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:18:04,404 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:18:04,407 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:18:04,411 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:18:04,411 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:18:04,448 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:18:04,456 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:04,457 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:18:04,469 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:04,471 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:04,472 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:18:04,488 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:04,490 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:04,491 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:04,492 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:18:04,497 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:18:04,515 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:18:04,527 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:18:04,538 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:18:04,556 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:18:04,557 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 14:18:04,563 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:18:04,563 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_180|, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_180| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:18:04,563 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:18:04,624 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:04,626 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:04,627 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:04,628 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:04,630 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:04,631 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:04,632 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:04,633 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 14:18:04,666 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:18:04,705 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:18:04,705 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 14:18:04,865 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:18:04,865 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_181|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_181| ULTIMATE.start_main_p1))) (and (= 0 (select |v_#memory_int_181| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_181| ULTIMATE.start_main_p2)) (= (select |v_#memory_int_181| ULTIMATE.start_main_p4) 0) (= |#memory_int| (store |v_#memory_int_181| ULTIMATE.start_main_p1 (+ .cse0 1))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 .cse0))) [2019-01-07 14:18:04,866 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:18:04,929 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:04,930 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:04,932 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:04,933 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:04,934 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:04,936 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:04,937 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:04,938 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:04,939 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 14:18:04,942 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 59 [2019-01-07 14:18:04,947 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:18:05,019 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:18:05,020 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-07 14:18:05,032 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:18:05,032 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_182|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_182| ULTIMATE.start_main_p3))) (and (= (select |v_#memory_int_182| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_182| ULTIMATE.start_main_p1) 1) (= 0 (select |v_#memory_int_182| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_182| ULTIMATE.start_main_p3 (+ .cse0 1))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-07 14:18:05,032 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:18:05,103 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:05,105 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:05,106 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:05,107 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:05,108 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:05,109 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:05,110 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:05,111 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:05,112 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:05,113 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 65 [2019-01-07 14:18:05,119 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:18:05,209 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:18:05,209 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-07 14:18:05,218 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:18:05,218 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_183|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_183| ULTIMATE.start_main_p2))) (and (= (store |v_#memory_int_183| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |v_#memory_int_183| ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_183| ULTIMATE.start_main_p4)) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 1 (select |v_#memory_int_183| ULTIMATE.start_main_p3)))) [2019-01-07 14:18:05,218 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:18:05,287 INFO L273 TraceCheckUtils]: 0: Hoare triple {10909#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {10918#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:18:05,288 INFO L273 TraceCheckUtils]: 1: Hoare triple {10918#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {10922#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:18:05,290 INFO L273 TraceCheckUtils]: 2: Hoare triple {10922#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {10926#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-01-07 14:18:05,292 INFO L273 TraceCheckUtils]: 3: Hoare triple {10926#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {10930#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))} is VALID [2019-01-07 14:18:05,293 INFO L273 TraceCheckUtils]: 4: Hoare triple {10930#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))} assume #memory_int[main_p1] >= 0; {10930#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))} is VALID [2019-01-07 14:18:05,294 INFO L273 TraceCheckUtils]: 5: Hoare triple {10930#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)))} assume !(#memory_int[main_p2] <= 0); {10910#false} is VALID [2019-01-07 14:18:05,295 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:18:05,295 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:18:05,354 INFO L273 TraceCheckUtils]: 5: Hoare triple {10914#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {10910#false} is VALID [2019-01-07 14:18:05,355 INFO L273 TraceCheckUtils]: 4: Hoare triple {10914#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {10914#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:18:05,356 INFO L273 TraceCheckUtils]: 3: Hoare triple {10943#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {10914#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:18:05,357 INFO L273 TraceCheckUtils]: 2: Hoare triple {10947#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {10943#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} is VALID [2019-01-07 14:18:05,358 INFO L273 TraceCheckUtils]: 1: Hoare triple {10951#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {10947#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1)} is VALID [2019-01-07 14:18:05,360 INFO L273 TraceCheckUtils]: 0: Hoare triple {10909#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {10951#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1)} is VALID [2019-01-07 14:18:05,360 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 2 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:18:05,380 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:18:05,381 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-07 14:18:05,381 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:18:05,381 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-07 14:18:05,381 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:18:05,381 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 14:18:05,400 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:18:05,401 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 14:18:05,401 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 14:18:05,401 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=61, Invalid=95, Unknown=0, NotChecked=0, Total=156 [2019-01-07 14:18:05,402 INFO L87 Difference]: Start difference. First operand 100 states and 452 transitions. Second operand 10 states. [2019-01-07 14:18:08,922 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:18:08,922 INFO L93 Difference]: Finished difference Result 153 states and 620 transitions. [2019-01-07 14:18:08,923 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-07 14:18:08,923 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-07 14:18:08,923 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:18:08,923 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 14:18:08,923 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 57 transitions. [2019-01-07 14:18:08,923 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 14:18:08,924 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 57 transitions. [2019-01-07 14:18:08,924 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 57 transitions. [2019-01-07 14:18:09,010 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 57 edges. 57 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:18:09,015 INFO L225 Difference]: With dead ends: 153 [2019-01-07 14:18:09,015 INFO L226 Difference]: Without dead ends: 152 [2019-01-07 14:18:09,015 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 3 SyntacticMatches, 1 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 45 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=89, Invalid=151, Unknown=0, NotChecked=0, Total=240 [2019-01-07 14:18:09,016 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 152 states. [2019-01-07 14:18:13,084 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 152 to 127. [2019-01-07 14:18:13,085 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:18:13,085 INFO L82 GeneralOperation]: Start isEquivalent. First operand 152 states. Second operand 127 states. [2019-01-07 14:18:13,085 INFO L74 IsIncluded]: Start isIncluded. First operand 152 states. Second operand 127 states. [2019-01-07 14:18:13,085 INFO L87 Difference]: Start difference. First operand 152 states. Second operand 127 states. [2019-01-07 14:18:13,088 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:18:13,088 INFO L93 Difference]: Finished difference Result 152 states and 617 transitions. [2019-01-07 14:18:13,089 INFO L276 IsEmpty]: Start isEmpty. Operand 152 states and 617 transitions. [2019-01-07 14:18:13,089 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:18:13,089 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:18:13,089 INFO L74 IsIncluded]: Start isIncluded. First operand 127 states. Second operand 152 states. [2019-01-07 14:18:13,089 INFO L87 Difference]: Start difference. First operand 127 states. Second operand 152 states. [2019-01-07 14:18:13,093 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:18:13,094 INFO L93 Difference]: Finished difference Result 152 states and 617 transitions. [2019-01-07 14:18:13,094 INFO L276 IsEmpty]: Start isEmpty. Operand 152 states and 617 transitions. [2019-01-07 14:18:13,094 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:18:13,094 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:18:13,094 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:18:13,095 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:18:13,095 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 127 states. [2019-01-07 14:18:13,098 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 127 states to 127 states and 589 transitions. [2019-01-07 14:18:13,098 INFO L78 Accepts]: Start accepts. Automaton has 127 states and 589 transitions. Word has length 6 [2019-01-07 14:18:13,099 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:18:13,099 INFO L480 AbstractCegarLoop]: Abstraction has 127 states and 589 transitions. [2019-01-07 14:18:13,099 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 14:18:13,099 INFO L276 IsEmpty]: Start isEmpty. Operand 127 states and 589 transitions. [2019-01-07 14:18:13,099 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-07 14:18:13,099 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:18:13,100 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-07 14:18:13,100 INFO L423 AbstractCegarLoop]: === Iteration 35 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:18:13,100 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:18:13,100 INFO L82 PathProgramCache]: Analyzing trace with hash 897235472, now seen corresponding path program 1 times [2019-01-07 14:18:13,100 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:18:13,101 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:18:13,101 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:18:13,101 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:18:13,101 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:18:13,105 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:18:13,354 INFO L273 TraceCheckUtils]: 0: Hoare triple {11776#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {11778#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:18:13,355 INFO L273 TraceCheckUtils]: 1: Hoare triple {11778#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {11778#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:18:13,356 INFO L273 TraceCheckUtils]: 2: Hoare triple {11778#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {11779#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-07 14:18:13,357 INFO L273 TraceCheckUtils]: 3: Hoare triple {11779#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p1] >= 0; {11779#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-07 14:18:13,358 INFO L273 TraceCheckUtils]: 4: Hoare triple {11779#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p2] <= 0; {11780#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-07 14:18:13,358 INFO L273 TraceCheckUtils]: 5: Hoare triple {11780#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume !(#memory_int[main_p3] >= 0); {11777#false} is VALID [2019-01-07 14:18:13,359 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 14:18:13,359 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:18:13,359 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:18:13,359 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-07 14:18:13,359 INFO L207 CegarAbsIntRunner]: [0], [10], [16], [20], [22], [23] [2019-01-07 14:18:13,361 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:18:13,361 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:18:13,371 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:18:13,371 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 3. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-07 14:18:13,371 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:18:13,371 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:18:13,371 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:18:13,371 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 33 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 33 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:18:13,381 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:18:13,382 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:18:13,385 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:18:13,389 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:18:13,389 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:18:13,428 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:18:13,448 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-07 14:18:13,467 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:13,468 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 26 [2019-01-07 14:18:13,496 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:13,498 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:13,498 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 33 [2019-01-07 14:18:13,508 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:18:13,526 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:18:13,538 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:18:13,552 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:18:13,570 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:18:13,570 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:22, output treesize:27 [2019-01-07 14:18:13,578 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:18:13,578 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_187|, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_187| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:18:13,578 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:18:13,680 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:13,681 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:13,683 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:13,684 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:13,685 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 34 [2019-01-07 14:18:13,696 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:18:13,721 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:18:13,721 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:22 [2019-01-07 14:18:13,744 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:18:13,744 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_188|, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_188| ULTIMATE.start_main_p2))) (and (= (store |v_#memory_int_188| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_188| ULTIMATE.start_main_p3)) (= 0 .cse0) (= 0 (select |v_#memory_int_188| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-07 14:18:13,744 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:18:13,844 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:13,845 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:13,846 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:13,847 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:13,848 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:13,849 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 14:18:13,850 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 28 treesize of output 41 [2019-01-07 14:18:13,858 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:18:13,885 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:18:13,886 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:34, output treesize:24 [2019-01-07 14:18:13,899 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:18:13,900 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_189|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_189| ULTIMATE.start_main_p4))) (and (= 0 (+ (select |v_#memory_int_189| ULTIMATE.start_main_p2) 1)) (= 0 (select |v_#memory_int_189| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_189| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-07 14:18:13,900 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:18:14,065 INFO L273 TraceCheckUtils]: 0: Hoare triple {11776#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {11784#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:18:14,066 INFO L273 TraceCheckUtils]: 1: Hoare triple {11784#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {11788#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:18:14,068 INFO L273 TraceCheckUtils]: 2: Hoare triple {11788#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {11792#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-07 14:18:14,069 INFO L273 TraceCheckUtils]: 3: Hoare triple {11792#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p1] >= 0; {11792#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-07 14:18:14,070 INFO L273 TraceCheckUtils]: 4: Hoare triple {11792#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p2] <= 0; {11792#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-07 14:18:14,071 INFO L273 TraceCheckUtils]: 5: Hoare triple {11792#(and (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume !(#memory_int[main_p3] >= 0); {11777#false} is VALID [2019-01-07 14:18:14,071 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:18:14,071 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:18:14,211 INFO L273 TraceCheckUtils]: 5: Hoare triple {11802#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {11777#false} is VALID [2019-01-07 14:18:14,212 INFO L273 TraceCheckUtils]: 4: Hoare triple {11802#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {11802#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:18:14,212 INFO L273 TraceCheckUtils]: 3: Hoare triple {11802#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {11802#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:18:14,213 INFO L273 TraceCheckUtils]: 2: Hoare triple {11812#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {11802#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:18:14,215 INFO L273 TraceCheckUtils]: 1: Hoare triple {11816#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {11812#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:18:14,217 INFO L273 TraceCheckUtils]: 0: Hoare triple {11776#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {11816#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:18:14,217 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:18:14,236 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:18:14,236 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 14:18:14,236 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:18:14,236 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-07 14:18:14,237 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:18:14,237 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 14:18:14,253 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:18:14,254 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 14:18:14,254 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 14:18:14,254 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=41, Invalid=69, Unknown=0, NotChecked=0, Total=110 [2019-01-07 14:18:14,254 INFO L87 Difference]: Start difference. First operand 127 states and 589 transitions. Second operand 8 states. [2019-01-07 14:18:16,043 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:18:16,043 INFO L93 Difference]: Finished difference Result 143 states and 607 transitions. [2019-01-07 14:18:16,043 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-07 14:18:16,043 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-07 14:18:16,044 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:18:16,044 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 14:18:16,044 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 42 transitions. [2019-01-07 14:18:16,044 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 14:18:16,045 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 42 transitions. [2019-01-07 14:18:16,045 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 42 transitions. [2019-01-07 14:18:16,102 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 42 edges. 42 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:18:16,105 INFO L225 Difference]: With dead ends: 143 [2019-01-07 14:18:16,106 INFO L226 Difference]: Without dead ends: 138 [2019-01-07 14:18:16,106 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 16 GetRequests, 4 SyntacticMatches, 1 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 30 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=59, Invalid=97, Unknown=0, NotChecked=0, Total=156 [2019-01-07 14:18:16,106 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 138 states. [2019-01-07 14:18:18,305 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 138 to 127. [2019-01-07 14:18:18,305 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:18:18,305 INFO L82 GeneralOperation]: Start isEquivalent. First operand 138 states. Second operand 127 states. [2019-01-07 14:18:18,305 INFO L74 IsIncluded]: Start isIncluded. First operand 138 states. Second operand 127 states. [2019-01-07 14:18:18,306 INFO L87 Difference]: Start difference. First operand 138 states. Second operand 127 states. [2019-01-07 14:18:18,309 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:18:18,309 INFO L93 Difference]: Finished difference Result 138 states and 601 transitions. [2019-01-07 14:18:18,309 INFO L276 IsEmpty]: Start isEmpty. Operand 138 states and 601 transitions. [2019-01-07 14:18:18,309 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:18:18,310 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:18:18,310 INFO L74 IsIncluded]: Start isIncluded. First operand 127 states. Second operand 138 states. [2019-01-07 14:18:18,310 INFO L87 Difference]: Start difference. First operand 127 states. Second operand 138 states. [2019-01-07 14:18:18,314 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:18:18,314 INFO L93 Difference]: Finished difference Result 138 states and 601 transitions. [2019-01-07 14:18:18,314 INFO L276 IsEmpty]: Start isEmpty. Operand 138 states and 601 transitions. [2019-01-07 14:18:18,315 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:18:18,315 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:18:18,315 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:18:18,315 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:18:18,315 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 127 states. [2019-01-07 14:18:18,318 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 127 states to 127 states and 588 transitions. [2019-01-07 14:18:18,318 INFO L78 Accepts]: Start accepts. Automaton has 127 states and 588 transitions. Word has length 6 [2019-01-07 14:18:18,318 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:18:18,318 INFO L480 AbstractCegarLoop]: Abstraction has 127 states and 588 transitions. [2019-01-07 14:18:18,318 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 14:18:18,318 INFO L276 IsEmpty]: Start isEmpty. Operand 127 states and 588 transitions. [2019-01-07 14:18:18,318 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-07 14:18:18,318 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:18:18,319 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-07 14:18:18,319 INFO L423 AbstractCegarLoop]: === Iteration 36 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:18:18,319 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:18:18,319 INFO L82 PathProgramCache]: Analyzing trace with hash 896931732, now seen corresponding path program 2 times [2019-01-07 14:18:18,319 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:18:18,320 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:18:18,320 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:18:18,320 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:18:18,320 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:18:18,323 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:18:18,575 INFO L273 TraceCheckUtils]: 0: Hoare triple {12600#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {12602#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-07 14:18:18,576 INFO L273 TraceCheckUtils]: 1: Hoare triple {12602#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {12603#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-07 14:18:18,577 INFO L273 TraceCheckUtils]: 2: Hoare triple {12603#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {12603#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-07 14:18:18,578 INFO L273 TraceCheckUtils]: 3: Hoare triple {12603#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {12604#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-07 14:18:18,579 INFO L273 TraceCheckUtils]: 4: Hoare triple {12604#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= (select |#memory_int| ULTIMATE.start_main_p2) 0))} assume #memory_int[main_p1] >= 0; {12605#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:18:18,579 INFO L273 TraceCheckUtils]: 5: Hoare triple {12605#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {12601#false} is VALID [2019-01-07 14:18:18,580 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 14:18:18,580 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:18:18,580 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:18:18,580 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-07 14:18:18,580 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-07 14:18:18,581 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:18:18,581 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 34 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 34 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:18:18,591 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-07 14:18:18,591 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-07 14:18:18,597 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-07 14:18:18,597 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-07 14:18:18,601 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:18:18,601 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:18:18,634 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:18:18,647 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:18,647 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:18:18,667 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:18,668 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:18,669 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:18:18,692 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:18,694 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:18,695 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:18,696 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:18:18,703 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:18:18,725 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:18:18,737 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:18:18,749 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:18:18,766 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:18:18,767 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 14:18:18,773 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:18:18,774 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_192|, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_192| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:18:18,774 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:18:18,857 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:18,858 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:18,860 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:18,861 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:18,862 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:18,863 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:18,865 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:18,865 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 14:18:18,873 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:18:18,908 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:18:18,908 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-07 14:18:18,929 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:18:18,929 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_193|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_193| ULTIMATE.start_main_p2))) (and (= (store |v_#memory_int_193| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_193| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_193| ULTIMATE.start_main_p1) 0) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 (select |v_#memory_int_193| ULTIMATE.start_main_p3)))) [2019-01-07 14:18:18,929 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:18:19,026 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:19,031 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:19,032 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:19,032 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:19,033 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:19,035 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:19,036 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:19,037 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:19,038 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:19,039 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 67 [2019-01-07 14:18:19,048 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:18:19,083 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:18:19,084 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-07 14:18:19,122 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:18:19,122 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_194|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_194| ULTIMATE.start_main_p1))) (and (= 0 (select |v_#memory_int_194| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= (store |v_#memory_int_194| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= 0 (+ (select |v_#memory_int_194| ULTIMATE.start_main_p2) 1)) (= (select |v_#memory_int_194| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-07 14:18:19,123 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-07 14:18:19,214 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:19,215 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:19,216 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:19,218 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:19,219 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:19,220 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:19,221 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:19,222 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:19,223 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:19,224 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:19,225 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 14:18:19,226 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 77 [2019-01-07 14:18:19,234 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:18:19,277 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:18:19,278 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-07 14:18:19,288 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:18:19,288 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_195|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_195| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_195| ULTIMATE.start_main_p4) 0) (= 1 (select |v_#memory_int_195| ULTIMATE.start_main_p1)) (= .cse0 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (store |v_#memory_int_195| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 (+ (select |v_#memory_int_195| ULTIMATE.start_main_p2) 1)))) [2019-01-07 14:18:19,289 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-07 14:18:19,408 INFO L273 TraceCheckUtils]: 0: Hoare triple {12600#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {12609#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:18:19,410 INFO L273 TraceCheckUtils]: 1: Hoare triple {12609#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {12613#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:18:19,412 INFO L273 TraceCheckUtils]: 2: Hoare triple {12613#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {12617#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-07 14:18:19,415 INFO L273 TraceCheckUtils]: 3: Hoare triple {12617#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {12621#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-07 14:18:19,416 INFO L273 TraceCheckUtils]: 4: Hoare triple {12621#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume #memory_int[main_p1] >= 0; {12621#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-07 14:18:19,417 INFO L273 TraceCheckUtils]: 5: Hoare triple {12621#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume !(#memory_int[main_p2] <= 0); {12601#false} is VALID [2019-01-07 14:18:19,418 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:18:19,418 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:18:19,518 INFO L273 TraceCheckUtils]: 5: Hoare triple {12605#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {12601#false} is VALID [2019-01-07 14:18:19,519 INFO L273 TraceCheckUtils]: 4: Hoare triple {12605#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {12605#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:18:19,520 INFO L273 TraceCheckUtils]: 3: Hoare triple {12634#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {12605#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:18:19,521 INFO L273 TraceCheckUtils]: 2: Hoare triple {12638#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {12634#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:18:19,523 INFO L273 TraceCheckUtils]: 1: Hoare triple {12642#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {12638#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:18:19,525 INFO L273 TraceCheckUtils]: 0: Hoare triple {12600#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {12642#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:18:19,526 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 2 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:18:19,546 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:18:19,546 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-07 14:18:19,547 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:18:19,547 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-07 14:18:19,547 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:18:19,547 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 14:18:19,581 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:18:19,581 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 14:18:19,581 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 14:18:19,582 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=59, Invalid=97, Unknown=0, NotChecked=0, Total=156 [2019-01-07 14:18:19,582 INFO L87 Difference]: Start difference. First operand 127 states and 588 transitions. Second operand 10 states. [2019-01-07 14:18:25,913 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:18:25,914 INFO L93 Difference]: Finished difference Result 196 states and 812 transitions. [2019-01-07 14:18:25,914 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2019-01-07 14:18:25,914 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 6 [2019-01-07 14:18:25,914 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:18:25,914 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 14:18:25,914 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 66 transitions. [2019-01-07 14:18:25,915 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 14:18:25,915 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 66 transitions. [2019-01-07 14:18:25,915 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 66 transitions. [2019-01-07 14:18:26,018 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 66 edges. 66 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:18:26,054 INFO L225 Difference]: With dead ends: 196 [2019-01-07 14:18:26,054 INFO L226 Difference]: Without dead ends: 195 [2019-01-07 14:18:26,054 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 17 GetRequests, 3 SyntacticMatches, 1 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 40 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=77, Invalid=133, Unknown=0, NotChecked=0, Total=210 [2019-01-07 14:18:26,055 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 195 states. [2019-01-07 14:18:27,489 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 195 to 141. [2019-01-07 14:18:27,489 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:18:27,489 INFO L82 GeneralOperation]: Start isEquivalent. First operand 195 states. Second operand 141 states. [2019-01-07 14:18:27,489 INFO L74 IsIncluded]: Start isIncluded. First operand 195 states. Second operand 141 states. [2019-01-07 14:18:27,489 INFO L87 Difference]: Start difference. First operand 195 states. Second operand 141 states. [2019-01-07 14:18:27,495 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:18:27,496 INFO L93 Difference]: Finished difference Result 195 states and 809 transitions. [2019-01-07 14:18:27,496 INFO L276 IsEmpty]: Start isEmpty. Operand 195 states and 809 transitions. [2019-01-07 14:18:27,496 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:18:27,496 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:18:27,497 INFO L74 IsIncluded]: Start isIncluded. First operand 141 states. Second operand 195 states. [2019-01-07 14:18:27,497 INFO L87 Difference]: Start difference. First operand 141 states. Second operand 195 states. [2019-01-07 14:18:27,502 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:18:27,502 INFO L93 Difference]: Finished difference Result 195 states and 809 transitions. [2019-01-07 14:18:27,502 INFO L276 IsEmpty]: Start isEmpty. Operand 195 states and 809 transitions. [2019-01-07 14:18:27,503 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:18:27,503 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:18:27,503 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:18:27,503 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:18:27,503 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 141 states. [2019-01-07 14:18:27,506 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 141 states to 141 states and 664 transitions. [2019-01-07 14:18:27,506 INFO L78 Accepts]: Start accepts. Automaton has 141 states and 664 transitions. Word has length 6 [2019-01-07 14:18:27,507 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:18:27,507 INFO L480 AbstractCegarLoop]: Abstraction has 141 states and 664 transitions. [2019-01-07 14:18:27,507 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 14:18:27,507 INFO L276 IsEmpty]: Start isEmpty. Operand 141 states and 664 transitions. [2019-01-07 14:18:27,507 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-07 14:18:27,507 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:18:27,507 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-07 14:18:27,507 INFO L423 AbstractCegarLoop]: === Iteration 37 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:18:27,507 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:18:27,508 INFO L82 PathProgramCache]: Analyzing trace with hash 897162246, now seen corresponding path program 3 times [2019-01-07 14:18:27,508 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:18:27,508 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:18:27,508 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-07 14:18:27,508 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:18:27,508 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:18:27,512 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:18:28,235 WARN L181 SmtUtils]: Spent 357.00 ms on a formula simplification. DAG size of input: 41 DAG size of output: 21 [2019-01-07 14:18:28,406 INFO L273 TraceCheckUtils]: 0: Hoare triple {13658#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {13660#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-07 14:18:28,407 INFO L273 TraceCheckUtils]: 1: Hoare triple {13660#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {13661#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:18:28,408 INFO L273 TraceCheckUtils]: 2: Hoare triple {13661#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {13662#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 14:18:28,409 INFO L273 TraceCheckUtils]: 3: Hoare triple {13662#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {13663#(and (<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 14:18:28,410 INFO L273 TraceCheckUtils]: 4: Hoare triple {13663#(and (<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {13664#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:18:28,411 INFO L273 TraceCheckUtils]: 5: Hoare triple {13664#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {13659#false} is VALID [2019-01-07 14:18:28,411 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:18:28,411 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:18:28,412 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:18:28,412 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-07 14:18:28,412 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-07 14:18:28,412 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:18:28,412 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 35 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 35 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:18:28,420 INFO L103 rtionOrderModulation]: Keeping assertion order TERMS_WITH_SMALL_CONSTANTS_FIRST [2019-01-07 14:18:28,420 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder TERMS_WITH_SMALL_CONSTANTS_FIRST (IT: FPandBP) [2019-01-07 14:18:28,426 INFO L249 tOrderPrioritization]: Assert order TERMS_WITH_SMALL_CONSTANTS_FIRST issued 0 check-sat command(s) [2019-01-07 14:18:28,426 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-07 14:18:28,429 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:18:28,429 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:18:28,454 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:18:28,465 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:28,466 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:18:28,486 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:28,488 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:28,488 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:18:28,512 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:28,514 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:28,516 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:28,516 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:18:28,524 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:18:28,548 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:18:28,561 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:18:28,574 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:18:28,593 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:18:28,593 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-07 14:18:28,598 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:18:28,599 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_199|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_199| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:18:28,599 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:18:28,683 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:28,685 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:28,687 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:28,704 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:28,725 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:28,736 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:28,738 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:28,738 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 14:18:28,743 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:18:28,774 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:18:28,775 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-07 14:18:30,786 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:18:30,786 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_200|, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_200| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_200| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_200| ULTIMATE.start_main_p1) 0) (= .cse0 0) (= (store |v_#memory_int_200| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_200| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:18:30,786 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:18:30,848 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:30,849 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:30,850 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:30,852 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:30,853 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:30,854 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:30,856 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:30,857 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:30,858 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:30,859 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 67 [2019-01-07 14:18:30,864 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:18:30,903 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:18:30,904 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-07 14:18:31,660 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:18:31,660 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_201|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_201| ULTIMATE.start_main_p3))) (and (= .cse0 0) (= |#memory_int| (store |v_#memory_int_201| ULTIMATE.start_main_p3 (+ .cse0 1))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_201| ULTIMATE.start_main_p1)) (= (select |v_#memory_int_201| ULTIMATE.start_main_p4) 0) (= (+ (select |v_#memory_int_201| ULTIMATE.start_main_p2) 1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:18:31,661 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:18:31,729 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:31,730 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:31,732 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:31,733 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:31,734 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:31,735 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:31,736 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:31,737 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:31,739 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:31,740 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:31,741 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:31,741 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 14:18:31,742 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 83 [2019-01-07 14:18:31,748 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:18:31,788 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:18:31,789 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-07 14:18:31,795 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:18:31,795 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_202|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_202| ULTIMATE.start_main_p1))) (and (= 0 .cse0) (= (select |v_#memory_int_202| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |v_#memory_int_202| ULTIMATE.start_main_p3)) (= (+ (select |v_#memory_int_202| ULTIMATE.start_main_p2) 1) 0) (= (store |v_#memory_int_202| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:18:31,795 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:18:31,863 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:31,864 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:31,865 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:31,867 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:31,868 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:31,869 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:31,871 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:31,876 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:31,877 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:31,878 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:31,878 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:31,879 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 14:18:31,880 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 78 [2019-01-07 14:18:31,884 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:18:31,928 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:18:31,928 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-07 14:18:34,194 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:18:34,194 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_203|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_203| ULTIMATE.start_main_p4))) (and (= .cse0 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |v_#memory_int_203| ULTIMATE.start_main_p3)) (= (select |v_#memory_int_203| ULTIMATE.start_main_p1) 1) (= |#memory_int| (store |v_#memory_int_203| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 (+ (select |v_#memory_int_203| ULTIMATE.start_main_p2) 1)))) [2019-01-07 14:18:34,195 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-07 14:18:34,271 INFO L273 TraceCheckUtils]: 0: Hoare triple {13658#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {13668#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:18:34,273 INFO L273 TraceCheckUtils]: 1: Hoare triple {13668#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {13672#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:18:34,276 INFO L273 TraceCheckUtils]: 2: Hoare triple {13672#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {13676#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:18:34,278 INFO L273 TraceCheckUtils]: 3: Hoare triple {13676#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {13680#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:18:34,281 INFO L273 TraceCheckUtils]: 4: Hoare triple {13680#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {13684#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-07 14:18:34,282 INFO L273 TraceCheckUtils]: 5: Hoare triple {13684#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume !(#memory_int[main_p1] >= 0); {13659#false} is VALID [2019-01-07 14:18:34,283 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:18:34,283 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:18:34,381 INFO L273 TraceCheckUtils]: 5: Hoare triple {13664#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {13659#false} is VALID [2019-01-07 14:18:34,382 INFO L273 TraceCheckUtils]: 4: Hoare triple {13691#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {13664#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:18:34,383 INFO L273 TraceCheckUtils]: 3: Hoare triple {13695#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {13691#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:18:34,385 INFO L273 TraceCheckUtils]: 2: Hoare triple {13699#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {13695#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:18:34,391 INFO L273 TraceCheckUtils]: 1: Hoare triple {13703#(<= 0 (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {13699#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:18:34,393 INFO L273 TraceCheckUtils]: 0: Hoare triple {13658#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {13703#(<= 0 (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:18:34,393 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 6 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:18:34,412 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:18:34,412 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5, 5] total 14 [2019-01-07 14:18:34,412 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:18:34,412 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-07 14:18:34,412 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:18:34,412 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-01-07 14:18:34,430 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:18:34,430 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-01-07 14:18:34,431 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-01-07 14:18:34,431 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=98, Invalid=142, Unknown=0, NotChecked=0, Total=240 [2019-01-07 14:18:34,431 INFO L87 Difference]: Start difference. First operand 141 states and 664 transitions. Second operand 12 states. [2019-01-07 14:18:39,151 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:18:39,151 INFO L93 Difference]: Finished difference Result 205 states and 871 transitions. [2019-01-07 14:18:39,151 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2019-01-07 14:18:39,151 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 6 [2019-01-07 14:18:39,151 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:18:39,152 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-07 14:18:39,152 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 66 transitions. [2019-01-07 14:18:39,152 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-07 14:18:39,152 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 66 transitions. [2019-01-07 14:18:39,152 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 66 transitions. [2019-01-07 14:18:39,248 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 66 edges. 66 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:18:39,253 INFO L225 Difference]: With dead ends: 205 [2019-01-07 14:18:39,253 INFO L226 Difference]: Without dead ends: 197 [2019-01-07 14:18:39,253 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 18 GetRequests, 1 SyntacticMatches, 0 SemanticMatches, 17 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 90 ImplicationChecksByTransitivity, 1.1s TimeCoverageRelationStatistics Valid=131, Invalid=211, Unknown=0, NotChecked=0, Total=342 [2019-01-07 14:18:39,254 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 197 states. [2019-01-07 14:18:42,997 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 197 to 149. [2019-01-07 14:18:42,998 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:18:42,998 INFO L82 GeneralOperation]: Start isEquivalent. First operand 197 states. Second operand 149 states. [2019-01-07 14:18:42,998 INFO L74 IsIncluded]: Start isIncluded. First operand 197 states. Second operand 149 states. [2019-01-07 14:18:42,998 INFO L87 Difference]: Start difference. First operand 197 states. Second operand 149 states. [2019-01-07 14:18:43,004 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:18:43,004 INFO L93 Difference]: Finished difference Result 197 states and 852 transitions. [2019-01-07 14:18:43,004 INFO L276 IsEmpty]: Start isEmpty. Operand 197 states and 852 transitions. [2019-01-07 14:18:43,004 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:18:43,004 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:18:43,005 INFO L74 IsIncluded]: Start isIncluded. First operand 149 states. Second operand 197 states. [2019-01-07 14:18:43,005 INFO L87 Difference]: Start difference. First operand 149 states. Second operand 197 states. [2019-01-07 14:18:43,009 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:18:43,010 INFO L93 Difference]: Finished difference Result 197 states and 852 transitions. [2019-01-07 14:18:43,010 INFO L276 IsEmpty]: Start isEmpty. Operand 197 states and 852 transitions. [2019-01-07 14:18:43,010 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:18:43,010 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:18:43,010 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:18:43,010 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:18:43,010 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 149 states. [2019-01-07 14:18:43,014 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 149 states to 149 states and 702 transitions. [2019-01-07 14:18:43,014 INFO L78 Accepts]: Start accepts. Automaton has 149 states and 702 transitions. Word has length 6 [2019-01-07 14:18:43,014 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:18:43,014 INFO L480 AbstractCegarLoop]: Abstraction has 149 states and 702 transitions. [2019-01-07 14:18:43,014 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-01-07 14:18:43,014 INFO L276 IsEmpty]: Start isEmpty. Operand 149 states and 702 transitions. [2019-01-07 14:18:43,014 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-07 14:18:43,014 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:18:43,015 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-07 14:18:43,015 INFO L423 AbstractCegarLoop]: === Iteration 38 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:18:43,015 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:18:43,015 INFO L82 PathProgramCache]: Analyzing trace with hash 900929556, now seen corresponding path program 1 times [2019-01-07 14:18:43,015 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:18:43,016 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:18:43,016 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-07 14:18:43,016 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:18:43,016 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:18:43,019 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:18:43,280 INFO L273 TraceCheckUtils]: 0: Hoare triple {14760#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {14762#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-07 14:18:43,281 INFO L273 TraceCheckUtils]: 1: Hoare triple {14762#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {14763#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:18:43,282 INFO L273 TraceCheckUtils]: 2: Hoare triple {14763#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {14764#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:18:43,282 INFO L273 TraceCheckUtils]: 3: Hoare triple {14764#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {14764#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:18:43,283 INFO L273 TraceCheckUtils]: 4: Hoare triple {14764#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {14764#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:18:43,284 INFO L273 TraceCheckUtils]: 5: Hoare triple {14764#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {14761#false} is VALID [2019-01-07 14:18:43,284 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:18:43,284 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:18:43,284 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:18:43,284 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-07 14:18:43,285 INFO L207 CegarAbsIntRunner]: [0], [14], [16], [20], [22], [23] [2019-01-07 14:18:43,286 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:18:43,286 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:18:43,294 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:18:43,294 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 3. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-07 14:18:43,294 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:18:43,294 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:18:43,295 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:18:43,295 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 36 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 36 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:18:43,305 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:18:43,305 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:18:43,309 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:18:43,311 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:18:43,311 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:18:43,320 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:18:43,326 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-07 14:18:43,336 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-01-07 14:18:43,353 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:43,353 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 1 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 25 [2019-01-07 14:18:43,356 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:18:43,366 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:18:43,375 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:18:43,384 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:18:43,395 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:18:43,396 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:19, output treesize:24 [2019-01-07 14:18:43,400 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:18:43,400 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_208|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_208| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0))) [2019-01-07 14:18:43,400 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:18:43,434 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:43,435 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:43,436 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 21 [2019-01-07 14:18:43,438 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:18:43,445 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:18:43,445 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:24, output treesize:14 [2019-01-07 14:18:43,456 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:18:43,457 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_209|]. (let ((.cse0 (select |v_#memory_int_209| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_209| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= 0 (select |v_#memory_int_209| ULTIMATE.start_main_p4)) (= 0 .cse0))) [2019-01-07 14:18:43,457 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:18:43,485 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:43,486 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:43,488 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:43,489 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:43,489 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 4 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 27 [2019-01-07 14:18:43,527 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:18:43,567 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:18:43,568 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:24, output treesize:14 [2019-01-07 14:18:45,589 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:18:45,590 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_210|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_210| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= |#memory_int| (store |v_#memory_int_210| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= (select |v_#memory_int_210| ULTIMATE.start_main_p3) 1))) [2019-01-07 14:18:45,590 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) [2019-01-07 14:18:45,630 INFO L273 TraceCheckUtils]: 0: Hoare triple {14760#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {14768#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:18:45,631 INFO L273 TraceCheckUtils]: 1: Hoare triple {14768#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {14772#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:18:45,632 INFO L273 TraceCheckUtils]: 2: Hoare triple {14772#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {14776#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))))} is VALID [2019-01-07 14:18:45,633 INFO L273 TraceCheckUtils]: 3: Hoare triple {14776#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))))} assume #memory_int[main_p1] >= 0; {14776#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))))} is VALID [2019-01-07 14:18:45,634 INFO L273 TraceCheckUtils]: 4: Hoare triple {14776#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))))} assume #memory_int[main_p2] <= 0; {14776#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))))} is VALID [2019-01-07 14:18:45,635 INFO L273 TraceCheckUtils]: 5: Hoare triple {14776#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))))} assume !(#memory_int[main_p3] >= 0); {14761#false} is VALID [2019-01-07 14:18:45,635 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:18:45,635 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:18:45,676 INFO L273 TraceCheckUtils]: 5: Hoare triple {14786#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {14761#false} is VALID [2019-01-07 14:18:45,677 INFO L273 TraceCheckUtils]: 4: Hoare triple {14786#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {14786#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:18:45,677 INFO L273 TraceCheckUtils]: 3: Hoare triple {14786#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {14786#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:18:45,695 INFO L273 TraceCheckUtils]: 2: Hoare triple {14796#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {14786#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:18:45,708 INFO L273 TraceCheckUtils]: 1: Hoare triple {14800#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {14796#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:18:45,709 INFO L273 TraceCheckUtils]: 0: Hoare triple {14760#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {14800#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:18:45,710 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:18:45,728 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:18:45,729 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 14:18:45,729 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:18:45,729 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-07 14:18:45,729 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:18:45,729 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 14:18:45,744 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:18:45,744 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 14:18:45,744 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 14:18:45,744 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-01-07 14:18:45,745 INFO L87 Difference]: Start difference. First operand 149 states and 702 transitions. Second operand 8 states. [2019-01-07 14:18:47,998 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:18:47,998 INFO L93 Difference]: Finished difference Result 165 states and 720 transitions. [2019-01-07 14:18:47,998 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-07 14:18:47,998 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-07 14:18:47,998 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:18:47,998 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 14:18:47,999 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 46 transitions. [2019-01-07 14:18:47,999 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 14:18:47,999 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 46 transitions. [2019-01-07 14:18:47,999 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 46 transitions. [2019-01-07 14:18:48,058 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 46 edges. 46 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:18:48,062 INFO L225 Difference]: With dead ends: 165 [2019-01-07 14:18:48,062 INFO L226 Difference]: Without dead ends: 164 [2019-01-07 14:18:48,062 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 4 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 28 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=53, Invalid=79, Unknown=0, NotChecked=0, Total=132 [2019-01-07 14:18:48,063 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 164 states. [2019-01-07 14:18:51,412 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 164 to 149. [2019-01-07 14:18:51,412 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:18:51,412 INFO L82 GeneralOperation]: Start isEquivalent. First operand 164 states. Second operand 149 states. [2019-01-07 14:18:51,412 INFO L74 IsIncluded]: Start isIncluded. First operand 164 states. Second operand 149 states. [2019-01-07 14:18:51,412 INFO L87 Difference]: Start difference. First operand 164 states. Second operand 149 states. [2019-01-07 14:18:51,418 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:18:51,418 INFO L93 Difference]: Finished difference Result 164 states and 718 transitions. [2019-01-07 14:18:51,418 INFO L276 IsEmpty]: Start isEmpty. Operand 164 states and 718 transitions. [2019-01-07 14:18:51,419 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:18:51,419 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:18:51,419 INFO L74 IsIncluded]: Start isIncluded. First operand 149 states. Second operand 164 states. [2019-01-07 14:18:51,419 INFO L87 Difference]: Start difference. First operand 149 states. Second operand 164 states. [2019-01-07 14:18:51,424 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:18:51,424 INFO L93 Difference]: Finished difference Result 164 states and 718 transitions. [2019-01-07 14:18:51,425 INFO L276 IsEmpty]: Start isEmpty. Operand 164 states and 718 transitions. [2019-01-07 14:18:51,425 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:18:51,425 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:18:51,425 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:18:51,425 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:18:51,425 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 149 states. [2019-01-07 14:18:51,430 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 149 states to 149 states and 702 transitions. [2019-01-07 14:18:51,430 INFO L78 Accepts]: Start accepts. Automaton has 149 states and 702 transitions. Word has length 6 [2019-01-07 14:18:51,430 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:18:51,430 INFO L480 AbstractCegarLoop]: Abstraction has 149 states and 702 transitions. [2019-01-07 14:18:51,430 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 14:18:51,430 INFO L276 IsEmpty]: Start isEmpty. Operand 149 states and 702 transitions. [2019-01-07 14:18:51,431 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 7 [2019-01-07 14:18:51,431 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:18:51,431 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1] [2019-01-07 14:18:51,431 INFO L423 AbstractCegarLoop]: === Iteration 39 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:18:51,431 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:18:51,432 INFO L82 PathProgramCache]: Analyzing trace with hash 900750810, now seen corresponding path program 1 times [2019-01-07 14:18:51,432 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:18:51,432 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:18:51,432 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:18:51,433 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:18:51,433 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:18:51,436 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:18:51,594 INFO L273 TraceCheckUtils]: 0: Hoare triple {15722#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {15724#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-07 14:18:51,595 INFO L273 TraceCheckUtils]: 1: Hoare triple {15724#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {15725#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:18:51,596 INFO L273 TraceCheckUtils]: 2: Hoare triple {15725#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {15726#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:18:51,597 INFO L273 TraceCheckUtils]: 3: Hoare triple {15726#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {15726#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:18:51,597 INFO L273 TraceCheckUtils]: 4: Hoare triple {15726#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {15726#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:18:51,598 INFO L273 TraceCheckUtils]: 5: Hoare triple {15726#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {15723#false} is VALID [2019-01-07 14:18:51,599 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:18:51,599 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:18:51,599 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:18:51,599 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 7 with the following transitions: [2019-01-07 14:18:51,599 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [20], [22], [23] [2019-01-07 14:18:51,600 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:18:51,600 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:18:51,617 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:18:51,617 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 3. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-07 14:18:51,617 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:18:51,617 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:18:51,618 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:18:51,618 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 37 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 37 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:18:51,628 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:18:51,628 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:18:51,631 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:18:51,636 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:18:51,636 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:18:51,673 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:18:51,689 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-07 14:18:51,709 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:51,710 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 26 [2019-01-07 14:18:51,732 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:51,733 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:51,734 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 33 [2019-01-07 14:18:51,742 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:18:51,758 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:18:51,770 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:18:51,782 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:18:51,800 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:18:51,800 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:22, output treesize:27 [2019-01-07 14:18:51,807 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:18:51,807 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_213|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_213| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:18:51,808 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:18:51,916 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:51,917 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:51,918 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:51,919 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:51,920 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 34 [2019-01-07 14:18:51,927 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:18:51,950 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:18:51,950 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:22 [2019-01-07 14:18:51,957 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:18:51,957 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_214|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_214| ULTIMATE.start_main_p3))) (and (= (store |v_#memory_int_214| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_214| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_214| ULTIMATE.start_main_p4) 0) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-07 14:18:51,957 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:18:52,024 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:52,026 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:52,027 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:52,028 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:52,029 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:52,030 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:18:52,031 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 48 [2019-01-07 14:18:52,066 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:18:52,098 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:18:52,099 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:32, output treesize:22 [2019-01-07 14:18:54,121 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:18:54,121 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_215|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_215| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= 0 (select |v_#memory_int_215| ULTIMATE.start_main_p4)) (= (select |v_#memory_int_215| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (store |v_#memory_int_215| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|))) [2019-01-07 14:18:54,121 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:18:54,249 INFO L273 TraceCheckUtils]: 0: Hoare triple {15722#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {15730#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:18:54,251 INFO L273 TraceCheckUtils]: 1: Hoare triple {15730#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {15734#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:18:54,253 INFO L273 TraceCheckUtils]: 2: Hoare triple {15734#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {15738#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-07 14:18:54,255 INFO L273 TraceCheckUtils]: 3: Hoare triple {15738#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p1] >= 0; {15738#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-07 14:18:54,256 INFO L273 TraceCheckUtils]: 4: Hoare triple {15738#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p2] <= 0; {15738#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-01-07 14:18:54,257 INFO L273 TraceCheckUtils]: 5: Hoare triple {15738#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume !(#memory_int[main_p3] >= 0); {15723#false} is VALID [2019-01-07 14:18:54,257 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:18:54,257 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:18:54,365 INFO L273 TraceCheckUtils]: 5: Hoare triple {15748#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {15723#false} is VALID [2019-01-07 14:18:54,366 INFO L273 TraceCheckUtils]: 4: Hoare triple {15748#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {15748#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:18:54,366 INFO L273 TraceCheckUtils]: 3: Hoare triple {15748#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {15748#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:18:54,367 INFO L273 TraceCheckUtils]: 2: Hoare triple {15758#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {15748#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:18:54,368 INFO L273 TraceCheckUtils]: 1: Hoare triple {15762#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {15758#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:18:54,370 INFO L273 TraceCheckUtils]: 0: Hoare triple {15722#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {15762#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:18:54,371 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:18:54,391 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:18:54,391 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 14:18:54,391 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:18:54,391 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-07 14:18:54,391 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:18:54,392 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 14:18:54,408 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 12 edges. 12 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:18:54,408 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 14:18:54,408 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 14:18:54,408 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-01-07 14:18:54,409 INFO L87 Difference]: Start difference. First operand 149 states and 702 transitions. Second operand 8 states. [2019-01-07 14:18:58,741 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:18:58,742 INFO L93 Difference]: Finished difference Result 174 states and 765 transitions. [2019-01-07 14:18:58,742 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-07 14:18:58,742 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 6 [2019-01-07 14:18:58,742 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:18:58,742 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 14:18:58,742 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 46 transitions. [2019-01-07 14:18:58,742 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 14:18:58,743 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 46 transitions. [2019-01-07 14:18:58,743 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 46 transitions. [2019-01-07 14:18:58,798 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 46 edges. 46 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:18:58,803 INFO L225 Difference]: With dead ends: 174 [2019-01-07 14:18:58,803 INFO L226 Difference]: Without dead ends: 173 [2019-01-07 14:18:58,803 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 15 GetRequests, 5 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 28 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=53, Invalid=79, Unknown=0, NotChecked=0, Total=132 [2019-01-07 14:18:58,804 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 173 states. [2019-01-07 14:19:01,169 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 173 to 158. [2019-01-07 14:19:01,169 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:19:01,169 INFO L82 GeneralOperation]: Start isEquivalent. First operand 173 states. Second operand 158 states. [2019-01-07 14:19:01,169 INFO L74 IsIncluded]: Start isIncluded. First operand 173 states. Second operand 158 states. [2019-01-07 14:19:01,169 INFO L87 Difference]: Start difference. First operand 173 states. Second operand 158 states. [2019-01-07 14:19:01,174 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:19:01,174 INFO L93 Difference]: Finished difference Result 173 states and 763 transitions. [2019-01-07 14:19:01,174 INFO L276 IsEmpty]: Start isEmpty. Operand 173 states and 763 transitions. [2019-01-07 14:19:01,174 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:19:01,175 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:19:01,175 INFO L74 IsIncluded]: Start isIncluded. First operand 158 states. Second operand 173 states. [2019-01-07 14:19:01,175 INFO L87 Difference]: Start difference. First operand 158 states. Second operand 173 states. [2019-01-07 14:19:01,179 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:19:01,179 INFO L93 Difference]: Finished difference Result 173 states and 763 transitions. [2019-01-07 14:19:01,179 INFO L276 IsEmpty]: Start isEmpty. Operand 173 states and 763 transitions. [2019-01-07 14:19:01,179 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:19:01,180 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:19:01,180 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:19:01,180 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:19:01,180 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 158 states. [2019-01-07 14:19:01,183 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 158 states to 158 states and 747 transitions. [2019-01-07 14:19:01,183 INFO L78 Accepts]: Start accepts. Automaton has 158 states and 747 transitions. Word has length 6 [2019-01-07 14:19:01,184 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:19:01,184 INFO L480 AbstractCegarLoop]: Abstraction has 158 states and 747 transitions. [2019-01-07 14:19:01,184 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 14:19:01,184 INFO L276 IsEmpty]: Start isEmpty. Operand 158 states and 747 transitions. [2019-01-07 14:19:01,184 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-07 14:19:01,184 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:19:01,184 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1] [2019-01-07 14:19:01,184 INFO L423 AbstractCegarLoop]: === Iteration 40 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:19:01,185 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:19:01,185 INFO L82 PathProgramCache]: Analyzing trace with hash -2078696478, now seen corresponding path program 1 times [2019-01-07 14:19:01,185 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:19:01,185 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:19:01,185 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:19:01,185 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:19:01,186 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:19:01,188 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:19:01,280 INFO L273 TraceCheckUtils]: 0: Hoare triple {16738#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {16740#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:19:01,281 INFO L273 TraceCheckUtils]: 1: Hoare triple {16740#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {16741#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-07 14:19:01,282 INFO L273 TraceCheckUtils]: 2: Hoare triple {16741#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {16742#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} is VALID [2019-01-07 14:19:01,282 INFO L273 TraceCheckUtils]: 3: Hoare triple {16742#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} assume #memory_int[main_p1] >= 0; {16742#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} is VALID [2019-01-07 14:19:01,283 INFO L273 TraceCheckUtils]: 4: Hoare triple {16742#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} assume #memory_int[main_p2] <= 0; {16742#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} is VALID [2019-01-07 14:19:01,283 INFO L273 TraceCheckUtils]: 5: Hoare triple {16742#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} assume #memory_int[main_p3] >= 0; {16742#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} is VALID [2019-01-07 14:19:01,284 INFO L273 TraceCheckUtils]: 6: Hoare triple {16742#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} assume !(#memory_int[main_p4] <= 0); {16739#false} is VALID [2019-01-07 14:19:01,285 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:19:01,285 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:19:01,285 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:19:01,285 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-01-07 14:19:01,286 INFO L207 CegarAbsIntRunner]: [0], [16], [20], [22], [24], [25] [2019-01-07 14:19:01,288 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:19:01,288 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:19:01,321 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:19:01,321 INFO L272 AbstractInterpreter]: Visited 6 different actions 6 times. Never merged. Never widened. Performed 56 root evaluator evaluations with a maximum evaluation depth of 3. Performed 56 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-01-07 14:19:01,321 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:19:01,321 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:19:01,322 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:19:01,322 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 38 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 38 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:19:01,331 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:19:01,331 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:19:01,334 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:19:01,338 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:19:01,339 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:19:01,351 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:19:01,387 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-07 14:19:01,513 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-01-07 14:19:01,543 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 0 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 21 [2019-01-07 14:19:01,565 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:19:01,676 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:19:01,718 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:19:01,728 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:19:01,739 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:19:01,740 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 4 variables, input treesize:15, output treesize:21 [2019-01-07 14:19:01,744 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:19:01,744 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_218|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (= |#memory_int| (store (store (store (store |v_#memory_int_218| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) [2019-01-07 14:19:01,745 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:19:01,761 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:01,762 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 16 treesize of output 5 [2019-01-07 14:19:01,764 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:19:01,766 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:19:01,767 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:16, output treesize:5 [2019-01-07 14:19:01,775 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:19:01,775 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_219|]. (let ((.cse0 (select |v_#memory_int_219| ULTIMATE.start_main_p4))) (and (= |#memory_int| (store |v_#memory_int_219| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= 0 .cse0))) [2019-01-07 14:19:01,775 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) [2019-01-07 14:19:01,793 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:01,793 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 5 [2019-01-07 14:19:01,795 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:19:01,798 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:19:01,798 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:18, output treesize:5 [2019-01-07 14:19:01,807 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:19:01,807 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_220|]. (let ((.cse0 (select |v_#memory_int_220| ULTIMATE.start_main_p4))) (and (= (store |v_#memory_int_220| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= 0 (+ .cse0 1)))) [2019-01-07 14:19:01,807 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (= (select |#memory_int| ULTIMATE.start_main_p4) (- 2)) [2019-01-07 14:19:01,821 INFO L273 TraceCheckUtils]: 0: Hoare triple {16738#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {16740#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:19:01,822 INFO L273 TraceCheckUtils]: 1: Hoare triple {16740#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {16749#(= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-07 14:19:01,823 INFO L273 TraceCheckUtils]: 2: Hoare triple {16749#(= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {16753#(= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} is VALID [2019-01-07 14:19:01,824 INFO L273 TraceCheckUtils]: 3: Hoare triple {16753#(= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} assume #memory_int[main_p1] >= 0; {16753#(= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} is VALID [2019-01-07 14:19:01,826 INFO L273 TraceCheckUtils]: 4: Hoare triple {16753#(= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} assume #memory_int[main_p2] <= 0; {16753#(= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} is VALID [2019-01-07 14:19:01,826 INFO L273 TraceCheckUtils]: 5: Hoare triple {16753#(= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} assume #memory_int[main_p3] >= 0; {16753#(= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} is VALID [2019-01-07 14:19:01,827 INFO L273 TraceCheckUtils]: 6: Hoare triple {16753#(= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)} assume !(#memory_int[main_p4] <= 0); {16739#false} is VALID [2019-01-07 14:19:01,827 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:19:01,827 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:19:01,866 INFO L273 TraceCheckUtils]: 6: Hoare triple {16766#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {16739#false} is VALID [2019-01-07 14:19:01,866 INFO L273 TraceCheckUtils]: 5: Hoare triple {16766#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {16766#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:19:01,867 INFO L273 TraceCheckUtils]: 4: Hoare triple {16766#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {16766#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:19:01,867 INFO L273 TraceCheckUtils]: 3: Hoare triple {16766#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {16766#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:19:01,868 INFO L273 TraceCheckUtils]: 2: Hoare triple {16779#(<= (select |#memory_int| ULTIMATE.start_main_p4) 1)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {16766#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:19:01,869 INFO L273 TraceCheckUtils]: 1: Hoare triple {16783#(<= (select |#memory_int| ULTIMATE.start_main_p4) 2)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {16779#(<= (select |#memory_int| ULTIMATE.start_main_p4) 1)} is VALID [2019-01-07 14:19:01,871 INFO L273 TraceCheckUtils]: 0: Hoare triple {16738#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {16783#(<= (select |#memory_int| ULTIMATE.start_main_p4) 2)} is VALID [2019-01-07 14:19:01,871 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 3 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:19:01,891 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-01-07 14:19:01,891 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [3] imperfect sequences [3, 3] total 8 [2019-01-07 14:19:01,891 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-01-07 14:19:01,891 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 7 [2019-01-07 14:19:01,892 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:19:01,892 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states. [2019-01-07 14:19:01,900 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 7 edges. 7 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:19:01,901 INFO L459 AbstractCegarLoop]: Interpolant automaton has 5 states [2019-01-07 14:19:01,901 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 5 interpolants. [2019-01-07 14:19:01,901 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=39, Invalid=51, Unknown=0, NotChecked=0, Total=90 [2019-01-07 14:19:01,901 INFO L87 Difference]: Start difference. First operand 158 states and 747 transitions. Second operand 5 states. [2019-01-07 14:19:11,573 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:19:11,574 INFO L93 Difference]: Finished difference Result 357 states and 1628 transitions. [2019-01-07 14:19:11,574 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-01-07 14:19:11,574 INFO L78 Accepts]: Start accepts. Automaton has 5 states. Word has length 7 [2019-01-07 14:19:11,574 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:19:11,574 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2019-01-07 14:19:11,574 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 45 transitions. [2019-01-07 14:19:11,574 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 5 states. [2019-01-07 14:19:11,575 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 45 transitions. [2019-01-07 14:19:11,575 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 45 transitions. [2019-01-07 14:19:11,623 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 45 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:19:11,631 INFO L225 Difference]: With dead ends: 357 [2019-01-07 14:19:11,631 INFO L226 Difference]: Without dead ends: 353 [2019-01-07 14:19:11,632 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 15 GetRequests, 6 SyntacticMatches, 1 SemanticMatches, 8 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 18 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=39, Invalid=51, Unknown=0, NotChecked=0, Total=90 [2019-01-07 14:19:11,632 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 353 states. [2019-01-07 14:19:20,696 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 353 to 329. [2019-01-07 14:19:20,696 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:19:20,696 INFO L82 GeneralOperation]: Start isEquivalent. First operand 353 states. Second operand 329 states. [2019-01-07 14:19:20,696 INFO L74 IsIncluded]: Start isIncluded. First operand 353 states. Second operand 329 states. [2019-01-07 14:19:20,696 INFO L87 Difference]: Start difference. First operand 353 states. Second operand 329 states. [2019-01-07 14:19:20,707 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:19:20,707 INFO L93 Difference]: Finished difference Result 353 states and 1611 transitions. [2019-01-07 14:19:20,707 INFO L276 IsEmpty]: Start isEmpty. Operand 353 states and 1611 transitions. [2019-01-07 14:19:20,708 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:19:20,708 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:19:20,708 INFO L74 IsIncluded]: Start isIncluded. First operand 329 states. Second operand 353 states. [2019-01-07 14:19:20,708 INFO L87 Difference]: Start difference. First operand 329 states. Second operand 353 states. [2019-01-07 14:19:20,719 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:19:20,719 INFO L93 Difference]: Finished difference Result 353 states and 1611 transitions. [2019-01-07 14:19:20,719 INFO L276 IsEmpty]: Start isEmpty. Operand 353 states and 1611 transitions. [2019-01-07 14:19:20,720 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:19:20,720 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:19:20,720 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:19:20,720 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:19:20,720 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 329 states. [2019-01-07 14:19:20,730 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 329 states to 329 states and 1593 transitions. [2019-01-07 14:19:20,730 INFO L78 Accepts]: Start accepts. Automaton has 329 states and 1593 transitions. Word has length 7 [2019-01-07 14:19:20,730 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:19:20,730 INFO L480 AbstractCegarLoop]: Abstraction has 329 states and 1593 transitions. [2019-01-07 14:19:20,730 INFO L481 AbstractCegarLoop]: Interpolant automaton has 5 states. [2019-01-07 14:19:20,730 INFO L276 IsEmpty]: Start isEmpty. Operand 329 states and 1593 transitions. [2019-01-07 14:19:20,730 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-07 14:19:20,731 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:19:20,731 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-07 14:19:20,731 INFO L423 AbstractCegarLoop]: === Iteration 41 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:19:20,731 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:19:20,731 INFO L82 PathProgramCache]: Analyzing trace with hash -2087931688, now seen corresponding path program 1 times [2019-01-07 14:19:20,731 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:19:20,732 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:19:20,732 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:19:20,732 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:19:20,732 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:19:20,734 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:19:20,915 INFO L273 TraceCheckUtils]: 0: Hoare triple {18806#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {18808#(and (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 14:19:20,916 INFO L273 TraceCheckUtils]: 1: Hoare triple {18808#(and (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {18809#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-01-07 14:19:20,917 INFO L273 TraceCheckUtils]: 2: Hoare triple {18809#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 1) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {18810#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-07 14:19:20,918 INFO L273 TraceCheckUtils]: 3: Hoare triple {18810#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p1] >= 0; {18810#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-07 14:19:20,918 INFO L273 TraceCheckUtils]: 4: Hoare triple {18810#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p2] <= 0; {18810#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-07 14:19:20,919 INFO L273 TraceCheckUtils]: 5: Hoare triple {18810#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p3] >= 0; {18810#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-07 14:19:20,919 INFO L273 TraceCheckUtils]: 6: Hoare triple {18810#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume !(#memory_int[main_p4] <= 0); {18807#false} is VALID [2019-01-07 14:19:20,920 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:19:20,920 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:19:20,920 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:19:20,920 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-01-07 14:19:20,921 INFO L207 CegarAbsIntRunner]: [0], [6], [16], [20], [22], [24], [25] [2019-01-07 14:19:20,922 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:19:20,922 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:19:20,932 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:19:20,932 INFO L272 AbstractInterpreter]: Visited 7 different actions 7 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 3. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-07 14:19:20,933 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:19:20,933 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:19:20,933 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:19:20,933 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 39 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 39 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:19:20,944 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:19:20,944 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:19:20,948 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:19:20,951 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:19:20,952 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:19:21,009 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:19:21,031 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:21,032 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:19:21,057 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:21,058 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:21,059 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:19:21,096 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:21,097 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:21,097 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:21,098 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:19:21,110 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:19:21,133 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:19:21,148 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:19:21,162 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:19:21,185 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:19:21,186 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-01-07 14:19:21,194 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:19:21,195 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_223|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_223| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:19:21,195 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:19:21,315 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:21,316 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:21,317 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:21,318 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:21,320 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:21,321 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:21,322 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:21,323 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 14:19:21,335 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:19:21,369 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:19:21,369 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 14:19:21,378 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:19:21,378 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_224|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_224| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_224| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_224| ULTIMATE.start_main_p1) 0) (= 0 .cse0) (= |#memory_int| (store |v_#memory_int_224| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= 0 (select |v_#memory_int_224| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:19:21,378 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:19:21,492 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:21,493 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:21,494 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:21,496 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:21,497 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:21,498 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:21,499 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:21,501 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:21,502 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:21,503 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 59 [2019-01-07 14:19:21,516 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:19:21,554 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:19:21,555 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-07 14:19:21,575 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:19:21,575 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_225|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_225| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_225| ULTIMATE.start_main_p1 (+ .cse0 1))) (= (+ (select |v_#memory_int_225| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |v_#memory_int_225| ULTIMATE.start_main_p2)) (= (select |v_#memory_int_225| ULTIMATE.start_main_p3) 0) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:19:21,575 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:19:21,780 INFO L273 TraceCheckUtils]: 0: Hoare triple {18806#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {18814#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:19:21,782 INFO L273 TraceCheckUtils]: 1: Hoare triple {18814#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {18818#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-07 14:19:21,784 INFO L273 TraceCheckUtils]: 2: Hoare triple {18818#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {18822#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-07 14:19:21,785 INFO L273 TraceCheckUtils]: 3: Hoare triple {18822#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume #memory_int[main_p1] >= 0; {18822#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-07 14:19:21,786 INFO L273 TraceCheckUtils]: 4: Hoare triple {18822#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume #memory_int[main_p2] <= 0; {18822#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-07 14:19:21,787 INFO L273 TraceCheckUtils]: 5: Hoare triple {18822#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume #memory_int[main_p3] >= 0; {18822#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-07 14:19:21,787 INFO L273 TraceCheckUtils]: 6: Hoare triple {18822#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p4] <= 0); {18807#false} is VALID [2019-01-07 14:19:21,788 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:19:21,788 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:19:21,880 INFO L273 TraceCheckUtils]: 6: Hoare triple {18835#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {18807#false} is VALID [2019-01-07 14:19:21,880 INFO L273 TraceCheckUtils]: 5: Hoare triple {18835#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {18835#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:19:21,882 INFO L273 TraceCheckUtils]: 4: Hoare triple {18835#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {18835#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:19:21,882 INFO L273 TraceCheckUtils]: 3: Hoare triple {18835#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {18835#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:19:21,883 INFO L273 TraceCheckUtils]: 2: Hoare triple {18848#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {18835#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:19:21,883 INFO L273 TraceCheckUtils]: 1: Hoare triple {18852#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {18848#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:19:21,885 INFO L273 TraceCheckUtils]: 0: Hoare triple {18806#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {18852#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:19:21,885 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:19:21,905 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:19:21,905 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-01-07 14:19:21,905 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:19:21,905 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 7 [2019-01-07 14:19:21,905 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:19:21,906 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 14:19:21,941 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:19:21,942 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 14:19:21,942 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 14:19:21,942 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-01-07 14:19:21,942 INFO L87 Difference]: Start difference. First operand 329 states and 1593 transitions. Second operand 8 states. [2019-01-07 14:19:29,394 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:19:29,394 INFO L93 Difference]: Finished difference Result 348 states and 1627 transitions. [2019-01-07 14:19:29,394 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-07 14:19:29,394 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 7 [2019-01-07 14:19:29,394 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:19:29,394 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 14:19:29,395 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 45 transitions. [2019-01-07 14:19:29,395 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 14:19:29,395 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 45 transitions. [2019-01-07 14:19:29,395 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 45 transitions. [2019-01-07 14:19:29,459 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 45 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:19:29,467 INFO L225 Difference]: With dead ends: 348 [2019-01-07 14:19:29,468 INFO L226 Difference]: Without dead ends: 338 [2019-01-07 14:19:29,468 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 17 GetRequests, 7 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 28 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=53, Invalid=79, Unknown=0, NotChecked=0, Total=132 [2019-01-07 14:19:29,468 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 338 states. [2019-01-07 14:19:38,488 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 338 to 333. [2019-01-07 14:19:38,488 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:19:38,488 INFO L82 GeneralOperation]: Start isEquivalent. First operand 338 states. Second operand 333 states. [2019-01-07 14:19:38,489 INFO L74 IsIncluded]: Start isIncluded. First operand 338 states. Second operand 333 states. [2019-01-07 14:19:38,489 INFO L87 Difference]: Start difference. First operand 338 states. Second operand 333 states. [2019-01-07 14:19:38,500 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:19:38,500 INFO L93 Difference]: Finished difference Result 338 states and 1608 transitions. [2019-01-07 14:19:38,500 INFO L276 IsEmpty]: Start isEmpty. Operand 338 states and 1608 transitions. [2019-01-07 14:19:38,501 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:19:38,501 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:19:38,501 INFO L74 IsIncluded]: Start isIncluded. First operand 333 states. Second operand 338 states. [2019-01-07 14:19:38,501 INFO L87 Difference]: Start difference. First operand 333 states. Second operand 338 states. [2019-01-07 14:19:38,512 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:19:38,512 INFO L93 Difference]: Finished difference Result 338 states and 1608 transitions. [2019-01-07 14:19:38,512 INFO L276 IsEmpty]: Start isEmpty. Operand 338 states and 1608 transitions. [2019-01-07 14:19:38,512 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:19:38,512 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:19:38,513 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:19:38,513 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:19:38,513 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 333 states. [2019-01-07 14:19:38,522 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 333 states to 333 states and 1604 transitions. [2019-01-07 14:19:38,522 INFO L78 Accepts]: Start accepts. Automaton has 333 states and 1604 transitions. Word has length 7 [2019-01-07 14:19:38,522 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:19:38,523 INFO L480 AbstractCegarLoop]: Abstraction has 333 states and 1604 transitions. [2019-01-07 14:19:38,523 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 14:19:38,523 INFO L276 IsEmpty]: Start isEmpty. Operand 333 states and 1604 transitions. [2019-01-07 14:19:38,523 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-07 14:19:38,523 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:19:38,523 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-07 14:19:38,524 INFO L423 AbstractCegarLoop]: === Iteration 42 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:19:38,524 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:19:38,524 INFO L82 PathProgramCache]: Analyzing trace with hash -2088231584, now seen corresponding path program 1 times [2019-01-07 14:19:38,524 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:19:38,524 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:19:38,525 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:19:38,525 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:19:38,525 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:19:38,528 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:19:39,039 WARN L181 SmtUtils]: Spent 121.00 ms on a formula simplification. DAG size of input: 39 DAG size of output: 21 [2019-01-07 14:19:39,209 INFO L273 TraceCheckUtils]: 0: Hoare triple {20850#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {20852#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:19:39,210 INFO L273 TraceCheckUtils]: 1: Hoare triple {20852#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {20853#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:19:39,211 INFO L273 TraceCheckUtils]: 2: Hoare triple {20853#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {20853#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:19:39,212 INFO L273 TraceCheckUtils]: 3: Hoare triple {20853#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {20854#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-07 14:19:39,212 INFO L273 TraceCheckUtils]: 4: Hoare triple {20854#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p1] >= 0; {20854#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-07 14:19:39,212 INFO L273 TraceCheckUtils]: 5: Hoare triple {20854#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p2] <= 0; {20855#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} is VALID [2019-01-07 14:19:39,213 INFO L273 TraceCheckUtils]: 6: Hoare triple {20855#(= (select |#memory_int| ULTIMATE.start_main_p3) 0)} assume !(#memory_int[main_p3] >= 0); {20851#false} is VALID [2019-01-07 14:19:39,214 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 14:19:39,214 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:19:39,214 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:19:39,214 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-01-07 14:19:39,214 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [16], [20], [22], [23] [2019-01-07 14:19:39,217 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:19:39,217 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:19:39,226 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:19:39,227 INFO L272 AbstractInterpreter]: Visited 7 different actions 7 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 3. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-07 14:19:39,227 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:19:39,227 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:19:39,227 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:19:39,227 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 40 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 40 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:19:39,236 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:19:39,236 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:19:39,242 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:19:39,245 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:19:39,245 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:19:39,280 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:19:39,298 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:39,299 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:19:39,315 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:39,317 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:39,318 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:19:39,337 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:39,339 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:39,340 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:39,341 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:19:39,348 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:19:39,369 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:19:39,382 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:19:39,392 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:19:39,409 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:19:39,410 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-07 14:19:39,415 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:19:39,416 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_228|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_228| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:19:39,416 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:19:39,487 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:39,488 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:39,489 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:39,490 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:39,492 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:39,493 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:39,494 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:39,495 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 14:19:39,502 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:19:39,533 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:19:39,533 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-07 14:19:39,703 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:19:39,703 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_229|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_229| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= (select |v_#memory_int_229| ULTIMATE.start_main_p2) 0) (= (store |v_#memory_int_229| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= 0 (select |v_#memory_int_229| ULTIMATE.start_main_p3)) (= (select |v_#memory_int_229| ULTIMATE.start_main_p1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:19:39,703 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:19:39,844 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:39,845 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:39,846 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:39,848 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:39,849 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:39,850 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:39,852 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:39,853 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:39,854 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:39,855 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 59 [2019-01-07 14:19:39,863 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:19:39,899 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:19:39,900 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-07 14:19:40,478 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:19:40,478 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_230|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_230| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_230| ULTIMATE.start_main_p4) 1)) (= 0 .cse0) (= |#memory_int| (store |v_#memory_int_230| ULTIMATE.start_main_p1 (+ .cse0 1))) (= (select |v_#memory_int_230| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_230| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-07 14:19:40,478 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:19:40,555 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:40,557 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:40,558 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:40,560 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:40,561 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:40,562 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:40,563 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:40,564 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:40,565 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 14:19:40,566 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:19:40,567 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 72 [2019-01-07 14:19:40,574 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:19:40,614 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:19:40,614 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:30 [2019-01-07 14:19:42,622 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:19:42,622 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_231|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_231| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |v_#memory_int_231| ULTIMATE.start_main_p4) 1) 0) (= |#memory_int| (store |v_#memory_int_231| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= (select |v_#memory_int_231| ULTIMATE.start_main_p1) 1) (= (select |v_#memory_int_231| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-07 14:19:42,622 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:19:42,734 INFO L273 TraceCheckUtils]: 0: Hoare triple {20850#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {20859#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:19:42,736 INFO L273 TraceCheckUtils]: 1: Hoare triple {20859#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {20863#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:19:42,738 INFO L273 TraceCheckUtils]: 2: Hoare triple {20863#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {20867#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:19:42,740 INFO L273 TraceCheckUtils]: 3: Hoare triple {20867#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {20871#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-07 14:19:42,741 INFO L273 TraceCheckUtils]: 4: Hoare triple {20871#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p1] >= 0; {20871#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-07 14:19:42,742 INFO L273 TraceCheckUtils]: 5: Hoare triple {20871#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume #memory_int[main_p2] <= 0; {20871#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-07 14:19:42,743 INFO L273 TraceCheckUtils]: 6: Hoare triple {20871#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} assume !(#memory_int[main_p3] >= 0); {20851#false} is VALID [2019-01-07 14:19:42,744 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:19:42,744 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:19:42,864 INFO L273 TraceCheckUtils]: 6: Hoare triple {20881#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {20851#false} is VALID [2019-01-07 14:19:42,864 INFO L273 TraceCheckUtils]: 5: Hoare triple {20881#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {20881#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:19:42,865 INFO L273 TraceCheckUtils]: 4: Hoare triple {20881#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {20881#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:19:42,866 INFO L273 TraceCheckUtils]: 3: Hoare triple {20891#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {20881#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:19:42,868 INFO L273 TraceCheckUtils]: 2: Hoare triple {20895#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {20891#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:19:42,870 INFO L273 TraceCheckUtils]: 1: Hoare triple {20899#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {20895#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:19:42,872 INFO L273 TraceCheckUtils]: 0: Hoare triple {20850#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {20899#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:19:42,873 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 1 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:19:42,893 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:19:42,893 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-07 14:19:42,894 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:19:42,894 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-01-07 14:19:42,894 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:19:42,894 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 14:19:42,916 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:19:42,916 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 14:19:42,916 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 14:19:42,916 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=66, Invalid=116, Unknown=0, NotChecked=0, Total=182 [2019-01-07 14:19:42,916 INFO L87 Difference]: Start difference. First operand 333 states and 1604 transitions. Second operand 10 states. [2019-01-07 14:19:51,218 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:19:51,218 INFO L93 Difference]: Finished difference Result 348 states and 1634 transitions. [2019-01-07 14:19:51,218 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-07 14:19:51,218 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-01-07 14:19:51,218 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:19:51,218 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 14:19:51,219 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 40 transitions. [2019-01-07 14:19:51,219 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 14:19:51,219 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 40 transitions. [2019-01-07 14:19:51,219 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 40 transitions. [2019-01-07 14:19:51,282 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 40 edges. 40 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:19:51,290 INFO L225 Difference]: With dead ends: 348 [2019-01-07 14:19:51,290 INFO L226 Difference]: Without dead ends: 343 [2019-01-07 14:19:51,291 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 21 GetRequests, 4 SyntacticMatches, 2 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 63 ImplicationChecksByTransitivity, 0.9s TimeCoverageRelationStatistics Valid=99, Invalid=173, Unknown=0, NotChecked=0, Total=272 [2019-01-07 14:19:51,291 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 343 states. [2019-01-07 14:20:01,226 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 343 to 334. [2019-01-07 14:20:01,226 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:20:01,226 INFO L82 GeneralOperation]: Start isEquivalent. First operand 343 states. Second operand 334 states. [2019-01-07 14:20:01,226 INFO L74 IsIncluded]: Start isIncluded. First operand 343 states. Second operand 334 states. [2019-01-07 14:20:01,227 INFO L87 Difference]: Start difference. First operand 343 states. Second operand 334 states. [2019-01-07 14:20:01,238 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:20:01,238 INFO L93 Difference]: Finished difference Result 343 states and 1623 transitions. [2019-01-07 14:20:01,238 INFO L276 IsEmpty]: Start isEmpty. Operand 343 states and 1623 transitions. [2019-01-07 14:20:01,239 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:20:01,239 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:20:01,239 INFO L74 IsIncluded]: Start isIncluded. First operand 334 states. Second operand 343 states. [2019-01-07 14:20:01,239 INFO L87 Difference]: Start difference. First operand 334 states. Second operand 343 states. [2019-01-07 14:20:01,252 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:20:01,252 INFO L93 Difference]: Finished difference Result 343 states and 1623 transitions. [2019-01-07 14:20:01,252 INFO L276 IsEmpty]: Start isEmpty. Operand 343 states and 1623 transitions. [2019-01-07 14:20:01,252 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:20:01,253 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:20:01,253 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:20:01,253 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:20:01,253 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 334 states. [2019-01-07 14:20:01,262 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 334 states to 334 states and 1603 transitions. [2019-01-07 14:20:01,262 INFO L78 Accepts]: Start accepts. Automaton has 334 states and 1603 transitions. Word has length 7 [2019-01-07 14:20:01,263 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:20:01,263 INFO L480 AbstractCegarLoop]: Abstraction has 334 states and 1603 transitions. [2019-01-07 14:20:01,263 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 14:20:01,263 INFO L276 IsEmpty]: Start isEmpty. Operand 334 states and 1603 transitions. [2019-01-07 14:20:01,263 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-07 14:20:01,263 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:20:01,263 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-07 14:20:01,264 INFO L423 AbstractCegarLoop]: === Iteration 43 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:20:01,264 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:20:01,264 INFO L82 PathProgramCache]: Analyzing trace with hash -2088122094, now seen corresponding path program 1 times [2019-01-07 14:20:01,264 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:20:01,264 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:20:01,265 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:20:01,265 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:20:01,265 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:20:01,269 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:20:01,625 INFO L273 TraceCheckUtils]: 0: Hoare triple {22917#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {22919#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 14:20:01,627 INFO L273 TraceCheckUtils]: 1: Hoare triple {22919#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {22920#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-07 14:20:01,628 INFO L273 TraceCheckUtils]: 2: Hoare triple {22920#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {22920#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-01-07 14:20:01,629 INFO L273 TraceCheckUtils]: 3: Hoare triple {22920#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {22921#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-07 14:20:01,630 INFO L273 TraceCheckUtils]: 4: Hoare triple {22921#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {22922#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (<= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-07 14:20:01,631 INFO L273 TraceCheckUtils]: 5: Hoare triple {22922#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (<= (select |#memory_int| ULTIMATE.start_main_p2) 0))} assume #memory_int[main_p1] >= 0; {22923#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:20:01,631 INFO L273 TraceCheckUtils]: 6: Hoare triple {22923#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {22918#false} is VALID [2019-01-07 14:20:01,632 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 9 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 14:20:01,632 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:20:01,632 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:20:01,632 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-01-07 14:20:01,632 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [14], [16], [20], [21] [2019-01-07 14:20:01,634 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:20:01,634 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:20:01,642 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:20:01,642 INFO L272 AbstractInterpreter]: Visited 7 different actions 7 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 3. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 4 fixpoints after 4 different actions. Largest state had 0 variables. [2019-01-07 14:20:01,642 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:20:01,642 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:20:01,642 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:20:01,643 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 41 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 41 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:20:01,652 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:20:01,652 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:20:01,656 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:20:01,663 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:20:01,663 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:20:01,677 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:20:01,685 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:01,686 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:20:01,697 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:01,698 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:01,699 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:20:01,715 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:01,716 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:01,717 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:01,718 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:20:01,723 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:20:01,747 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:20:01,757 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:20:01,767 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:20:01,783 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:20:01,783 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-07 14:20:01,788 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:20:01,788 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_235|]. (and (= (store (store (store (store |v_#memory_int_235| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:20:01,788 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:20:01,844 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:01,846 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:01,847 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:01,848 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:01,849 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:01,850 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:01,851 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:01,852 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 14:20:01,857 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:20:01,886 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:20:01,886 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-07 14:20:03,895 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:20:03,896 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_236|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_236| ULTIMATE.start_main_p4))) (and (= .cse0 0) (= (store |v_#memory_int_236| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_236| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_236| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_236| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:20:03,896 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:20:03,957 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:03,958 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:03,959 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:03,961 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:03,962 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:03,963 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:03,964 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:03,966 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:03,967 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:03,968 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 59 [2019-01-07 14:20:03,974 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:20:04,023 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:20:04,023 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-07 14:20:04,045 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:20:04,045 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_237|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_237| ULTIMATE.start_main_p1))) (and (= 0 (+ (select |v_#memory_int_237| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_237| ULTIMATE.start_main_p1 (+ .cse0 1))) (= 0 .cse0) (= 0 (select |v_#memory_int_237| ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_237| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-07 14:20:04,046 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:20:04,105 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:04,106 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:04,107 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:04,108 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:04,110 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:04,111 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:04,112 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:04,113 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:04,114 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:04,115 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:04,115 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 14:20:04,116 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 77 [2019-01-07 14:20:04,120 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:20:04,159 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:20:04,159 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-07 14:20:06,263 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:20:06,263 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_238|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_238| ULTIMATE.start_main_p3))) (and (= 0 .cse0) (= 0 (select |v_#memory_int_238| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |v_#memory_int_238| ULTIMATE.start_main_p1)) (= (store |v_#memory_int_238| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= 0 (+ (select |v_#memory_int_238| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-07 14:20:06,263 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:20:06,357 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:06,358 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:06,359 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:06,361 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:06,362 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:06,363 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:06,364 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:06,365 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:06,366 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 14:20:06,367 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:06,368 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 72 [2019-01-07 14:20:06,373 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:20:06,412 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:20:06,412 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:30 [2019-01-07 14:20:06,432 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:20:06,432 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_239|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_239| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_239| ULTIMATE.start_main_p3) 1) (= 0 (+ (select |v_#memory_int_239| ULTIMATE.start_main_p4) 1)) (= 1 (select |v_#memory_int_239| ULTIMATE.start_main_p1)) (= .cse0 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= |#memory_int| (store |v_#memory_int_239| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))))) [2019-01-07 14:20:06,432 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:20:06,488 INFO L273 TraceCheckUtils]: 0: Hoare triple {22917#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {22927#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:20:06,490 INFO L273 TraceCheckUtils]: 1: Hoare triple {22927#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {22931#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:20:06,492 INFO L273 TraceCheckUtils]: 2: Hoare triple {22931#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {22935#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:20:06,495 INFO L273 TraceCheckUtils]: 3: Hoare triple {22935#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {22939#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-07 14:20:06,497 INFO L273 TraceCheckUtils]: 4: Hoare triple {22939#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {22943#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-07 14:20:06,498 INFO L273 TraceCheckUtils]: 5: Hoare triple {22943#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume #memory_int[main_p1] >= 0; {22943#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-01-07 14:20:06,499 INFO L273 TraceCheckUtils]: 6: Hoare triple {22943#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume !(#memory_int[main_p2] <= 0); {22918#false} is VALID [2019-01-07 14:20:06,500 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:20:06,500 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:20:06,587 INFO L273 TraceCheckUtils]: 6: Hoare triple {22923#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {22918#false} is VALID [2019-01-07 14:20:06,587 INFO L273 TraceCheckUtils]: 5: Hoare triple {22923#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {22923#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:20:06,588 INFO L273 TraceCheckUtils]: 4: Hoare triple {22956#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {22923#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:20:06,589 INFO L273 TraceCheckUtils]: 3: Hoare triple {22960#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {22956#(<= (select |#memory_int| ULTIMATE.start_main_p2) 1)} is VALID [2019-01-07 14:20:06,591 INFO L273 TraceCheckUtils]: 2: Hoare triple {22964#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {22960#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1)} is VALID [2019-01-07 14:20:06,593 INFO L273 TraceCheckUtils]: 1: Hoare triple {22968#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {22964#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1)} is VALID [2019-01-07 14:20:06,594 INFO L273 TraceCheckUtils]: 0: Hoare triple {22917#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {22968#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 1)} is VALID [2019-01-07 14:20:06,595 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 3 proven. 7 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:20:06,613 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:20:06,613 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5, 5] total 14 [2019-01-07 14:20:06,613 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:20:06,613 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 7 [2019-01-07 14:20:06,614 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:20:06,614 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-01-07 14:20:06,637 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:20:06,638 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-01-07 14:20:06,638 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-01-07 14:20:06,638 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=91, Invalid=149, Unknown=0, NotChecked=0, Total=240 [2019-01-07 14:20:06,638 INFO L87 Difference]: Start difference. First operand 334 states and 1603 transitions. Second operand 12 states. [2019-01-07 14:20:16,844 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:20:16,844 INFO L93 Difference]: Finished difference Result 457 states and 2102 transitions. [2019-01-07 14:20:16,844 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2019-01-07 14:20:16,844 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 7 [2019-01-07 14:20:16,845 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:20:16,845 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-07 14:20:16,845 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 62 transitions. [2019-01-07 14:20:16,845 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-07 14:20:16,846 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 62 transitions. [2019-01-07 14:20:16,846 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 62 transitions. [2019-01-07 14:20:16,947 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 62 edges. 62 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:20:16,960 INFO L225 Difference]: With dead ends: 457 [2019-01-07 14:20:16,960 INFO L226 Difference]: Without dead ends: 456 [2019-01-07 14:20:16,960 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 22 GetRequests, 3 SyntacticMatches, 1 SemanticMatches, 18 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 82 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=136, Invalid=244, Unknown=0, NotChecked=0, Total=380 [2019-01-07 14:20:16,961 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 456 states. [2019-01-07 14:20:25,195 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 456 to 329. [2019-01-07 14:20:25,195 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:20:25,195 INFO L82 GeneralOperation]: Start isEquivalent. First operand 456 states. Second operand 329 states. [2019-01-07 14:20:25,195 INFO L74 IsIncluded]: Start isIncluded. First operand 456 states. Second operand 329 states. [2019-01-07 14:20:25,196 INFO L87 Difference]: Start difference. First operand 456 states. Second operand 329 states. [2019-01-07 14:20:25,213 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:20:25,213 INFO L93 Difference]: Finished difference Result 456 states and 2098 transitions. [2019-01-07 14:20:25,213 INFO L276 IsEmpty]: Start isEmpty. Operand 456 states and 2098 transitions. [2019-01-07 14:20:25,214 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:20:25,214 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:20:25,215 INFO L74 IsIncluded]: Start isIncluded. First operand 329 states. Second operand 456 states. [2019-01-07 14:20:25,215 INFO L87 Difference]: Start difference. First operand 329 states. Second operand 456 states. [2019-01-07 14:20:25,235 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:20:25,235 INFO L93 Difference]: Finished difference Result 456 states and 2098 transitions. [2019-01-07 14:20:25,235 INFO L276 IsEmpty]: Start isEmpty. Operand 456 states and 2098 transitions. [2019-01-07 14:20:25,237 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:20:25,237 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:20:25,237 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:20:25,237 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:20:25,237 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 329 states. [2019-01-07 14:20:25,249 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 329 states to 329 states and 1582 transitions. [2019-01-07 14:20:25,249 INFO L78 Accepts]: Start accepts. Automaton has 329 states and 1582 transitions. Word has length 7 [2019-01-07 14:20:25,249 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:20:25,250 INFO L480 AbstractCegarLoop]: Abstraction has 329 states and 1582 transitions. [2019-01-07 14:20:25,250 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-01-07 14:20:25,250 INFO L276 IsEmpty]: Start isEmpty. Operand 329 states and 1582 transitions. [2019-01-07 14:20:25,250 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-07 14:20:25,251 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:20:25,251 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-07 14:20:25,251 INFO L423 AbstractCegarLoop]: === Iteration 44 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:20:25,251 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:20:25,251 INFO L82 PathProgramCache]: Analyzing trace with hash -2084662494, now seen corresponding path program 2 times [2019-01-07 14:20:25,251 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:20:25,252 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:20:25,252 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:20:25,252 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:20:25,252 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:20:25,256 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:20:25,516 INFO L273 TraceCheckUtils]: 0: Hoare triple {25401#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {25403#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 14:20:25,517 INFO L273 TraceCheckUtils]: 1: Hoare triple {25403#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {25404#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} is VALID [2019-01-07 14:20:25,518 INFO L273 TraceCheckUtils]: 2: Hoare triple {25404#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= (select |#memory_int| ULTIMATE.start_main_p2) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {25405#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-07 14:20:25,519 INFO L273 TraceCheckUtils]: 3: Hoare triple {25405#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {25405#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-07 14:20:25,520 INFO L273 TraceCheckUtils]: 4: Hoare triple {25405#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 1) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {25406#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-01-07 14:20:25,520 INFO L273 TraceCheckUtils]: 5: Hoare triple {25406#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume #memory_int[main_p1] >= 0; {25406#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} is VALID [2019-01-07 14:20:25,521 INFO L273 TraceCheckUtils]: 6: Hoare triple {25406#(<= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)} assume !(#memory_int[main_p2] <= 0); {25402#false} is VALID [2019-01-07 14:20:25,522 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 9 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 14:20:25,522 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:20:25,522 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:20:25,522 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-07 14:20:25,522 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-07 14:20:25,522 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:20:25,523 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 42 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 42 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:20:25,531 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-07 14:20:25,532 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-07 14:20:25,542 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-07 14:20:25,542 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-07 14:20:25,545 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:20:25,545 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:20:25,575 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:20:25,589 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:25,589 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:20:25,603 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:25,604 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:25,605 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:20:25,622 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:25,624 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:25,625 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:25,626 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:20:25,635 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:20:25,655 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:20:25,667 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:20:25,677 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:20:25,694 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:20:25,694 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-07 14:20:25,699 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:20:25,700 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_244|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_244| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:20:25,700 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:20:25,765 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:25,766 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:25,767 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:25,768 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:25,769 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:25,770 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:25,771 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:25,772 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 14:20:25,778 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:20:25,809 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:20:25,809 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-07 14:20:27,822 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:20:27,822 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_245|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_245| ULTIMATE.start_main_p4))) (and (= 0 .cse0) (= (store |v_#memory_int_245| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_245| ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_245| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_245| ULTIMATE.start_main_p3) 0))) [2019-01-07 14:20:27,822 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:20:27,890 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:27,892 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:27,893 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:27,894 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:27,895 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:27,897 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:27,898 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:27,898 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 14:20:27,899 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 60 [2019-01-07 14:20:27,904 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:20:27,939 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:20:27,940 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:42, output treesize:30 [2019-01-07 14:20:27,954 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:20:27,954 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_246|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_246| ULTIMATE.start_main_p2))) (and (= 0 (+ (select |v_#memory_int_246| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_246| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= 0 .cse0) (= (select |v_#memory_int_246| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_246| ULTIMATE.start_main_p1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:20:27,954 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:20:28,023 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:28,025 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:28,026 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:28,027 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:28,028 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:28,029 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:28,030 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:28,031 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:28,032 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:28,033 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 61 [2019-01-07 14:20:28,039 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:20:28,072 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:20:28,073 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:44, output treesize:34 [2019-01-07 14:20:30,088 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:20:30,089 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_247|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_247| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_247| ULTIMATE.start_main_p2) 1)) (= .cse0 0) (= (+ (select |v_#memory_int_247| ULTIMATE.start_main_p4) 1) 0) (= (store |v_#memory_int_247| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= (select |v_#memory_int_247| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-07 14:20:30,089 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-07 14:20:30,160 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:30,161 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:30,162 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:30,164 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:30,165 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:30,166 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:30,167 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:30,168 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:30,169 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:30,170 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:30,170 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 14:20:30,171 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 75 [2019-01-07 14:20:30,178 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:20:30,217 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:20:30,217 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:44, output treesize:34 [2019-01-07 14:20:30,231 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:20:30,231 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_248|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_248| ULTIMATE.start_main_p3))) (and (= (+ (select |v_#memory_int_248| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= (store |v_#memory_int_248| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= (+ (select |v_#memory_int_248| ULTIMATE.start_main_p2) 1) 0) (= 1 (select |v_#memory_int_248| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-07 14:20:30,232 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-07 14:20:30,296 INFO L273 TraceCheckUtils]: 0: Hoare triple {25401#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {25410#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:20:30,298 INFO L273 TraceCheckUtils]: 1: Hoare triple {25410#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {25414#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:20:30,300 INFO L273 TraceCheckUtils]: 2: Hoare triple {25414#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {25418#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:20:30,302 INFO L273 TraceCheckUtils]: 3: Hoare triple {25418#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {25422#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-07 14:20:30,304 INFO L273 TraceCheckUtils]: 4: Hoare triple {25422#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {25426#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-07 14:20:30,305 INFO L273 TraceCheckUtils]: 5: Hoare triple {25426#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume #memory_int[main_p1] >= 0; {25426#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} is VALID [2019-01-07 14:20:30,306 INFO L273 TraceCheckUtils]: 6: Hoare triple {25426#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))} assume !(#memory_int[main_p2] <= 0); {25402#false} is VALID [2019-01-07 14:20:30,307 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:20:30,307 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:20:30,422 INFO L273 TraceCheckUtils]: 6: Hoare triple {25433#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {25402#false} is VALID [2019-01-07 14:20:30,422 INFO L273 TraceCheckUtils]: 5: Hoare triple {25433#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {25433#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:20:30,423 INFO L273 TraceCheckUtils]: 4: Hoare triple {25440#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {25433#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:20:30,425 INFO L273 TraceCheckUtils]: 3: Hoare triple {25444#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {25440#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:20:30,426 INFO L273 TraceCheckUtils]: 2: Hoare triple {25448#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {25444#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:20:30,429 INFO L273 TraceCheckUtils]: 1: Hoare triple {25452#(<= (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {25448#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:20:30,431 INFO L273 TraceCheckUtils]: 0: Hoare triple {25401#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {25452#(<= (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-01-07 14:20:30,432 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 5 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:20:30,452 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:20:30,452 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 5, 5] total 14 [2019-01-07 14:20:30,453 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:20:30,453 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 7 [2019-01-07 14:20:30,453 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:20:30,453 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states. [2019-01-07 14:20:30,474 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:20:30,474 INFO L459 AbstractCegarLoop]: Interpolant automaton has 11 states [2019-01-07 14:20:30,474 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2019-01-07 14:20:30,475 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=89, Invalid=151, Unknown=0, NotChecked=0, Total=240 [2019-01-07 14:20:30,475 INFO L87 Difference]: Start difference. First operand 329 states and 1582 transitions. Second operand 11 states. [2019-01-07 14:20:39,016 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:20:39,016 INFO L93 Difference]: Finished difference Result 346 states and 1608 transitions. [2019-01-07 14:20:39,016 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-07 14:20:39,016 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 7 [2019-01-07 14:20:39,016 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:20:39,017 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2019-01-07 14:20:39,017 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 47 transitions. [2019-01-07 14:20:39,017 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2019-01-07 14:20:39,017 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 47 transitions. [2019-01-07 14:20:39,017 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 47 transitions. [2019-01-07 14:20:39,101 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 47 edges. 47 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:20:39,110 INFO L225 Difference]: With dead ends: 346 [2019-01-07 14:20:39,110 INFO L226 Difference]: Without dead ends: 345 [2019-01-07 14:20:39,111 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 21 GetRequests, 3 SyntacticMatches, 1 SemanticMatches, 17 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 90 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=119, Invalid=223, Unknown=0, NotChecked=0, Total=342 [2019-01-07 14:20:39,111 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 345 states. [2019-01-07 14:20:45,913 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 345 to 213. [2019-01-07 14:20:45,914 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:20:45,914 INFO L82 GeneralOperation]: Start isEquivalent. First operand 345 states. Second operand 213 states. [2019-01-07 14:20:45,914 INFO L74 IsIncluded]: Start isIncluded. First operand 345 states. Second operand 213 states. [2019-01-07 14:20:45,914 INFO L87 Difference]: Start difference. First operand 345 states. Second operand 213 states. [2019-01-07 14:20:45,925 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:20:45,925 INFO L93 Difference]: Finished difference Result 345 states and 1604 transitions. [2019-01-07 14:20:45,926 INFO L276 IsEmpty]: Start isEmpty. Operand 345 states and 1604 transitions. [2019-01-07 14:20:45,926 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:20:45,926 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:20:45,926 INFO L74 IsIncluded]: Start isIncluded. First operand 213 states. Second operand 345 states. [2019-01-07 14:20:45,926 INFO L87 Difference]: Start difference. First operand 213 states. Second operand 345 states. [2019-01-07 14:20:45,937 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:20:45,937 INFO L93 Difference]: Finished difference Result 345 states and 1604 transitions. [2019-01-07 14:20:45,937 INFO L276 IsEmpty]: Start isEmpty. Operand 345 states and 1604 transitions. [2019-01-07 14:20:45,937 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:20:45,938 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:20:45,938 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:20:45,938 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:20:45,938 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 213 states. [2019-01-07 14:20:45,943 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 213 states to 213 states and 1003 transitions. [2019-01-07 14:20:45,943 INFO L78 Accepts]: Start accepts. Automaton has 213 states and 1003 transitions. Word has length 7 [2019-01-07 14:20:45,943 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:20:45,943 INFO L480 AbstractCegarLoop]: Abstraction has 213 states and 1003 transitions. [2019-01-07 14:20:45,944 INFO L481 AbstractCegarLoop]: Interpolant automaton has 11 states. [2019-01-07 14:20:45,944 INFO L276 IsEmpty]: Start isEmpty. Operand 213 states and 1003 transitions. [2019-01-07 14:20:45,944 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-07 14:20:45,944 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:20:45,944 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-07 14:20:45,944 INFO L423 AbstractCegarLoop]: === Iteration 45 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:20:45,944 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:20:45,945 INFO L82 PathProgramCache]: Analyzing trace with hash -2084418336, now seen corresponding path program 1 times [2019-01-07 14:20:45,945 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:20:45,945 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:20:45,945 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-07 14:20:45,945 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:20:45,945 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:20:45,949 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:20:46,123 INFO L273 TraceCheckUtils]: 0: Hoare triple {27229#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {27231#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:20:46,125 INFO L273 TraceCheckUtils]: 1: Hoare triple {27231#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {27232#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:20:46,126 INFO L273 TraceCheckUtils]: 2: Hoare triple {27232#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {27232#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:20:46,126 INFO L273 TraceCheckUtils]: 3: Hoare triple {27232#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {27233#(and (<= 0 (select |#memory_int| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:20:46,127 INFO L273 TraceCheckUtils]: 4: Hoare triple {27233#(and (<= 0 (select |#memory_int| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)))} assume #memory_int[main_p1] >= 0; {27233#(and (<= 0 (select |#memory_int| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:20:46,128 INFO L273 TraceCheckUtils]: 5: Hoare triple {27233#(and (<= 0 (select |#memory_int| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)))} assume #memory_int[main_p2] <= 0; {27234#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:20:46,128 INFO L273 TraceCheckUtils]: 6: Hoare triple {27234#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {27230#false} is VALID [2019-01-07 14:20:46,129 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 14:20:46,129 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:20:46,129 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:20:46,129 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-01-07 14:20:46,129 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [16], [20], [22], [23] [2019-01-07 14:20:46,130 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:20:46,131 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:20:46,142 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:20:46,142 INFO L272 AbstractInterpreter]: Visited 7 different actions 7 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 3. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-07 14:20:46,142 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:20:46,142 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:20:46,143 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:20:46,143 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 43 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 43 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:20:46,152 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:20:46,152 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:20:46,157 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:20:46,159 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:20:46,160 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:20:46,174 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:20:46,180 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-07 14:20:46,202 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:46,202 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 26 [2019-01-07 14:20:46,213 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:46,215 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:46,215 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 33 [2019-01-07 14:20:46,218 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:20:46,232 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:20:46,240 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:20:46,250 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:20:46,263 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:20:46,264 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:22, output treesize:27 [2019-01-07 14:20:46,269 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:20:46,269 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_253|, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_253| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:20:46,269 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:20:46,322 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:46,323 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:46,324 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:46,325 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:46,326 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 28 [2019-01-07 14:20:46,329 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:20:46,345 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:20:46,346 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:22 [2019-01-07 14:20:46,369 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:20:46,369 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_254|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_254| ULTIMATE.start_main_p4))) (and (= (select |v_#memory_int_254| ULTIMATE.start_main_p3) 0) (= (store |v_#memory_int_254| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (select |v_#memory_int_254| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-07 14:20:46,369 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:20:46,412 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:46,413 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:46,415 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:46,416 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:46,416 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 14:20:46,417 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 28 treesize of output 41 [2019-01-07 14:20:46,420 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:20:46,441 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:20:46,441 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:34, output treesize:22 [2019-01-07 14:20:46,465 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:20:46,466 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_255|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_255| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= (store |v_#memory_int_255| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= 0 (select |v_#memory_int_255| ULTIMATE.start_main_p3)) (= (+ (select |v_#memory_int_255| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-07 14:20:46,466 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:20:46,509 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:46,510 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:46,512 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:46,513 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:46,514 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:46,515 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:20:46,516 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 30 treesize of output 44 [2019-01-07 14:20:46,519 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:20:46,540 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:20:46,540 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:36, output treesize:26 [2019-01-07 14:20:46,546 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:20:46,546 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_256|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_256| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_256| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= |#memory_int| (store |v_#memory_int_256| ULTIMATE.start_main_p3 (+ .cse0 1))) (= 0 (+ (select |v_#memory_int_256| ULTIMATE.start_main_p4) 1)) (= .cse0 0))) [2019-01-07 14:20:46,546 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:20:46,658 INFO L273 TraceCheckUtils]: 0: Hoare triple {27229#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {27238#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:20:46,659 INFO L273 TraceCheckUtils]: 1: Hoare triple {27238#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {27242#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:20:46,660 INFO L273 TraceCheckUtils]: 2: Hoare triple {27242#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {27246#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-07 14:20:46,661 INFO L273 TraceCheckUtils]: 3: Hoare triple {27246#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {27250#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-07 14:20:46,662 INFO L273 TraceCheckUtils]: 4: Hoare triple {27250#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p1] >= 0; {27250#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-07 14:20:46,679 INFO L273 TraceCheckUtils]: 5: Hoare triple {27250#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p2] <= 0; {27250#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-07 14:20:46,685 INFO L273 TraceCheckUtils]: 6: Hoare triple {27250#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume !(#memory_int[main_p3] >= 0); {27230#false} is VALID [2019-01-07 14:20:46,686 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:20:46,686 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:20:46,770 INFO L273 TraceCheckUtils]: 6: Hoare triple {27234#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {27230#false} is VALID [2019-01-07 14:20:46,770 INFO L273 TraceCheckUtils]: 5: Hoare triple {27234#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {27234#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:20:46,772 INFO L273 TraceCheckUtils]: 4: Hoare triple {27234#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {27234#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:20:46,772 INFO L273 TraceCheckUtils]: 3: Hoare triple {27269#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {27234#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:20:46,774 INFO L273 TraceCheckUtils]: 2: Hoare triple {27273#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {27269#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1))} is VALID [2019-01-07 14:20:46,775 INFO L273 TraceCheckUtils]: 1: Hoare triple {27277#(<= 0 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {27273#(<= 0 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1))} is VALID [2019-01-07 14:20:46,776 INFO L273 TraceCheckUtils]: 0: Hoare triple {27229#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {27277#(<= 0 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1))} is VALID [2019-01-07 14:20:46,776 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 2 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:20:46,795 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:20:46,796 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-07 14:20:46,796 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:20:46,796 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-01-07 14:20:46,796 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:20:46,796 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 14:20:46,818 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:20:46,819 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 14:20:46,819 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 14:20:46,819 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=63, Invalid=93, Unknown=0, NotChecked=0, Total=156 [2019-01-07 14:20:46,819 INFO L87 Difference]: Start difference. First operand 213 states and 1003 transitions. Second operand 10 states. [2019-01-07 14:20:54,195 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:20:54,195 INFO L93 Difference]: Finished difference Result 280 states and 1278 transitions. [2019-01-07 14:20:54,195 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-07 14:20:54,195 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-01-07 14:20:54,196 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:20:54,196 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 14:20:54,196 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 45 transitions. [2019-01-07 14:20:54,196 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 14:20:54,196 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 45 transitions. [2019-01-07 14:20:54,196 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 45 transitions. [2019-01-07 14:20:54,257 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 45 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:20:54,264 INFO L225 Difference]: With dead ends: 280 [2019-01-07 14:20:54,264 INFO L226 Difference]: Without dead ends: 277 [2019-01-07 14:20:54,264 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 20 GetRequests, 5 SyntacticMatches, 1 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 51 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=91, Invalid=149, Unknown=0, NotChecked=0, Total=240 [2019-01-07 14:20:54,265 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 277 states. [2019-01-07 14:21:01,906 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 277 to 242. [2019-01-07 14:21:01,906 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:21:01,906 INFO L82 GeneralOperation]: Start isEquivalent. First operand 277 states. Second operand 242 states. [2019-01-07 14:21:01,906 INFO L74 IsIncluded]: Start isIncluded. First operand 277 states. Second operand 242 states. [2019-01-07 14:21:01,906 INFO L87 Difference]: Start difference. First operand 277 states. Second operand 242 states. [2019-01-07 14:21:01,915 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:21:01,915 INFO L93 Difference]: Finished difference Result 277 states and 1273 transitions. [2019-01-07 14:21:01,915 INFO L276 IsEmpty]: Start isEmpty. Operand 277 states and 1273 transitions. [2019-01-07 14:21:01,916 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:21:01,916 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:21:01,916 INFO L74 IsIncluded]: Start isIncluded. First operand 242 states. Second operand 277 states. [2019-01-07 14:21:01,916 INFO L87 Difference]: Start difference. First operand 242 states. Second operand 277 states. [2019-01-07 14:21:01,924 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:21:01,925 INFO L93 Difference]: Finished difference Result 277 states and 1273 transitions. [2019-01-07 14:21:01,925 INFO L276 IsEmpty]: Start isEmpty. Operand 277 states and 1273 transitions. [2019-01-07 14:21:01,925 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:21:01,925 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:21:01,925 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:21:01,925 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:21:01,925 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 242 states. [2019-01-07 14:21:01,932 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 242 states to 242 states and 1141 transitions. [2019-01-07 14:21:01,932 INFO L78 Accepts]: Start accepts. Automaton has 242 states and 1141 transitions. Word has length 7 [2019-01-07 14:21:01,932 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:21:01,932 INFO L480 AbstractCegarLoop]: Abstraction has 242 states and 1141 transitions. [2019-01-07 14:21:01,932 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 14:21:01,932 INFO L276 IsEmpty]: Start isEmpty. Operand 242 states and 1141 transitions. [2019-01-07 14:21:01,933 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-07 14:21:01,933 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:21:01,933 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-07 14:21:01,933 INFO L423 AbstractCegarLoop]: === Iteration 46 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:21:01,933 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:21:01,933 INFO L82 PathProgramCache]: Analyzing trace with hash -2080543520, now seen corresponding path program 1 times [2019-01-07 14:21:01,934 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:21:01,934 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:21:01,934 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:21:01,934 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:21:01,934 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:21:01,937 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:21:02,174 INFO L273 TraceCheckUtils]: 0: Hoare triple {28849#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {28851#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:21:02,175 INFO L273 TraceCheckUtils]: 1: Hoare triple {28851#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {28852#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-01-07 14:21:02,177 INFO L273 TraceCheckUtils]: 2: Hoare triple {28852#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 1) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {28853#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:21:02,177 INFO L273 TraceCheckUtils]: 3: Hoare triple {28853#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p1] >= 0; {28853#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:21:02,179 INFO L273 TraceCheckUtils]: 4: Hoare triple {28853#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p2] <= 0; {28853#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:21:02,179 INFO L273 TraceCheckUtils]: 5: Hoare triple {28853#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p3] >= 0; {28854#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:21:02,181 INFO L273 TraceCheckUtils]: 6: Hoare triple {28854#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {28850#false} is VALID [2019-01-07 14:21:02,181 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:21:02,181 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:21:02,182 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:21:02,182 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-01-07 14:21:02,182 INFO L207 CegarAbsIntRunner]: [0], [14], [16], [20], [22], [24], [25] [2019-01-07 14:21:02,183 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:21:02,183 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:21:02,201 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:21:02,201 INFO L272 AbstractInterpreter]: Visited 7 different actions 7 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 3. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-07 14:21:02,201 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:21:02,201 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:21:02,201 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:21:02,201 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 44 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 44 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:21:02,240 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:21:02,240 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:21:02,246 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:21:02,253 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:21:02,253 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:21:02,262 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:21:02,272 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-07 14:21:02,289 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 0 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-01-07 14:21:02,305 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:02,306 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 1 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 25 [2019-01-07 14:21:02,307 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:21:02,318 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:21:02,327 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:21:02,335 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:21:02,346 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:21:02,346 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:19, output treesize:24 [2019-01-07 14:21:02,350 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:21:02,350 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_260|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_260| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0))) [2019-01-07 14:21:02,350 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:21:02,386 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:02,387 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:02,388 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 2 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 21 treesize of output 15 [2019-01-07 14:21:02,389 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:21:02,398 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:21:02,398 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:24, output treesize:14 [2019-01-07 14:21:02,405 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:21:02,405 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_261|]. (let ((.cse0 (select |v_#memory_int_261| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_261| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= 0 (select |v_#memory_int_261| ULTIMATE.start_main_p3)) (= 0 .cse0))) [2019-01-07 14:21:02,406 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0)) [2019-01-07 14:21:02,433 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:02,434 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:02,435 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:02,436 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:02,437 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 4 disjoint index pairs (out of 1 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 23 treesize of output 29 [2019-01-07 14:21:02,439 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:21:02,450 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:21:02,451 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:26, output treesize:16 [2019-01-07 14:21:02,565 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:21:02,565 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_262|, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_262| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_262| ULTIMATE.start_main_p3 (+ .cse0 1))) (= 0 (+ (select |v_#memory_int_262| ULTIMATE.start_main_p4) 1)) (= .cse0 0))) [2019-01-07 14:21:02,565 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1)) [2019-01-07 14:21:02,605 INFO L273 TraceCheckUtils]: 0: Hoare triple {28849#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {28858#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:21:02,606 INFO L273 TraceCheckUtils]: 1: Hoare triple {28858#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {28862#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-07 14:21:02,608 INFO L273 TraceCheckUtils]: 2: Hoare triple {28862#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {28866#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1))))} is VALID [2019-01-07 14:21:02,608 INFO L273 TraceCheckUtils]: 3: Hoare triple {28866#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1))))} assume #memory_int[main_p1] >= 0; {28866#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1))))} is VALID [2019-01-07 14:21:02,609 INFO L273 TraceCheckUtils]: 4: Hoare triple {28866#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1))))} assume #memory_int[main_p2] <= 0; {28866#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1))))} is VALID [2019-01-07 14:21:02,610 INFO L273 TraceCheckUtils]: 5: Hoare triple {28866#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1))))} assume #memory_int[main_p3] >= 0; {28866#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1))))} is VALID [2019-01-07 14:21:02,611 INFO L273 TraceCheckUtils]: 6: Hoare triple {28866#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1))))} assume !(#memory_int[main_p4] <= 0); {28850#false} is VALID [2019-01-07 14:21:02,611 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:21:02,611 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:21:02,641 INFO L273 TraceCheckUtils]: 6: Hoare triple {28854#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {28850#false} is VALID [2019-01-07 14:21:02,642 INFO L273 TraceCheckUtils]: 5: Hoare triple {28854#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {28854#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:21:02,642 INFO L273 TraceCheckUtils]: 4: Hoare triple {28854#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {28854#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:21:02,643 INFO L273 TraceCheckUtils]: 3: Hoare triple {28854#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {28854#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:21:02,644 INFO L273 TraceCheckUtils]: 2: Hoare triple {28891#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {28854#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:21:02,645 INFO L273 TraceCheckUtils]: 1: Hoare triple {28895#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {28891#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:21:02,647 INFO L273 TraceCheckUtils]: 0: Hoare triple {28849#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {28895#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:21:02,647 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:21:02,668 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:21:02,668 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 3, 3] total 9 [2019-01-07 14:21:02,668 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:21:02,668 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 7 [2019-01-07 14:21:02,668 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:21:02,668 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states. [2019-01-07 14:21:02,684 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:21:02,684 INFO L459 AbstractCegarLoop]: Interpolant automaton has 9 states [2019-01-07 14:21:02,684 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 9 interpolants. [2019-01-07 14:21:02,684 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=46, Invalid=64, Unknown=0, NotChecked=0, Total=110 [2019-01-07 14:21:02,685 INFO L87 Difference]: Start difference. First operand 242 states and 1141 transitions. Second operand 9 states. [2019-01-07 14:21:11,560 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:21:11,560 INFO L93 Difference]: Finished difference Result 390 states and 1798 transitions. [2019-01-07 14:21:11,560 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-07 14:21:11,561 INFO L78 Accepts]: Start accepts. Automaton has 9 states. Word has length 7 [2019-01-07 14:21:11,561 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:21:11,561 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2019-01-07 14:21:11,561 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 55 transitions. [2019-01-07 14:21:11,561 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 9 states. [2019-01-07 14:21:11,561 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 55 transitions. [2019-01-07 14:21:11,562 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 55 transitions. [2019-01-07 14:21:11,631 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 55 edges. 55 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:21:11,641 INFO L225 Difference]: With dead ends: 390 [2019-01-07 14:21:11,641 INFO L226 Difference]: Without dead ends: 377 [2019-01-07 14:21:11,641 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 17 GetRequests, 7 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 26 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=54, Invalid=78, Unknown=0, NotChecked=0, Total=132 [2019-01-07 14:21:11,641 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 377 states. [2019-01-07 14:21:21,929 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 377 to 367. [2019-01-07 14:21:21,929 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:21:21,930 INFO L82 GeneralOperation]: Start isEquivalent. First operand 377 states. Second operand 367 states. [2019-01-07 14:21:21,930 INFO L74 IsIncluded]: Start isIncluded. First operand 377 states. Second operand 367 states. [2019-01-07 14:21:21,930 INFO L87 Difference]: Start difference. First operand 377 states. Second operand 367 states. [2019-01-07 14:21:21,942 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:21:21,943 INFO L93 Difference]: Finished difference Result 377 states and 1660 transitions. [2019-01-07 14:21:21,943 INFO L276 IsEmpty]: Start isEmpty. Operand 377 states and 1660 transitions. [2019-01-07 14:21:21,943 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:21:21,943 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:21:21,943 INFO L74 IsIncluded]: Start isIncluded. First operand 367 states. Second operand 377 states. [2019-01-07 14:21:21,944 INFO L87 Difference]: Start difference. First operand 367 states. Second operand 377 states. [2019-01-07 14:21:21,956 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:21:21,956 INFO L93 Difference]: Finished difference Result 377 states and 1660 transitions. [2019-01-07 14:21:21,957 INFO L276 IsEmpty]: Start isEmpty. Operand 377 states and 1660 transitions. [2019-01-07 14:21:21,957 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:21:21,957 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:21:21,957 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:21:21,957 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:21:21,958 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 367 states. [2019-01-07 14:21:21,968 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 367 states to 367 states and 1654 transitions. [2019-01-07 14:21:21,968 INFO L78 Accepts]: Start accepts. Automaton has 367 states and 1654 transitions. Word has length 7 [2019-01-07 14:21:21,968 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:21:21,968 INFO L480 AbstractCegarLoop]: Abstraction has 367 states and 1654 transitions. [2019-01-07 14:21:21,968 INFO L481 AbstractCegarLoop]: Interpolant automaton has 9 states. [2019-01-07 14:21:21,969 INFO L276 IsEmpty]: Start isEmpty. Operand 367 states and 1654 transitions. [2019-01-07 14:21:21,969 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-07 14:21:21,969 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:21:21,969 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1] [2019-01-07 14:21:21,969 INFO L423 AbstractCegarLoop]: === Iteration 47 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:21:21,970 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:21:21,970 INFO L82 PathProgramCache]: Analyzing trace with hash -2080966800, now seen corresponding path program 4 times [2019-01-07 14:21:21,970 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:21:21,970 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:21:21,970 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:21:21,971 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:21:21,971 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:21:21,974 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:21:22,290 INFO L273 TraceCheckUtils]: 0: Hoare triple {31123#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {31125#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:21:22,291 INFO L273 TraceCheckUtils]: 1: Hoare triple {31125#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {31125#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:21:22,292 INFO L273 TraceCheckUtils]: 2: Hoare triple {31125#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {31126#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)))} is VALID [2019-01-07 14:21:22,292 INFO L273 TraceCheckUtils]: 3: Hoare triple {31126#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {31127#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)))} is VALID [2019-01-07 14:21:22,293 INFO L273 TraceCheckUtils]: 4: Hoare triple {31127#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {31128#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-01-07 14:21:22,294 INFO L273 TraceCheckUtils]: 5: Hoare triple {31128#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {31129#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:21:22,295 INFO L273 TraceCheckUtils]: 6: Hoare triple {31129#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {31124#false} is VALID [2019-01-07 14:21:22,295 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 0 proven. 14 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 14:21:22,295 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:21:22,295 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:21:22,296 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-07 14:21:22,296 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-07 14:21:22,296 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:21:22,296 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 45 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 45 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:21:22,306 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:21:22,306 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:21:22,310 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:21:22,318 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:21:22,319 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:21:22,343 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:21:22,354 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:22,355 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:21:22,373 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:22,374 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:22,375 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:21:22,396 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:22,397 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:22,399 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:22,399 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:21:22,409 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:21:22,436 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:21:22,456 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:21:22,475 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:21:22,502 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:21:22,502 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-07 14:21:22,508 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:21:22,508 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_265|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_265| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:21:22,509 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:21:22,640 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:22,642 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:22,644 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:22,647 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:22,649 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:22,651 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:22,654 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:22,654 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 14:21:22,661 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:21:22,700 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:21:22,700 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 1 variables, input treesize:40, output treesize:30 [2019-01-07 14:21:22,712 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:21:22,712 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_266|]. (let ((.cse0 (select |v_#memory_int_266| ULTIMATE.start_main_p4))) (and (= 0 (select |v_#memory_int_266| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_266| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= 0 .cse0) (= 0 (select |v_#memory_int_266| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_266| ULTIMATE.start_main_p3) 0))) [2019-01-07 14:21:22,712 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:21:22,835 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:22,836 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:22,837 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:22,839 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:22,840 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:22,841 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:22,842 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:22,844 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:22,845 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:22,846 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 67 [2019-01-07 14:21:22,853 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:21:22,892 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:21:22,892 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:42, output treesize:32 [2019-01-07 14:21:24,906 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:21:24,906 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_267|, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_267| ULTIMATE.start_main_p3))) (and (= 0 (+ (select |v_#memory_int_267| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (select |v_#memory_int_267| ULTIMATE.start_main_p1) 0) (= |#memory_int| (store |v_#memory_int_267| ULTIMATE.start_main_p3 (+ .cse0 1))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 (select |v_#memory_int_267| ULTIMATE.start_main_p2)))) [2019-01-07 14:21:24,906 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:21:24,988 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:24,989 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:24,990 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:24,991 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:24,993 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:24,994 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:24,995 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:24,996 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:24,997 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:24,998 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:24,999 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:24,999 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 14:21:25,000 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 73 [2019-01-07 14:21:25,007 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:21:25,048 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:21:25,048 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:42, output treesize:32 [2019-01-07 14:21:25,060 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:21:25,061 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_268|, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_268| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |v_#memory_int_268| ULTIMATE.start_main_p3)) (= (store |v_#memory_int_268| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= 0 (+ (select |v_#memory_int_268| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 .cse0) (= (select |v_#memory_int_268| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:21:25,061 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:21:25,140 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:25,141 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:25,143 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:25,144 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:25,146 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:25,147 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:25,148 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:25,149 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:25,151 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:25,152 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:25,153 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:25,154 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:25,155 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 12 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 77 [2019-01-07 14:21:25,162 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:21:25,206 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:21:25,207 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:30 [2019-01-07 14:21:25,222 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:21:25,222 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_269|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_269| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ .cse0 1)) (= (select |v_#memory_int_269| ULTIMATE.start_main_p3) 1) (= 1 (select |v_#memory_int_269| ULTIMATE.start_main_p1)) (= (select |v_#memory_int_269| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= |#memory_int| (store |v_#memory_int_269| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:21:25,223 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:21:25,299 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:25,301 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:25,302 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:25,303 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:25,304 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:25,306 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:25,307 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:25,308 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:25,309 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:25,310 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:25,311 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:25,313 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:25,313 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 12 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 79 [2019-01-07 14:21:25,320 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:21:25,364 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:21:25,364 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-07 14:21:25,370 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:21:25,371 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_270|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_270| ULTIMATE.start_main_p2))) (and (= (select |v_#memory_int_270| ULTIMATE.start_main_p3) 1) (= |#memory_int| (store |v_#memory_int_270| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |v_#memory_int_270| ULTIMATE.start_main_p1)) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 (+ (select |v_#memory_int_270| ULTIMATE.start_main_p4) 2)))) [2019-01-07 14:21:25,371 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0)) [2019-01-07 14:21:25,412 INFO L273 TraceCheckUtils]: 0: Hoare triple {31123#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {31133#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:21:25,413 INFO L273 TraceCheckUtils]: 1: Hoare triple {31133#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {31137#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:21:25,426 INFO L273 TraceCheckUtils]: 2: Hoare triple {31137#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {31141#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:21:25,427 INFO L273 TraceCheckUtils]: 3: Hoare triple {31141#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {31145#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:21:25,428 INFO L273 TraceCheckUtils]: 4: Hoare triple {31145#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {31149#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:21:25,431 INFO L273 TraceCheckUtils]: 5: Hoare triple {31149#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {31153#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))))} is VALID [2019-01-07 14:21:25,431 INFO L273 TraceCheckUtils]: 6: Hoare triple {31153#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 2) 0))))} assume !(#memory_int[main_p1] >= 0); {31124#false} is VALID [2019-01-07 14:21:25,432 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 0 proven. 15 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:21:25,432 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:21:25,639 INFO L273 TraceCheckUtils]: 6: Hoare triple {31157#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {31124#false} is VALID [2019-01-07 14:21:25,640 INFO L273 TraceCheckUtils]: 5: Hoare triple {31161#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {31157#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:21:25,641 INFO L273 TraceCheckUtils]: 4: Hoare triple {31165#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {31161#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:21:25,643 INFO L273 TraceCheckUtils]: 3: Hoare triple {31169#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {31165#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:21:25,646 INFO L273 TraceCheckUtils]: 2: Hoare triple {31173#(<= 0 (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {31169#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:21:25,649 INFO L273 TraceCheckUtils]: 1: Hoare triple {31177#(<= 0 (select (store (store (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {31173#(<= 0 (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:21:25,652 INFO L273 TraceCheckUtils]: 0: Hoare triple {31123#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {31177#(<= 0 (select (store (store (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-01-07 14:21:25,652 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 6 proven. 9 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:21:25,672 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:21:25,672 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 6, 6] total 17 [2019-01-07 14:21:25,672 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:21:25,672 INFO L78 Accepts]: Start accepts. Automaton has 13 states. Word has length 7 [2019-01-07 14:21:25,672 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:21:25,672 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 13 states. [2019-01-07 14:21:25,694 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:21:25,694 INFO L459 AbstractCegarLoop]: Interpolant automaton has 13 states [2019-01-07 14:21:25,695 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 13 interpolants. [2019-01-07 14:21:25,695 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=122, Invalid=220, Unknown=0, NotChecked=0, Total=342 [2019-01-07 14:21:25,695 INFO L87 Difference]: Start difference. First operand 367 states and 1654 transitions. Second operand 13 states. [2019-01-07 14:21:36,739 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:21:36,739 INFO L93 Difference]: Finished difference Result 375 states and 1668 transitions. [2019-01-07 14:21:36,739 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2019-01-07 14:21:36,739 INFO L78 Accepts]: Start accepts. Automaton has 13 states. Word has length 7 [2019-01-07 14:21:36,740 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:21:36,740 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2019-01-07 14:21:36,740 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 46 transitions. [2019-01-07 14:21:36,740 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2019-01-07 14:21:36,740 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 46 transitions. [2019-01-07 14:21:36,740 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 46 transitions. [2019-01-07 14:21:36,820 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 46 edges. 46 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:21:36,830 INFO L225 Difference]: With dead ends: 375 [2019-01-07 14:21:36,831 INFO L226 Difference]: Without dead ends: 374 [2019-01-07 14:21:36,831 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 21 GetRequests, 0 SyntacticMatches, 1 SemanticMatches, 20 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 136 ImplicationChecksByTransitivity, 0.8s TimeCoverageRelationStatistics Valid=157, Invalid=305, Unknown=0, NotChecked=0, Total=462 [2019-01-07 14:21:36,831 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 374 states. [2019-01-07 14:21:43,714 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 374 to 147. [2019-01-07 14:21:43,715 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:21:43,715 INFO L82 GeneralOperation]: Start isEquivalent. First operand 374 states. Second operand 147 states. [2019-01-07 14:21:43,715 INFO L74 IsIncluded]: Start isIncluded. First operand 374 states. Second operand 147 states. [2019-01-07 14:21:43,715 INFO L87 Difference]: Start difference. First operand 374 states. Second operand 147 states. [2019-01-07 14:21:43,727 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:21:43,727 INFO L93 Difference]: Finished difference Result 374 states and 1638 transitions. [2019-01-07 14:21:43,727 INFO L276 IsEmpty]: Start isEmpty. Operand 374 states and 1638 transitions. [2019-01-07 14:21:43,728 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:21:43,728 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:21:43,728 INFO L74 IsIncluded]: Start isIncluded. First operand 147 states. Second operand 374 states. [2019-01-07 14:21:43,728 INFO L87 Difference]: Start difference. First operand 147 states. Second operand 374 states. [2019-01-07 14:21:43,737 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:21:43,737 INFO L93 Difference]: Finished difference Result 374 states and 1638 transitions. [2019-01-07 14:21:43,737 INFO L276 IsEmpty]: Start isEmpty. Operand 374 states and 1638 transitions. [2019-01-07 14:21:43,738 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:21:43,738 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:21:43,738 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:21:43,738 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:21:43,738 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 147 states. [2019-01-07 14:21:43,741 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 147 states to 147 states and 607 transitions. [2019-01-07 14:21:43,741 INFO L78 Accepts]: Start accepts. Automaton has 147 states and 607 transitions. Word has length 7 [2019-01-07 14:21:43,741 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:21:43,741 INFO L480 AbstractCegarLoop]: Abstraction has 147 states and 607 transitions. [2019-01-07 14:21:43,741 INFO L481 AbstractCegarLoop]: Interpolant automaton has 13 states. [2019-01-07 14:21:43,741 INFO L276 IsEmpty]: Start isEmpty. Operand 147 states and 607 transitions. [2019-01-07 14:21:43,741 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-07 14:21:43,741 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:21:43,741 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-07 14:21:43,742 INFO L423 AbstractCegarLoop]: === Iteration 48 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:21:43,742 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:21:43,742 INFO L82 PathProgramCache]: Analyzing trace with hash 1924438182, now seen corresponding path program 1 times [2019-01-07 14:21:43,742 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:21:43,742 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:21:43,743 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:21:43,743 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:21:43,743 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:21:43,745 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:21:43,999 INFO L273 TraceCheckUtils]: 0: Hoare triple {32951#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {32953#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 14:21:44,000 INFO L273 TraceCheckUtils]: 1: Hoare triple {32953#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {32953#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 14:21:44,001 INFO L273 TraceCheckUtils]: 2: Hoare triple {32953#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {32954#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:21:44,002 INFO L273 TraceCheckUtils]: 3: Hoare triple {32954#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {32954#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:21:44,003 INFO L273 TraceCheckUtils]: 4: Hoare triple {32954#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {32954#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:21:44,003 INFO L273 TraceCheckUtils]: 5: Hoare triple {32954#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {32954#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:21:44,004 INFO L273 TraceCheckUtils]: 6: Hoare triple {32954#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {32952#false} is VALID [2019-01-07 14:21:44,004 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 14:21:44,004 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:21:44,005 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:21:44,005 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-01-07 14:21:44,005 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [20], [22], [24], [25] [2019-01-07 14:21:44,006 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:21:44,006 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:21:44,014 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:21:44,014 INFO L272 AbstractInterpreter]: Visited 7 different actions 7 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 3. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-01-07 14:21:44,015 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:21:44,015 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:21:44,015 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:21:44,015 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 46 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 46 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:21:44,025 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:21:44,025 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:21:44,029 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:21:44,037 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:21:44,038 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:21:44,061 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:21:44,069 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:44,070 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:21:44,084 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:44,085 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:44,086 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:21:44,102 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:44,104 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:44,105 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:44,106 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:21:44,110 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:21:44,130 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:21:44,142 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:21:44,152 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:21:44,171 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:21:44,171 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 14:21:44,189 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:21:44,189 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_276|, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_276| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:21:44,189 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:21:44,270 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:44,272 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:44,273 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:44,274 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:44,275 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:44,276 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:44,278 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:44,278 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 14:21:44,283 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:21:44,314 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:21:44,314 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 14:21:46,320 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:21:46,320 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_277|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_277| ULTIMATE.start_main_p1))) (and (= 0 .cse0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_277| ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_277| ULTIMATE.start_main_p3)) (= (store |v_#memory_int_277| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= 0 (select |v_#memory_int_277| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:21:46,320 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:21:46,380 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:46,381 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:46,383 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:46,384 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:46,385 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:46,387 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:46,388 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:46,389 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:46,390 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:46,391 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 65 [2019-01-07 14:21:46,396 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:21:46,433 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:21:46,433 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-07 14:21:46,457 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:21:46,458 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_278|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_278| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_278| ULTIMATE.start_main_p4)) (= |#memory_int| (store |v_#memory_int_278| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= (select |v_#memory_int_278| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_278| ULTIMATE.start_main_p1) 1) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:21:46,458 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:21:46,571 INFO L273 TraceCheckUtils]: 0: Hoare triple {32951#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {32958#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:21:46,572 INFO L273 TraceCheckUtils]: 1: Hoare triple {32958#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {32962#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:21:46,575 INFO L273 TraceCheckUtils]: 2: Hoare triple {32962#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {32966#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:21:46,576 INFO L273 TraceCheckUtils]: 3: Hoare triple {32966#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p1] >= 0; {32966#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:21:46,576 INFO L273 TraceCheckUtils]: 4: Hoare triple {32966#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p2] <= 0; {32966#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:21:46,577 INFO L273 TraceCheckUtils]: 5: Hoare triple {32966#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p3] >= 0; {32966#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:21:46,577 INFO L273 TraceCheckUtils]: 6: Hoare triple {32966#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume !(#memory_int[main_p4] <= 0); {32952#false} is VALID [2019-01-07 14:21:46,578 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:21:46,578 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:21:46,629 INFO L273 TraceCheckUtils]: 6: Hoare triple {32979#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {32952#false} is VALID [2019-01-07 14:21:46,630 INFO L273 TraceCheckUtils]: 5: Hoare triple {32979#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {32979#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:21:46,630 INFO L273 TraceCheckUtils]: 4: Hoare triple {32979#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {32979#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:21:46,631 INFO L273 TraceCheckUtils]: 3: Hoare triple {32979#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {32979#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:21:46,632 INFO L273 TraceCheckUtils]: 2: Hoare triple {32992#(<= (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {32979#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:21:46,633 INFO L273 TraceCheckUtils]: 1: Hoare triple {32996#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {32992#(<= (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:21:46,635 INFO L273 TraceCheckUtils]: 0: Hoare triple {32951#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {32996#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:21:46,636 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:21:46,656 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:21:46,657 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 3, 3] total 8 [2019-01-07 14:21:46,657 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:21:46,657 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 7 [2019-01-07 14:21:46,657 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:21:46,657 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states. [2019-01-07 14:21:46,678 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:21:46,678 INFO L459 AbstractCegarLoop]: Interpolant automaton has 7 states [2019-01-07 14:21:46,678 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 7 interpolants. [2019-01-07 14:21:46,679 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=36, Invalid=54, Unknown=0, NotChecked=0, Total=90 [2019-01-07 14:21:46,679 INFO L87 Difference]: Start difference. First operand 147 states and 607 transitions. Second operand 7 states. [2019-01-07 14:21:52,875 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:21:52,875 INFO L93 Difference]: Finished difference Result 157 states and 628 transitions. [2019-01-07 14:21:52,875 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-01-07 14:21:52,875 INFO L78 Accepts]: Start accepts. Automaton has 7 states. Word has length 7 [2019-01-07 14:21:52,875 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:21:52,876 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2019-01-07 14:21:52,876 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 34 transitions. [2019-01-07 14:21:52,876 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 7 states. [2019-01-07 14:21:52,876 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 34 transitions. [2019-01-07 14:21:52,876 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 34 transitions. [2019-01-07 14:21:52,922 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 34 edges. 34 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:21:52,925 INFO L225 Difference]: With dead ends: 157 [2019-01-07 14:21:52,925 INFO L226 Difference]: Without dead ends: 150 [2019-01-07 14:21:52,926 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 19 GetRequests, 7 SyntacticMatches, 2 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 25 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=52, Invalid=80, Unknown=0, NotChecked=0, Total=132 [2019-01-07 14:21:52,926 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 150 states. [2019-01-07 14:21:59,501 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 150 to 149. [2019-01-07 14:21:59,501 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:21:59,501 INFO L82 GeneralOperation]: Start isEquivalent. First operand 150 states. Second operand 149 states. [2019-01-07 14:21:59,501 INFO L74 IsIncluded]: Start isIncluded. First operand 150 states. Second operand 149 states. [2019-01-07 14:21:59,501 INFO L87 Difference]: Start difference. First operand 150 states. Second operand 149 states. [2019-01-07 14:21:59,505 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:21:59,505 INFO L93 Difference]: Finished difference Result 150 states and 615 transitions. [2019-01-07 14:21:59,505 INFO L276 IsEmpty]: Start isEmpty. Operand 150 states and 615 transitions. [2019-01-07 14:21:59,505 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:21:59,505 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:21:59,506 INFO L74 IsIncluded]: Start isIncluded. First operand 149 states. Second operand 150 states. [2019-01-07 14:21:59,506 INFO L87 Difference]: Start difference. First operand 149 states. Second operand 150 states. [2019-01-07 14:21:59,509 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:21:59,509 INFO L93 Difference]: Finished difference Result 150 states and 615 transitions. [2019-01-07 14:21:59,509 INFO L276 IsEmpty]: Start isEmpty. Operand 150 states and 615 transitions. [2019-01-07 14:21:59,509 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:21:59,509 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:21:59,510 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:21:59,510 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:21:59,510 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 149 states. [2019-01-07 14:21:59,513 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 149 states to 149 states and 611 transitions. [2019-01-07 14:21:59,513 INFO L78 Accepts]: Start accepts. Automaton has 149 states and 611 transitions. Word has length 7 [2019-01-07 14:21:59,513 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:21:59,513 INFO L480 AbstractCegarLoop]: Abstraction has 149 states and 611 transitions. [2019-01-07 14:21:59,513 INFO L481 AbstractCegarLoop]: Interpolant automaton has 7 states. [2019-01-07 14:21:59,513 INFO L276 IsEmpty]: Start isEmpty. Operand 149 states and 611 transitions. [2019-01-07 14:21:59,514 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-07 14:21:59,514 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:21:59,514 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-07 14:21:59,514 INFO L423 AbstractCegarLoop]: === Iteration 49 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:21:59,514 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:21:59,514 INFO L82 PathProgramCache]: Analyzing trace with hash 1928011116, now seen corresponding path program 1 times [2019-01-07 14:21:59,514 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:21:59,515 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:21:59,515 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:21:59,515 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:21:59,515 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:21:59,518 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:21:59,770 INFO L273 TraceCheckUtils]: 0: Hoare triple {33888#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {33890#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:21:59,771 INFO L273 TraceCheckUtils]: 1: Hoare triple {33890#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {33890#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:21:59,773 INFO L273 TraceCheckUtils]: 2: Hoare triple {33890#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {33891#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:21:59,774 INFO L273 TraceCheckUtils]: 3: Hoare triple {33891#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {33892#(and (<= 1 (select |#memory_int| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:21:59,774 INFO L273 TraceCheckUtils]: 4: Hoare triple {33892#(and (<= 1 (select |#memory_int| ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} assume #memory_int[main_p1] >= 0; {33893#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:21:59,775 INFO L273 TraceCheckUtils]: 5: Hoare triple {33893#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {33893#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:21:59,775 INFO L273 TraceCheckUtils]: 6: Hoare triple {33893#(<= 1 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {33889#false} is VALID [2019-01-07 14:21:59,776 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 14:21:59,776 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:21:59,776 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:21:59,776 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 8 with the following transitions: [2019-01-07 14:21:59,776 INFO L207 CegarAbsIntRunner]: [0], [6], [14], [16], [20], [22], [23] [2019-01-07 14:21:59,777 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:21:59,778 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:21:59,786 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:21:59,786 INFO L272 AbstractInterpreter]: Visited 7 different actions 7 times. Never merged. Never widened. Performed 58 root evaluator evaluations with a maximum evaluation depth of 3. Performed 58 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-07 14:21:59,786 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:21:59,786 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:21:59,786 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:21:59,787 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 47 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 47 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:21:59,795 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:21:59,795 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:21:59,802 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:21:59,804 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:21:59,805 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:21:59,836 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:21:59,844 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:59,845 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:21:59,859 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:59,860 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:59,861 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:21:59,878 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:59,880 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:59,881 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:21:59,881 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:21:59,887 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:21:59,907 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:21:59,920 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:21:59,931 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:21:59,948 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:21:59,948 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 14:21:59,957 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:21:59,957 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_281|, ULTIMATE.start_main_p2]. (and (= (store (store (store (store |v_#memory_int_281| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:21:59,957 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:22:00,018 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:00,020 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:00,021 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:00,022 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:00,023 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:00,024 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:00,026 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:00,026 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 14:22:00,032 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:22:00,063 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:22:00,063 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 14:22:00,070 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:22:00,071 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_282|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_282| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_282| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= 0 (select |v_#memory_int_282| ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_282| ULTIMATE.start_main_p4)) (= .cse0 0) (= (select |v_#memory_int_282| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:22:00,071 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:22:00,130 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:00,131 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:00,133 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:00,134 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:00,135 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:00,137 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:00,138 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:00,139 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:00,139 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 14:22:00,140 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 59 [2019-01-07 14:22:00,145 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:22:00,177 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:22:00,178 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 14:22:00,185 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:22:00,185 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_283|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_283| ULTIMATE.start_main_p3))) (and (= 0 (select |v_#memory_int_283| ULTIMATE.start_main_p2)) (= |#memory_int| (store |v_#memory_int_283| ULTIMATE.start_main_p3 (+ .cse0 1))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_283| ULTIMATE.start_main_p4) 0) (= 1 (select |v_#memory_int_283| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 .cse0))) [2019-01-07 14:22:00,185 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:22:00,249 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:00,250 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:00,251 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:00,252 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:00,253 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:00,254 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:00,255 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:00,256 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:00,258 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:00,258 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 57 [2019-01-07 14:22:00,264 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:22:00,301 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:22:00,302 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-07 14:22:00,314 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:22:00,315 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_284|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_284| ULTIMATE.start_main_p4))) (and (= |#memory_int| (store |v_#memory_int_284| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_284| ULTIMATE.start_main_p2)) (= 1 (select |v_#memory_int_284| ULTIMATE.start_main_p3)) (= .cse0 0) (= 1 (select |v_#memory_int_284| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:22:00,315 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:22:00,410 INFO L273 TraceCheckUtils]: 0: Hoare triple {33888#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {33897#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:22:00,412 INFO L273 TraceCheckUtils]: 1: Hoare triple {33897#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {33901#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:22:00,413 INFO L273 TraceCheckUtils]: 2: Hoare triple {33901#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {33905#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:22:00,416 INFO L273 TraceCheckUtils]: 3: Hoare triple {33905#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {33909#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-07 14:22:00,417 INFO L273 TraceCheckUtils]: 4: Hoare triple {33909#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume #memory_int[main_p1] >= 0; {33909#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-07 14:22:00,418 INFO L273 TraceCheckUtils]: 5: Hoare triple {33909#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume #memory_int[main_p2] <= 0; {33909#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-07 14:22:00,419 INFO L273 TraceCheckUtils]: 6: Hoare triple {33909#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p3] >= 0); {33889#false} is VALID [2019-01-07 14:22:00,419 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:22:00,420 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:22:00,499 INFO L273 TraceCheckUtils]: 6: Hoare triple {33919#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {33889#false} is VALID [2019-01-07 14:22:00,500 INFO L273 TraceCheckUtils]: 5: Hoare triple {33919#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {33919#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:22:00,501 INFO L273 TraceCheckUtils]: 4: Hoare triple {33919#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {33919#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:22:00,502 INFO L273 TraceCheckUtils]: 3: Hoare triple {33929#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {33919#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:22:00,503 INFO L273 TraceCheckUtils]: 2: Hoare triple {33933#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {33929#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:22:00,504 INFO L273 TraceCheckUtils]: 1: Hoare triple {33937#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {33933#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:22:00,506 INFO L273 TraceCheckUtils]: 0: Hoare triple {33888#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {33937#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:22:00,507 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 5 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:22:00,528 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:22:00,528 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-07 14:22:00,528 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:22:00,528 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-01-07 14:22:00,528 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:22:00,528 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 14:22:00,548 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:22:00,548 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 14:22:00,549 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 14:22:00,549 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=69, Invalid=113, Unknown=0, NotChecked=0, Total=182 [2019-01-07 14:22:00,549 INFO L87 Difference]: Start difference. First operand 149 states and 611 transitions. Second operand 10 states. [2019-01-07 14:22:10,444 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:22:10,445 INFO L93 Difference]: Finished difference Result 206 states and 810 transitions. [2019-01-07 14:22:10,445 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-07 14:22:10,445 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-01-07 14:22:10,445 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:22:10,445 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 14:22:10,445 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 48 transitions. [2019-01-07 14:22:10,445 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 14:22:10,446 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 48 transitions. [2019-01-07 14:22:10,446 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 48 transitions. [2019-01-07 14:22:10,525 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 48 edges. 48 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:22:10,530 INFO L225 Difference]: With dead ends: 206 [2019-01-07 14:22:10,530 INFO L226 Difference]: Without dead ends: 199 [2019-01-07 14:22:10,531 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 20 GetRequests, 4 SyntacticMatches, 1 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 46 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=97, Invalid=175, Unknown=0, NotChecked=0, Total=272 [2019-01-07 14:22:10,531 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 199 states. [2019-01-07 14:22:18,106 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 199 to 158. [2019-01-07 14:22:18,106 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:22:18,106 INFO L82 GeneralOperation]: Start isEquivalent. First operand 199 states. Second operand 158 states. [2019-01-07 14:22:18,106 INFO L74 IsIncluded]: Start isIncluded. First operand 199 states. Second operand 158 states. [2019-01-07 14:22:18,106 INFO L87 Difference]: Start difference. First operand 199 states. Second operand 158 states. [2019-01-07 14:22:18,111 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:22:18,111 INFO L93 Difference]: Finished difference Result 199 states and 789 transitions. [2019-01-07 14:22:18,111 INFO L276 IsEmpty]: Start isEmpty. Operand 199 states and 789 transitions. [2019-01-07 14:22:18,112 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:22:18,112 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:22:18,112 INFO L74 IsIncluded]: Start isIncluded. First operand 158 states. Second operand 199 states. [2019-01-07 14:22:18,112 INFO L87 Difference]: Start difference. First operand 158 states. Second operand 199 states. [2019-01-07 14:22:18,117 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:22:18,117 INFO L93 Difference]: Finished difference Result 199 states and 789 transitions. [2019-01-07 14:22:18,117 INFO L276 IsEmpty]: Start isEmpty. Operand 199 states and 789 transitions. [2019-01-07 14:22:18,117 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:22:18,117 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:22:18,117 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:22:18,117 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:22:18,117 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 158 states. [2019-01-07 14:22:18,121 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 158 states to 158 states and 646 transitions. [2019-01-07 14:22:18,121 INFO L78 Accepts]: Start accepts. Automaton has 158 states and 646 transitions. Word has length 7 [2019-01-07 14:22:18,122 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:22:18,122 INFO L480 AbstractCegarLoop]: Abstraction has 158 states and 646 transitions. [2019-01-07 14:22:18,122 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 14:22:18,122 INFO L276 IsEmpty]: Start isEmpty. Operand 158 states and 646 transitions. [2019-01-07 14:22:18,122 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 8 [2019-01-07 14:22:18,122 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:22:18,123 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1] [2019-01-07 14:22:18,123 INFO L423 AbstractCegarLoop]: === Iteration 50 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:22:18,123 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:22:18,123 INFO L82 PathProgramCache]: Analyzing trace with hash 2042527720, now seen corresponding path program 2 times [2019-01-07 14:22:18,123 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:22:18,124 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:22:18,124 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:22:18,124 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:22:18,124 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:22:18,127 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:22:18,617 INFO L273 TraceCheckUtils]: 0: Hoare triple {35035#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {35037#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:22:18,618 INFO L273 TraceCheckUtils]: 1: Hoare triple {35037#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {35037#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:22:18,619 INFO L273 TraceCheckUtils]: 2: Hoare triple {35037#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {35038#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:22:18,620 INFO L273 TraceCheckUtils]: 3: Hoare triple {35038#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {35039#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= 0 (select |#memory_int| ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:22:18,621 INFO L273 TraceCheckUtils]: 4: Hoare triple {35039#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= 0 (select |#memory_int| ULTIMATE.start_main_p3)))} assume #memory_int[main_p1] >= 0; {35039#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= 0 (select |#memory_int| ULTIMATE.start_main_p3)))} is VALID [2019-01-07 14:22:18,621 INFO L273 TraceCheckUtils]: 5: Hoare triple {35039#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= 0 (select |#memory_int| ULTIMATE.start_main_p3)))} assume #memory_int[main_p2] <= 0; {35040#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:22:18,622 INFO L273 TraceCheckUtils]: 6: Hoare triple {35040#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {35036#false} is VALID [2019-01-07 14:22:18,622 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 5 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 14:22:18,622 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:22:18,623 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:22:18,623 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-07 14:22:18,623 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-07 14:22:18,623 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:22:18,623 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 48 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 48 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:22:18,632 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-07 14:22:18,632 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-07 14:22:18,639 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-07 14:22:18,640 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-07 14:22:18,657 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:22:18,658 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:22:18,682 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:22:18,692 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-01-07 14:22:18,704 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:18,705 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 1 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 26 [2019-01-07 14:22:18,728 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:18,731 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:18,731 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 33 [2019-01-07 14:22:18,738 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:22:18,756 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:22:18,775 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:22:18,788 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:22:18,806 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:22:18,807 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:22, output treesize:27 [2019-01-07 14:22:18,812 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:22:18,813 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_288|, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_288| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:22:18,813 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:22:18,905 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:18,910 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:18,912 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:18,917 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:18,917 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 4 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 34 [2019-01-07 14:22:18,922 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:22:18,955 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:22:18,955 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:22 [2019-01-07 14:22:20,991 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:22:20,992 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_289|, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_289| ULTIMATE.start_main_p2))) (and (= (store |v_#memory_int_289| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= (select |v_#memory_int_289| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |v_#memory_int_289| ULTIMATE.start_main_p3) 0))) [2019-01-07 14:22:20,992 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:22:21,049 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:21,050 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:21,051 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:21,052 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:21,053 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:21,054 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:21,055 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 28 treesize of output 50 [2019-01-07 14:22:21,060 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:22:21,083 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:22:21,084 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:34, output treesize:24 [2019-01-07 14:22:21,089 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:22:21,090 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_290|, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_290| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= (store |v_#memory_int_290| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= 0 (+ (select |v_#memory_int_290| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 (select |v_#memory_int_290| ULTIMATE.start_main_p4)))) [2019-01-07 14:22:21,090 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:22:21,146 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:21,147 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:21,149 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:21,150 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:21,151 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:21,152 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:21,153 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:21,154 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 14:22:21,155 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 28 treesize of output 55 [2019-01-07 14:22:21,159 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:22:21,185 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:22:21,185 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:34, output treesize:24 [2019-01-07 14:22:21,202 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:22:21,202 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_291|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_291| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_291| ULTIMATE.start_main_p3) 1) (= 0 .cse0) (= (+ (select |v_#memory_int_291| ULTIMATE.start_main_p2) 1) 0) (= (store |v_#memory_int_291| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-07 14:22:21,202 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:22:21,293 INFO L273 TraceCheckUtils]: 0: Hoare triple {35035#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {35044#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:22:21,295 INFO L273 TraceCheckUtils]: 1: Hoare triple {35044#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {35048#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:22:21,297 INFO L273 TraceCheckUtils]: 2: Hoare triple {35048#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {35052#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:22:21,298 INFO L273 TraceCheckUtils]: 3: Hoare triple {35052#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {35056#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-07 14:22:21,299 INFO L273 TraceCheckUtils]: 4: Hoare triple {35056#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p1] >= 0; {35056#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-07 14:22:21,300 INFO L273 TraceCheckUtils]: 5: Hoare triple {35056#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p2] <= 0; {35056#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-07 14:22:21,301 INFO L273 TraceCheckUtils]: 6: Hoare triple {35056#(and (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume !(#memory_int[main_p3] >= 0); {35036#false} is VALID [2019-01-07 14:22:21,302 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:22:21,302 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:22:21,375 INFO L273 TraceCheckUtils]: 6: Hoare triple {35040#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume !(#memory_int[main_p3] >= 0); {35036#false} is VALID [2019-01-07 14:22:21,375 INFO L273 TraceCheckUtils]: 5: Hoare triple {35040#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p2] <= 0; {35040#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:22:21,376 INFO L273 TraceCheckUtils]: 4: Hoare triple {35040#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} assume #memory_int[main_p1] >= 0; {35040#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:22:21,377 INFO L273 TraceCheckUtils]: 3: Hoare triple {35075#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {35040#(<= 0 (select |#memory_int| ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:22:21,398 INFO L273 TraceCheckUtils]: 2: Hoare triple {35079#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {35075#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:22:21,412 INFO L273 TraceCheckUtils]: 1: Hoare triple {35083#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {35079#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:22:21,427 INFO L273 TraceCheckUtils]: 0: Hoare triple {35035#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {35083#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3))} is VALID [2019-01-07 14:22:21,428 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 3 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:22:21,455 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:22:21,455 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 11 [2019-01-07 14:22:21,455 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:22:21,455 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-01-07 14:22:21,456 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:22:21,456 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 14:22:21,481 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 14 edges. 14 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:22:21,481 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 14:22:21,482 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 14:22:21,482 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=61, Invalid=95, Unknown=0, NotChecked=0, Total=156 [2019-01-07 14:22:21,482 INFO L87 Difference]: Start difference. First operand 158 states and 646 transitions. Second operand 10 states. [2019-01-07 14:22:30,276 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:22:30,276 INFO L93 Difference]: Finished difference Result 161 states and 653 transitions. [2019-01-07 14:22:30,276 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-07 14:22:30,276 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 7 [2019-01-07 14:22:30,276 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:22:30,277 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 14:22:30,277 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 33 transitions. [2019-01-07 14:22:30,277 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 14:22:30,277 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 33 transitions. [2019-01-07 14:22:30,277 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 33 transitions. [2019-01-07 14:22:30,329 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 33 edges. 33 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:22:30,332 INFO L225 Difference]: With dead ends: 161 [2019-01-07 14:22:30,333 INFO L226 Difference]: Without dead ends: 156 [2019-01-07 14:22:30,333 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 20 GetRequests, 5 SyntacticMatches, 1 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 43 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=89, Invalid=151, Unknown=0, NotChecked=0, Total=240 [2019-01-07 14:22:30,333 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 156 states. [2019-01-07 14:22:31,956 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 156 to 33. [2019-01-07 14:22:31,956 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:22:31,956 INFO L82 GeneralOperation]: Start isEquivalent. First operand 156 states. Second operand 33 states. [2019-01-07 14:22:31,956 INFO L74 IsIncluded]: Start isIncluded. First operand 156 states. Second operand 33 states. [2019-01-07 14:22:31,957 INFO L87 Difference]: Start difference. First operand 156 states. Second operand 33 states. [2019-01-07 14:22:31,960 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:22:31,960 INFO L93 Difference]: Finished difference Result 156 states and 632 transitions. [2019-01-07 14:22:31,960 INFO L276 IsEmpty]: Start isEmpty. Operand 156 states and 632 transitions. [2019-01-07 14:22:31,961 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:22:31,961 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:22:31,961 INFO L74 IsIncluded]: Start isIncluded. First operand 33 states. Second operand 156 states. [2019-01-07 14:22:31,961 INFO L87 Difference]: Start difference. First operand 33 states. Second operand 156 states. [2019-01-07 14:22:31,965 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:22:31,965 INFO L93 Difference]: Finished difference Result 156 states and 632 transitions. [2019-01-07 14:22:31,965 INFO L276 IsEmpty]: Start isEmpty. Operand 156 states and 632 transitions. [2019-01-07 14:22:31,965 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:22:31,965 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:22:31,965 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:22:31,965 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:22:31,965 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 33 states. [2019-01-07 14:22:31,966 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 33 states to 33 states and 119 transitions. [2019-01-07 14:22:31,966 INFO L78 Accepts]: Start accepts. Automaton has 33 states and 119 transitions. Word has length 7 [2019-01-07 14:22:31,966 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:22:31,966 INFO L480 AbstractCegarLoop]: Abstraction has 33 states and 119 transitions. [2019-01-07 14:22:31,966 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 14:22:31,966 INFO L276 IsEmpty]: Start isEmpty. Operand 33 states and 119 transitions. [2019-01-07 14:22:31,967 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 9 [2019-01-07 14:22:31,967 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:22:31,967 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1] [2019-01-07 14:22:31,967 INFO L423 AbstractCegarLoop]: === Iteration 51 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:22:31,967 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:22:31,967 INFO L82 PathProgramCache]: Analyzing trace with hash -305786232, now seen corresponding path program 1 times [2019-01-07 14:22:31,967 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:22:31,968 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:22:31,968 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-07 14:22:31,968 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:22:31,968 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:22:31,971 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:22:32,230 INFO L273 TraceCheckUtils]: 0: Hoare triple {35775#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {35777#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 14:22:32,231 INFO L273 TraceCheckUtils]: 1: Hoare triple {35777#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {35778#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:22:32,232 INFO L273 TraceCheckUtils]: 2: Hoare triple {35778#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {35779#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-01-07 14:22:32,233 INFO L273 TraceCheckUtils]: 3: Hoare triple {35779#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 1) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {35780#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-07 14:22:32,233 INFO L273 TraceCheckUtils]: 4: Hoare triple {35780#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p1] >= 0; {35780#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-07 14:22:32,233 INFO L273 TraceCheckUtils]: 5: Hoare triple {35780#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p2] <= 0; {35780#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-07 14:22:32,234 INFO L273 TraceCheckUtils]: 6: Hoare triple {35780#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p3] >= 0; {35780#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-07 14:22:32,234 INFO L273 TraceCheckUtils]: 7: Hoare triple {35780#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume !(#memory_int[main_p4] <= 0); {35776#false} is VALID [2019-01-07 14:22:32,234 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:22:32,235 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:22:32,235 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:22:32,235 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 9 with the following transitions: [2019-01-07 14:22:32,235 INFO L207 CegarAbsIntRunner]: [0], [6], [14], [16], [20], [22], [24], [25] [2019-01-07 14:22:32,236 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:22:32,236 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:22:32,251 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:22:32,251 INFO L272 AbstractInterpreter]: Visited 8 different actions 8 times. Never merged. Never widened. Performed 60 root evaluator evaluations with a maximum evaluation depth of 3. Performed 60 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-07 14:22:32,251 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:22:32,252 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:22:32,252 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:22:32,252 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 49 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 49 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:22:32,261 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:22:32,261 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:22:32,265 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:22:32,269 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:22:32,270 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:22:32,291 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:22:32,299 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:32,300 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:22:32,313 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:32,314 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:32,315 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:22:32,333 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:32,334 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:32,336 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:32,336 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:22:32,342 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:22:32,363 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:22:32,374 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:22:32,384 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:22:32,401 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:22:32,402 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 14:22:32,406 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:22:32,407 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_295|, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_295| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:22:32,407 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:22:32,467 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:32,469 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:32,470 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:32,471 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:32,473 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:32,474 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:32,475 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:32,476 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 14:22:32,481 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:22:32,512 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:22:32,512 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 14:22:32,571 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:22:32,571 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_296|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_296| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_296| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_296| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_296| ULTIMATE.start_main_p2) 0) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= |#memory_int| (store |v_#memory_int_296| ULTIMATE.start_main_p1 (+ .cse0 1))))) [2019-01-07 14:22:32,571 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:22:32,633 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:32,635 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:32,636 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:32,637 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:32,638 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:32,678 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:32,700 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:32,721 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:32,742 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:32,742 INFO L303 Elim1Store]: Index analysis took 111 ms [2019-01-07 14:22:32,743 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 57 [2019-01-07 14:22:32,747 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:22:32,781 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:22:32,781 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 14:22:32,789 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:22:32,789 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_297|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_297| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_297| ULTIMATE.start_main_p1) 1) (= 0 (select |v_#memory_int_297| ULTIMATE.start_main_p3)) (= (select |v_#memory_int_297| ULTIMATE.start_main_p2) 0) (= (store |v_#memory_int_297| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= .cse0 0))) [2019-01-07 14:22:32,790 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:22:32,859 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:32,860 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:32,861 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:32,862 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:32,864 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:32,865 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:32,866 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:32,867 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:32,868 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:32,869 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:32,869 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 14:22:32,870 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 77 [2019-01-07 14:22:32,875 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:22:32,917 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:22:32,917 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-07 14:22:32,938 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:22:32,939 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_298|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_298| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |v_#memory_int_298| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |v_#memory_int_298| ULTIMATE.start_main_p2)) (= (store |v_#memory_int_298| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 1 (select |v_#memory_int_298| ULTIMATE.start_main_p1)))) [2019-01-07 14:22:32,939 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:22:33,045 INFO L273 TraceCheckUtils]: 0: Hoare triple {35775#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {35784#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:22:33,064 INFO L273 TraceCheckUtils]: 1: Hoare triple {35784#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {35788#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:22:33,078 INFO L273 TraceCheckUtils]: 2: Hoare triple {35788#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {35792#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-07 14:22:33,083 INFO L273 TraceCheckUtils]: 3: Hoare triple {35792#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {35796#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-07 14:22:33,084 INFO L273 TraceCheckUtils]: 4: Hoare triple {35796#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume #memory_int[main_p1] >= 0; {35796#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-07 14:22:33,084 INFO L273 TraceCheckUtils]: 5: Hoare triple {35796#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume #memory_int[main_p2] <= 0; {35796#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-07 14:22:33,085 INFO L273 TraceCheckUtils]: 6: Hoare triple {35796#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume #memory_int[main_p3] >= 0; {35796#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-07 14:22:33,085 INFO L273 TraceCheckUtils]: 7: Hoare triple {35796#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p4] <= 0); {35776#false} is VALID [2019-01-07 14:22:33,086 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:22:33,086 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:22:33,165 INFO L273 TraceCheckUtils]: 7: Hoare triple {35809#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {35776#false} is VALID [2019-01-07 14:22:33,166 INFO L273 TraceCheckUtils]: 6: Hoare triple {35809#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {35809#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:22:33,166 INFO L273 TraceCheckUtils]: 5: Hoare triple {35809#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {35809#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:22:33,167 INFO L273 TraceCheckUtils]: 4: Hoare triple {35809#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {35809#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:22:33,168 INFO L273 TraceCheckUtils]: 3: Hoare triple {35822#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {35809#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:22:33,169 INFO L273 TraceCheckUtils]: 2: Hoare triple {35826#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {35822#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:22:33,171 INFO L273 TraceCheckUtils]: 1: Hoare triple {35830#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {35826#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:22:33,173 INFO L273 TraceCheckUtils]: 0: Hoare triple {35775#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {35830#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:22:33,173 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 3 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:22:33,193 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:22:33,193 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-01-07 14:22:33,193 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:22:33,193 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 8 [2019-01-07 14:22:33,193 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:22:33,194 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 14:22:33,220 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 16 edges. 16 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:22:33,220 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 14:22:33,220 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 14:22:33,220 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=70, Invalid=112, Unknown=0, NotChecked=0, Total=182 [2019-01-07 14:22:33,220 INFO L87 Difference]: Start difference. First operand 33 states and 119 transitions. Second operand 10 states. [2019-01-07 14:22:36,925 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:22:36,925 INFO L93 Difference]: Finished difference Result 62 states and 209 transitions. [2019-01-07 14:22:36,925 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-01-07 14:22:36,926 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 8 [2019-01-07 14:22:36,926 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:22:36,926 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 14:22:36,927 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 45 transitions. [2019-01-07 14:22:36,927 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 14:22:36,927 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 45 transitions. [2019-01-07 14:22:36,927 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 45 transitions. [2019-01-07 14:22:36,987 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 45 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:22:36,988 INFO L225 Difference]: With dead ends: 62 [2019-01-07 14:22:36,988 INFO L226 Difference]: Without dead ends: 52 [2019-01-07 14:22:36,989 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 22 GetRequests, 7 SyntacticMatches, 1 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 60 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=88, Invalid=152, Unknown=0, NotChecked=0, Total=240 [2019-01-07 14:22:36,989 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 52 states. [2019-01-07 14:22:40,241 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 52 to 45. [2019-01-07 14:22:40,242 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:22:40,242 INFO L82 GeneralOperation]: Start isEquivalent. First operand 52 states. Second operand 45 states. [2019-01-07 14:22:40,242 INFO L74 IsIncluded]: Start isIncluded. First operand 52 states. Second operand 45 states. [2019-01-07 14:22:40,242 INFO L87 Difference]: Start difference. First operand 52 states. Second operand 45 states. [2019-01-07 14:22:40,243 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:22:40,243 INFO L93 Difference]: Finished difference Result 52 states and 195 transitions. [2019-01-07 14:22:40,243 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 195 transitions. [2019-01-07 14:22:40,244 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:22:40,244 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:22:40,244 INFO L74 IsIncluded]: Start isIncluded. First operand 45 states. Second operand 52 states. [2019-01-07 14:22:40,244 INFO L87 Difference]: Start difference. First operand 45 states. Second operand 52 states. [2019-01-07 14:22:40,246 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:22:40,246 INFO L93 Difference]: Finished difference Result 52 states and 195 transitions. [2019-01-07 14:22:40,246 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 195 transitions. [2019-01-07 14:22:40,246 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:22:40,246 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:22:40,246 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:22:40,246 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:22:40,247 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 45 states. [2019-01-07 14:22:40,247 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 45 states to 45 states and 167 transitions. [2019-01-07 14:22:40,248 INFO L78 Accepts]: Start accepts. Automaton has 45 states and 167 transitions. Word has length 8 [2019-01-07 14:22:40,248 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:22:40,248 INFO L480 AbstractCegarLoop]: Abstraction has 45 states and 167 transitions. [2019-01-07 14:22:40,248 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 14:22:40,248 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 167 transitions. [2019-01-07 14:22:40,248 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 9 [2019-01-07 14:22:40,248 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:22:40,249 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1] [2019-01-07 14:22:40,249 INFO L423 AbstractCegarLoop]: === Iteration 52 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:22:40,249 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:22:40,249 INFO L82 PathProgramCache]: Analyzing trace with hash -477561138, now seen corresponding path program 1 times [2019-01-07 14:22:40,249 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:22:40,250 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:22:40,250 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:22:40,250 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:22:40,250 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:22:40,253 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:22:40,934 WARN L181 SmtUtils]: Spent 336.00 ms on a formula simplification. DAG size of input: 38 DAG size of output: 21 [2019-01-07 14:22:41,045 INFO L273 TraceCheckUtils]: 0: Hoare triple {36135#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {36137#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 14:22:41,046 INFO L273 TraceCheckUtils]: 1: Hoare triple {36137#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36137#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 14:22:41,047 INFO L273 TraceCheckUtils]: 2: Hoare triple {36137#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {36137#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 14:22:41,048 INFO L273 TraceCheckUtils]: 3: Hoare triple {36137#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {36138#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:22:41,048 INFO L273 TraceCheckUtils]: 4: Hoare triple {36138#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {36138#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:22:41,049 INFO L273 TraceCheckUtils]: 5: Hoare triple {36138#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {36138#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:22:41,049 INFO L273 TraceCheckUtils]: 6: Hoare triple {36138#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {36138#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:22:41,050 INFO L273 TraceCheckUtils]: 7: Hoare triple {36138#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {36136#false} is VALID [2019-01-07 14:22:41,051 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2019-01-07 14:22:41,051 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:22:41,051 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:22:41,051 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 9 with the following transitions: [2019-01-07 14:22:41,051 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [14], [20], [22], [24], [25] [2019-01-07 14:22:41,052 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:22:41,052 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:22:41,079 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:22:41,079 INFO L272 AbstractInterpreter]: Visited 8 different actions 8 times. Never merged. Never widened. Performed 60 root evaluator evaluations with a maximum evaluation depth of 3. Performed 60 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-07 14:22:41,080 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:22:41,080 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:22:41,080 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:22:41,080 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 50 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 50 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:22:41,089 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:22:41,089 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:22:41,094 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:22:41,096 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:22:41,097 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:22:41,121 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:22:41,130 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:41,131 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:22:41,139 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:41,141 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:41,141 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:22:41,154 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:41,156 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:41,157 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:41,158 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:22:41,161 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:22:41,179 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:22:41,190 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:22:41,199 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:22:41,214 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:22:41,215 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-07 14:22:41,218 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:22:41,219 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_302|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_302| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:22:41,219 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:22:41,266 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:41,267 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:41,268 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:41,270 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:41,271 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:41,272 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:41,273 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:41,274 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 14:22:41,277 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:22:41,305 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:22:41,305 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-07 14:22:43,311 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:22:43,311 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_303|, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_303| ULTIMATE.start_main_p1))) (and (= 0 (select |v_#memory_int_303| ULTIMATE.start_main_p3)) (= (select |v_#memory_int_303| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_303| ULTIMATE.start_main_p1 (+ .cse0 1))) (= 0 .cse0) (= 0 (select |v_#memory_int_303| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-07 14:22:43,312 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:22:43,362 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:43,363 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:43,365 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:43,366 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:43,367 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:43,368 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:43,369 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:43,370 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:43,371 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:43,372 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 65 [2019-01-07 14:22:43,376 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:22:43,409 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:22:43,410 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 14:22:43,429 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:22:43,429 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_304|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_304| ULTIMATE.start_main_p2))) (and (= 0 (select |v_#memory_int_304| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 1 (select |v_#memory_int_304| ULTIMATE.start_main_p1)) (= 0 .cse0) (= 0 (select |v_#memory_int_304| ULTIMATE.start_main_p4)) (= (store |v_#memory_int_304| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-07 14:22:43,429 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:22:43,482 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:43,483 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:43,484 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:43,485 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:43,487 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:43,488 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:43,489 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:43,490 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:43,491 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:43,492 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:43,492 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 14:22:43,493 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 77 [2019-01-07 14:22:43,496 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:22:43,536 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:22:43,537 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-07 14:22:45,543 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:22:45,543 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_305|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_305| ULTIMATE.start_main_p3))) (and (= 1 (select |v_#memory_int_305| ULTIMATE.start_main_p1)) (= .cse0 0) (= (select |v_#memory_int_305| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_305| ULTIMATE.start_main_p2) 1)) (= (store |v_#memory_int_305| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:22:45,544 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:22:45,634 INFO L273 TraceCheckUtils]: 0: Hoare triple {36135#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {36142#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:22:45,636 INFO L273 TraceCheckUtils]: 1: Hoare triple {36142#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36146#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:22:45,638 INFO L273 TraceCheckUtils]: 2: Hoare triple {36146#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {36150#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:22:45,640 INFO L273 TraceCheckUtils]: 3: Hoare triple {36150#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {36154#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:22:45,641 INFO L273 TraceCheckUtils]: 4: Hoare triple {36154#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p1] >= 0; {36154#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:22:45,642 INFO L273 TraceCheckUtils]: 5: Hoare triple {36154#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p2] <= 0; {36154#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:22:45,643 INFO L273 TraceCheckUtils]: 6: Hoare triple {36154#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p3] >= 0; {36154#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:22:45,644 INFO L273 TraceCheckUtils]: 7: Hoare triple {36154#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume !(#memory_int[main_p4] <= 0); {36136#false} is VALID [2019-01-07 14:22:45,645 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:22:45,645 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:22:45,711 INFO L273 TraceCheckUtils]: 7: Hoare triple {36167#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {36136#false} is VALID [2019-01-07 14:22:45,711 INFO L273 TraceCheckUtils]: 6: Hoare triple {36167#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {36167#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:22:45,712 INFO L273 TraceCheckUtils]: 5: Hoare triple {36167#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {36167#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:22:45,712 INFO L273 TraceCheckUtils]: 4: Hoare triple {36167#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {36167#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:22:45,713 INFO L273 TraceCheckUtils]: 3: Hoare triple {36180#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {36167#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:22:45,715 INFO L273 TraceCheckUtils]: 2: Hoare triple {36184#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {36180#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:22:45,717 INFO L273 TraceCheckUtils]: 1: Hoare triple {36188#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36184#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:22:45,719 INFO L273 TraceCheckUtils]: 0: Hoare triple {36135#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {36188#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:22:45,720 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 1 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:22:45,740 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:22:45,740 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 4, 4] total 10 [2019-01-07 14:22:45,740 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:22:45,740 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 8 [2019-01-07 14:22:45,740 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:22:45,741 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-01-07 14:22:45,773 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 16 edges. 16 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:22:45,773 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-01-07 14:22:45,774 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-01-07 14:22:45,774 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=46, Invalid=86, Unknown=0, NotChecked=0, Total=132 [2019-01-07 14:22:45,774 INFO L87 Difference]: Start difference. First operand 45 states and 167 transitions. Second operand 8 states. [2019-01-07 14:22:49,608 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:22:49,608 INFO L93 Difference]: Finished difference Result 59 states and 204 transitions. [2019-01-07 14:22:49,608 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-01-07 14:22:49,609 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 8 [2019-01-07 14:22:49,609 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:22:49,609 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 14:22:49,609 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 37 transitions. [2019-01-07 14:22:49,610 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-01-07 14:22:49,610 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 37 transitions. [2019-01-07 14:22:49,610 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 37 transitions. [2019-01-07 14:22:50,021 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 37 edges. 37 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:22:50,022 INFO L225 Difference]: With dead ends: 59 [2019-01-07 14:22:50,022 INFO L226 Difference]: Without dead ends: 52 [2019-01-07 14:22:50,022 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 24 GetRequests, 7 SyntacticMatches, 4 SemanticMatches, 13 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 41 ImplicationChecksByTransitivity, 0.9s TimeCoverageRelationStatistics Valid=73, Invalid=137, Unknown=0, NotChecked=0, Total=210 [2019-01-07 14:22:50,023 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 52 states. [2019-01-07 14:22:53,012 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 52 to 45. [2019-01-07 14:22:53,013 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:22:53,013 INFO L82 GeneralOperation]: Start isEquivalent. First operand 52 states. Second operand 45 states. [2019-01-07 14:22:53,013 INFO L74 IsIncluded]: Start isIncluded. First operand 52 states. Second operand 45 states. [2019-01-07 14:22:53,013 INFO L87 Difference]: Start difference. First operand 52 states. Second operand 45 states. [2019-01-07 14:22:53,014 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:22:53,014 INFO L93 Difference]: Finished difference Result 52 states and 195 transitions. [2019-01-07 14:22:53,014 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 195 transitions. [2019-01-07 14:22:53,014 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:22:53,015 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:22:53,015 INFO L74 IsIncluded]: Start isIncluded. First operand 45 states. Second operand 52 states. [2019-01-07 14:22:53,015 INFO L87 Difference]: Start difference. First operand 45 states. Second operand 52 states. [2019-01-07 14:22:53,016 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:22:53,016 INFO L93 Difference]: Finished difference Result 52 states and 195 transitions. [2019-01-07 14:22:53,016 INFO L276 IsEmpty]: Start isEmpty. Operand 52 states and 195 transitions. [2019-01-07 14:22:53,016 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:22:53,016 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:22:53,016 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:22:53,017 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:22:53,017 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 45 states. [2019-01-07 14:22:53,017 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 45 states to 45 states and 167 transitions. [2019-01-07 14:22:53,018 INFO L78 Accepts]: Start accepts. Automaton has 45 states and 167 transitions. Word has length 8 [2019-01-07 14:22:53,018 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:22:53,018 INFO L480 AbstractCegarLoop]: Abstraction has 45 states and 167 transitions. [2019-01-07 14:22:53,018 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-01-07 14:22:53,018 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 167 transitions. [2019-01-07 14:22:53,018 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 10 [2019-01-07 14:22:53,018 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:22:53,018 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1, 1, 1] [2019-01-07 14:22:53,018 INFO L423 AbstractCegarLoop]: === Iteration 53 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:22:53,018 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:22:53,019 INFO L82 PathProgramCache]: Analyzing trace with hash -1160942496, now seen corresponding path program 2 times [2019-01-07 14:22:53,019 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:22:53,019 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:22:53,019 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:22:53,019 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:22:53,019 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:22:53,022 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:22:53,324 INFO L273 TraceCheckUtils]: 0: Hoare triple {36492#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {36494#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 14:22:53,325 INFO L273 TraceCheckUtils]: 1: Hoare triple {36494#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {36495#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-01-07 14:22:53,326 INFO L273 TraceCheckUtils]: 2: Hoare triple {36495#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 1) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36495#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-01-07 14:22:53,327 INFO L273 TraceCheckUtils]: 3: Hoare triple {36495#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 1) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36495#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-01-07 14:22:53,328 INFO L273 TraceCheckUtils]: 4: Hoare triple {36495#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 1) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {36496#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-07 14:22:53,328 INFO L273 TraceCheckUtils]: 5: Hoare triple {36496#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p1] >= 0; {36496#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-07 14:22:53,329 INFO L273 TraceCheckUtils]: 6: Hoare triple {36496#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p2] <= 0; {36496#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-07 14:22:53,329 INFO L273 TraceCheckUtils]: 7: Hoare triple {36496#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p3] >= 0; {36496#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-07 14:22:53,330 INFO L273 TraceCheckUtils]: 8: Hoare triple {36496#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume !(#memory_int[main_p4] <= 0); {36493#false} is VALID [2019-01-07 14:22:53,331 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 7 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2019-01-07 14:22:53,331 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:22:53,331 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:22:53,331 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-07 14:22:53,331 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-07 14:22:53,331 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:22:53,332 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 51 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 51 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:22:53,341 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-07 14:22:53,341 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-07 14:22:53,348 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-07 14:22:53,348 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-07 14:22:53,351 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:22:53,351 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:22:53,380 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:22:53,395 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,396 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:22:53,424 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,426 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,427 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:22:53,448 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,450 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,451 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,452 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:22:53,459 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:22:53,480 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:22:53,492 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:22:53,503 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:22:53,520 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:22:53,520 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 14:22:53,529 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:22:53,529 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_309|, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_309| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:22:53,529 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:22:53,602 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,603 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,604 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,606 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,607 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,608 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,609 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,610 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 45 [2019-01-07 14:22:53,617 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:22:53,646 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:22:53,647 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-07 14:22:53,673 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:22:53,673 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_310|, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_310| ULTIMATE.start_main_p4))) (and (= 0 (select |v_#memory_int_310| ULTIMATE.start_main_p2)) (= (store |v_#memory_int_310| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_310| ULTIMATE.start_main_p1)) (= .cse0 0) (= 0 (select |v_#memory_int_310| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:22:53,673 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:22:53,761 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,763 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,764 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,765 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,767 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,768 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,769 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,770 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,772 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,772 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 59 [2019-01-07 14:22:53,775 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:22:53,806 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:22:53,807 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:42, output treesize:32 [2019-01-07 14:22:53,812 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:22:53,813 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_311|, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_311| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |v_#memory_int_311| ULTIMATE.start_main_p4) 1) 0) (= |#memory_int| (store |v_#memory_int_311| ULTIMATE.start_main_p1 (+ .cse0 1))) (= 0 .cse0) (= 0 (select |v_#memory_int_311| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 (select |v_#memory_int_311| ULTIMATE.start_main_p3)))) [2019-01-07 14:22:53,813 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:22:53,858 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,859 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,860 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,862 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,863 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,864 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,866 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,867 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,868 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,869 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,870 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,872 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,873 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 12 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 79 [2019-01-07 14:22:53,875 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:22:53,910 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:22:53,911 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-07 14:22:53,931 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:22:53,932 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_312|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_312| ULTIMATE.start_main_p1))) (and (= 0 (+ (select |v_#memory_int_312| ULTIMATE.start_main_p4) 1)) (= |#memory_int| (store |v_#memory_int_312| ULTIMATE.start_main_p1 (+ .cse0 1))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_312| ULTIMATE.start_main_p3)) (= (select |v_#memory_int_312| ULTIMATE.start_main_p2) 0) (= .cse0 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:22:53,932 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:22:53,982 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,983 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,984 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,986 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,987 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,988 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,989 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,990 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,991 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,992 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,994 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,995 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:22:53,996 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 12 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 89 [2019-01-07 14:22:53,998 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:22:54,038 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:22:54,038 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-07 14:22:54,050 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:22:54,051 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_313|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_313| ULTIMATE.start_main_p3))) (and (= (store |v_#memory_int_313| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 2 (select |v_#memory_int_313| ULTIMATE.start_main_p1)) (= .cse0 0) (= (select |v_#memory_int_313| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |v_#memory_int_313| ULTIMATE.start_main_p4) 1) 0))) [2019-01-07 14:22:54,051 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:22:54,119 INFO L273 TraceCheckUtils]: 0: Hoare triple {36492#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {36500#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:22:54,121 INFO L273 TraceCheckUtils]: 1: Hoare triple {36500#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {36504#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-07 14:22:54,122 INFO L273 TraceCheckUtils]: 2: Hoare triple {36504#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36508#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-07 14:22:54,123 INFO L273 TraceCheckUtils]: 3: Hoare triple {36508#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36512#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-07 14:22:54,125 INFO L273 TraceCheckUtils]: 4: Hoare triple {36512#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {36516#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-07 14:22:54,126 INFO L273 TraceCheckUtils]: 5: Hoare triple {36516#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume #memory_int[main_p1] >= 0; {36516#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-07 14:22:54,127 INFO L273 TraceCheckUtils]: 6: Hoare triple {36516#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume #memory_int[main_p2] <= 0; {36516#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-07 14:22:54,127 INFO L273 TraceCheckUtils]: 7: Hoare triple {36516#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume #memory_int[main_p3] >= 0; {36516#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-07 14:22:54,128 INFO L273 TraceCheckUtils]: 8: Hoare triple {36516#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p4] <= 0); {36493#false} is VALID [2019-01-07 14:22:54,129 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:22:54,129 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:22:54,230 INFO L273 TraceCheckUtils]: 8: Hoare triple {36529#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {36493#false} is VALID [2019-01-07 14:22:54,230 INFO L273 TraceCheckUtils]: 7: Hoare triple {36529#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {36529#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:22:54,231 INFO L273 TraceCheckUtils]: 6: Hoare triple {36529#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {36529#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:22:54,231 INFO L273 TraceCheckUtils]: 5: Hoare triple {36529#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {36529#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:22:54,232 INFO L273 TraceCheckUtils]: 4: Hoare triple {36542#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {36529#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:22:54,234 INFO L273 TraceCheckUtils]: 3: Hoare triple {36546#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36542#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:22:54,235 INFO L273 TraceCheckUtils]: 2: Hoare triple {36550#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36546#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:22:54,237 INFO L273 TraceCheckUtils]: 1: Hoare triple {36554#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {36550#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:22:54,239 INFO L273 TraceCheckUtils]: 0: Hoare triple {36492#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {36554#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:22:54,240 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 2 proven. 8 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:22:54,260 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:22:54,260 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 5, 5] total 13 [2019-01-07 14:22:54,260 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:22:54,260 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 9 [2019-01-07 14:22:54,261 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:22:54,261 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 14:22:54,291 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 17 edges. 17 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:22:54,291 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 14:22:54,292 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 14:22:54,292 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=76, Invalid=134, Unknown=0, NotChecked=0, Total=210 [2019-01-07 14:22:54,292 INFO L87 Difference]: Start difference. First operand 45 states and 167 transitions. Second operand 10 states. [2019-01-07 14:22:59,126 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:22:59,126 INFO L93 Difference]: Finished difference Result 67 states and 237 transitions. [2019-01-07 14:22:59,126 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-07 14:22:59,126 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 9 [2019-01-07 14:22:59,127 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:22:59,127 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 14:22:59,127 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 45 transitions. [2019-01-07 14:22:59,127 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 14:22:59,127 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 45 transitions. [2019-01-07 14:22:59,127 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 45 transitions. [2019-01-07 14:22:59,196 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 45 edges. 45 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:22:59,196 INFO L225 Difference]: With dead ends: 67 [2019-01-07 14:22:59,197 INFO L226 Difference]: Without dead ends: 32 [2019-01-07 14:22:59,197 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 25 GetRequests, 8 SyntacticMatches, 2 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 73 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=96, Invalid=176, Unknown=0, NotChecked=0, Total=272 [2019-01-07 14:22:59,197 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 32 states. [2019-01-07 14:23:01,147 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 32 to 30. [2019-01-07 14:23:01,148 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:23:01,148 INFO L82 GeneralOperation]: Start isEquivalent. First operand 32 states. Second operand 30 states. [2019-01-07 14:23:01,148 INFO L74 IsIncluded]: Start isIncluded. First operand 32 states. Second operand 30 states. [2019-01-07 14:23:01,148 INFO L87 Difference]: Start difference. First operand 32 states. Second operand 30 states. [2019-01-07 14:23:01,149 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:23:01,149 INFO L93 Difference]: Finished difference Result 32 states and 106 transitions. [2019-01-07 14:23:01,149 INFO L276 IsEmpty]: Start isEmpty. Operand 32 states and 106 transitions. [2019-01-07 14:23:01,149 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:23:01,149 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:23:01,149 INFO L74 IsIncluded]: Start isIncluded. First operand 30 states. Second operand 32 states. [2019-01-07 14:23:01,149 INFO L87 Difference]: Start difference. First operand 30 states. Second operand 32 states. [2019-01-07 14:23:01,150 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:23:01,151 INFO L93 Difference]: Finished difference Result 32 states and 106 transitions. [2019-01-07 14:23:01,151 INFO L276 IsEmpty]: Start isEmpty. Operand 32 states and 106 transitions. [2019-01-07 14:23:01,151 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:23:01,151 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:23:01,151 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:23:01,151 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:23:01,152 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 30 states. [2019-01-07 14:23:01,152 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 30 states to 30 states and 100 transitions. [2019-01-07 14:23:01,152 INFO L78 Accepts]: Start accepts. Automaton has 30 states and 100 transitions. Word has length 9 [2019-01-07 14:23:01,152 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:23:01,153 INFO L480 AbstractCegarLoop]: Abstraction has 30 states and 100 transitions. [2019-01-07 14:23:01,153 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 14:23:01,153 INFO L276 IsEmpty]: Start isEmpty. Operand 30 states and 100 transitions. [2019-01-07 14:23:01,153 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 10 [2019-01-07 14:23:01,153 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:23:01,153 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1, 1, 1] [2019-01-07 14:23:01,153 INFO L423 AbstractCegarLoop]: === Iteration 54 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:23:01,154 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:23:01,154 INFO L82 PathProgramCache]: Analyzing trace with hash -1292813016, now seen corresponding path program 1 times [2019-01-07 14:23:01,154 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:23:01,154 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:23:01,155 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-07 14:23:01,155 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:23:01,155 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:23:01,157 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:23:01,341 INFO L273 TraceCheckUtils]: 0: Hoare triple {36802#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {36804#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 14:23:01,342 INFO L273 TraceCheckUtils]: 1: Hoare triple {36804#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36804#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 14:23:01,343 INFO L273 TraceCheckUtils]: 2: Hoare triple {36804#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36804#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 14:23:01,344 INFO L273 TraceCheckUtils]: 3: Hoare triple {36804#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {36805#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:23:01,345 INFO L273 TraceCheckUtils]: 4: Hoare triple {36805#(= (select |#memory_int| ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {36806#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-07 14:23:01,345 INFO L273 TraceCheckUtils]: 5: Hoare triple {36806#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p1] >= 0; {36806#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-07 14:23:01,346 INFO L273 TraceCheckUtils]: 6: Hoare triple {36806#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p2] <= 0; {36806#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-07 14:23:01,346 INFO L273 TraceCheckUtils]: 7: Hoare triple {36806#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p3] >= 0; {36806#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-07 14:23:01,347 INFO L273 TraceCheckUtils]: 8: Hoare triple {36806#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume !(#memory_int[main_p4] <= 0); {36803#false} is VALID [2019-01-07 14:23:01,348 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 7 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2019-01-07 14:23:01,348 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:23:01,348 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:23:01,348 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 10 with the following transitions: [2019-01-07 14:23:01,349 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [16], [20], [22], [24], [25] [2019-01-07 14:23:01,350 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:23:01,350 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:23:01,362 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:23:01,362 INFO L272 AbstractInterpreter]: Visited 8 different actions 8 times. Never merged. Never widened. Performed 60 root evaluator evaluations with a maximum evaluation depth of 3. Performed 60 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-01-07 14:23:01,362 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:23:01,362 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:23:01,363 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:23:01,363 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 52 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 52 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:23:01,373 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:23:01,373 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:23:01,377 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:23:01,381 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:23:01,382 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:23:01,423 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:23:01,434 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:01,435 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:23:01,449 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:01,450 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:01,451 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:23:01,470 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:01,471 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:01,472 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:01,473 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:23:01,479 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:23:01,500 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:23:01,512 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:23:01,522 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:23:01,538 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:23:01,539 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 14:23:01,546 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:23:01,547 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_318|, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_318| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:23:01,547 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:23:01,610 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:01,612 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:01,613 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:01,614 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:01,615 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:01,617 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:01,618 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:01,618 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 14:23:01,624 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:23:01,657 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:23:01,657 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-07 14:23:01,670 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:23:01,671 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_319|, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_319| ULTIMATE.start_main_p1))) (and (= (store |v_#memory_int_319| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_319| ULTIMATE.start_main_p4) 0) (= 0 (select |v_#memory_int_319| ULTIMATE.start_main_p3)) (= 0 (select |v_#memory_int_319| ULTIMATE.start_main_p2)) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:23:01,671 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:23:01,740 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:01,741 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:01,743 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:01,744 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:01,745 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:01,746 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:01,749 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:01,750 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:01,750 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:01,751 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 57 [2019-01-07 14:23:01,756 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:23:01,791 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:23:01,792 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 14:23:02,948 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:23:02,948 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_320|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_320| ULTIMATE.start_main_p1))) (and (= (select |v_#memory_int_320| ULTIMATE.start_main_p3) 0) (= .cse0 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_320| ULTIMATE.start_main_p4)) (= |#memory_int| (store |v_#memory_int_320| ULTIMATE.start_main_p1 (+ .cse0 1))) (= (select |v_#memory_int_320| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:23:02,948 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:23:03,021 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:03,022 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:03,023 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:03,025 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:03,026 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:03,027 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:03,028 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:03,029 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:03,030 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:03,031 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 65 [2019-01-07 14:23:03,037 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:23:03,075 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:23:03,076 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-01-07 14:23:04,643 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:23:04,644 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_321|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_321| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_321| ULTIMATE.start_main_p4)) (= 0 (select |v_#memory_int_321| ULTIMATE.start_main_p3)) (= 2 (select |v_#memory_int_321| ULTIMATE.start_main_p1)) (= (store |v_#memory_int_321| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= 0 .cse0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-07 14:23:04,644 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:23:04,741 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:04,742 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:04,743 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:04,745 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:04,746 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:04,747 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:04,748 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:04,750 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:04,751 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:04,752 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:04,753 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:04,754 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 14:23:04,754 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 78 [2019-01-07 14:23:04,759 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:23:04,812 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:23:04,812 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-01-07 14:23:04,823 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:23:04,823 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_322|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_322| ULTIMATE.start_main_p4))) (and (= 0 (select |v_#memory_int_322| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_322| ULTIMATE.start_main_p2) 1)) (= (store |v_#memory_int_322| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= 2 (select |v_#memory_int_322| ULTIMATE.start_main_p1)) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:23:04,823 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-07 14:23:05,033 INFO L273 TraceCheckUtils]: 0: Hoare triple {36802#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {36810#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:23:05,035 INFO L273 TraceCheckUtils]: 1: Hoare triple {36810#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36814#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:23:05,037 INFO L273 TraceCheckUtils]: 2: Hoare triple {36814#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36818#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:23:05,042 INFO L273 TraceCheckUtils]: 3: Hoare triple {36818#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {36822#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:23:05,044 INFO L273 TraceCheckUtils]: 4: Hoare triple {36822#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {36826#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-07 14:23:05,045 INFO L273 TraceCheckUtils]: 5: Hoare triple {36826#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p1] >= 0; {36826#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-07 14:23:05,049 INFO L273 TraceCheckUtils]: 6: Hoare triple {36826#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p2] <= 0; {36826#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-07 14:23:05,049 INFO L273 TraceCheckUtils]: 7: Hoare triple {36826#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p3] >= 0; {36826#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-07 14:23:05,051 INFO L273 TraceCheckUtils]: 8: Hoare triple {36826#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume !(#memory_int[main_p4] <= 0); {36803#false} is VALID [2019-01-07 14:23:05,051 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:23:05,051 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:23:05,204 INFO L273 TraceCheckUtils]: 8: Hoare triple {36839#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {36803#false} is VALID [2019-01-07 14:23:05,205 INFO L273 TraceCheckUtils]: 7: Hoare triple {36839#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {36839#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:23:05,205 INFO L273 TraceCheckUtils]: 6: Hoare triple {36839#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {36839#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:23:05,206 INFO L273 TraceCheckUtils]: 5: Hoare triple {36839#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {36839#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:23:05,207 INFO L273 TraceCheckUtils]: 4: Hoare triple {36852#(<= (select |#memory_int| ULTIMATE.start_main_p4) 1)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {36839#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:23:05,208 INFO L273 TraceCheckUtils]: 3: Hoare triple {36856#(<= (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) 1)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {36852#(<= (select |#memory_int| ULTIMATE.start_main_p4) 1)} is VALID [2019-01-07 14:23:05,209 INFO L273 TraceCheckUtils]: 2: Hoare triple {36860#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) 1)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36856#(<= (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) 1)} is VALID [2019-01-07 14:23:05,211 INFO L273 TraceCheckUtils]: 1: Hoare triple {36864#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) 1)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {36860#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) 1)} is VALID [2019-01-07 14:23:05,213 INFO L273 TraceCheckUtils]: 0: Hoare triple {36802#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {36864#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) 1)} is VALID [2019-01-07 14:23:05,214 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 4 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:23:05,235 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:23:05,235 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 5, 5] total 13 [2019-01-07 14:23:05,235 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:23:05,235 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 9 [2019-01-07 14:23:05,235 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:23:05,235 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-01-07 14:23:05,264 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 17 edges. 17 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:23:05,264 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-01-07 14:23:05,264 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-01-07 14:23:05,265 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=79, Invalid=131, Unknown=0, NotChecked=0, Total=210 [2019-01-07 14:23:05,265 INFO L87 Difference]: Start difference. First operand 30 states and 100 transitions. Second operand 10 states. [2019-01-07 14:23:08,335 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:23:08,335 INFO L93 Difference]: Finished difference Result 47 states and 147 transitions. [2019-01-07 14:23:08,336 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-07 14:23:08,336 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 9 [2019-01-07 14:23:08,336 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:23:08,336 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 14:23:08,336 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 42 transitions. [2019-01-07 14:23:08,337 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-01-07 14:23:08,337 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 42 transitions. [2019-01-07 14:23:08,337 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 42 transitions. [2019-01-07 14:23:08,395 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 42 edges. 42 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:23:08,396 INFO L225 Difference]: With dead ends: 47 [2019-01-07 14:23:08,396 INFO L226 Difference]: Without dead ends: 40 [2019-01-07 14:23:08,396 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 25 GetRequests, 8 SyntacticMatches, 2 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 73 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=99, Invalid=173, Unknown=0, NotChecked=0, Total=272 [2019-01-07 14:23:08,397 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 40 states. [2019-01-07 14:23:11,117 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 40 to 36. [2019-01-07 14:23:11,118 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:23:11,118 INFO L82 GeneralOperation]: Start isEquivalent. First operand 40 states. Second operand 36 states. [2019-01-07 14:23:11,118 INFO L74 IsIncluded]: Start isIncluded. First operand 40 states. Second operand 36 states. [2019-01-07 14:23:11,118 INFO L87 Difference]: Start difference. First operand 40 states. Second operand 36 states. [2019-01-07 14:23:11,119 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:23:11,119 INFO L93 Difference]: Finished difference Result 40 states and 138 transitions. [2019-01-07 14:23:11,119 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 138 transitions. [2019-01-07 14:23:11,120 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:23:11,120 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:23:11,120 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 40 states. [2019-01-07 14:23:11,120 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 40 states. [2019-01-07 14:23:11,121 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:23:11,121 INFO L93 Difference]: Finished difference Result 40 states and 138 transitions. [2019-01-07 14:23:11,121 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 138 transitions. [2019-01-07 14:23:11,121 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:23:11,121 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:23:11,121 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:23:11,121 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:23:11,122 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 36 states. [2019-01-07 14:23:11,122 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 36 states to 36 states and 122 transitions. [2019-01-07 14:23:11,122 INFO L78 Accepts]: Start accepts. Automaton has 36 states and 122 transitions. Word has length 9 [2019-01-07 14:23:11,122 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:23:11,122 INFO L480 AbstractCegarLoop]: Abstraction has 36 states and 122 transitions. [2019-01-07 14:23:11,122 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-01-07 14:23:11,123 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 122 transitions. [2019-01-07 14:23:11,123 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 10 [2019-01-07 14:23:11,123 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:23:11,123 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1, 1, 1] [2019-01-07 14:23:11,123 INFO L423 AbstractCegarLoop]: === Iteration 55 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:23:11,123 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:23:11,123 INFO L82 PathProgramCache]: Analyzing trace with hash -1875225892, now seen corresponding path program 2 times [2019-01-07 14:23:11,124 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:23:11,124 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:23:11,124 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:23:11,124 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:23:11,124 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:23:11,126 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:23:11,368 INFO L273 TraceCheckUtils]: 0: Hoare triple {37100#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {37102#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 14:23:11,369 INFO L273 TraceCheckUtils]: 1: Hoare triple {37102#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37102#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 14:23:11,370 INFO L273 TraceCheckUtils]: 2: Hoare triple {37102#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {37103#(and (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 14:23:11,371 INFO L273 TraceCheckUtils]: 3: Hoare triple {37103#(and (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {37104#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-01-07 14:23:11,372 INFO L273 TraceCheckUtils]: 4: Hoare triple {37104#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 1) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37104#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-01-07 14:23:11,373 INFO L273 TraceCheckUtils]: 5: Hoare triple {37104#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 1) 0))} assume #memory_int[main_p1] >= 0; {37105#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-07 14:23:11,373 INFO L273 TraceCheckUtils]: 6: Hoare triple {37105#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p2] <= 0; {37105#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-07 14:23:11,374 INFO L273 TraceCheckUtils]: 7: Hoare triple {37105#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p3] >= 0; {37105#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-07 14:23:11,375 INFO L273 TraceCheckUtils]: 8: Hoare triple {37105#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume !(#memory_int[main_p4] <= 0); {37101#false} is VALID [2019-01-07 14:23:11,375 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 8 refuted. 0 times theorem prover too weak. 2 trivial. 0 not checked. [2019-01-07 14:23:11,375 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:23:11,376 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:23:11,376 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-07 14:23:11,376 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-07 14:23:11,376 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:23:11,376 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 53 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 53 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:23:11,386 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-07 14:23:11,386 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-07 14:23:11,392 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 3 check-sat command(s) [2019-01-07 14:23:11,392 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-07 14:23:11,397 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:23:11,397 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:23:11,427 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:23:11,435 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:11,436 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:23:11,447 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:11,448 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:11,449 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:23:11,464 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:11,465 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:11,467 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:11,467 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:23:11,471 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:23:11,492 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:23:11,503 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:23:11,514 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:23:11,531 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:23:11,532 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-01-07 14:23:11,538 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:23:11,538 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_327|, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_327| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-01-07 14:23:11,538 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:23:11,594 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:11,595 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:11,597 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:11,598 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:11,599 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:11,600 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:11,601 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:11,602 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 14:23:11,606 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:23:11,638 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:23:11,639 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-07 14:23:11,648 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:23:11,649 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_328|, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_328| ULTIMATE.start_main_p1))) (and (= (select |v_#memory_int_328| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_328| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= .cse0 0) (= (select |v_#memory_int_328| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_328| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:23:11,649 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:23:11,709 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:11,710 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:11,712 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:11,713 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:11,714 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:11,716 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:11,717 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:11,718 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:11,719 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:11,720 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 65 [2019-01-07 14:23:11,725 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:23:11,763 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:23:11,764 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 14:23:12,300 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:23:12,300 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_329|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_329| ULTIMATE.start_main_p2))) (and (= 0 .cse0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_329| ULTIMATE.start_main_p1) 1) (= (select |v_#memory_int_329| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_329| ULTIMATE.start_main_p3) 0) (= |#memory_int| (store |v_#memory_int_329| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:23:12,301 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:23:12,390 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:12,391 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:12,392 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:12,393 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:12,394 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:12,395 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:12,396 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:12,397 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:12,398 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:12,400 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:12,401 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:12,401 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 14:23:12,402 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 78 [2019-01-07 14:23:12,406 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:23:12,448 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:23:12,448 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-07 14:23:12,459 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:23:12,460 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_330|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_330| ULTIMATE.start_main_p4))) (and (= .cse0 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |v_#memory_int_330| ULTIMATE.start_main_p2) 1) 0) (= (select |v_#memory_int_330| ULTIMATE.start_main_p3) 0) (= (store |v_#memory_int_330| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_330| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:23:12,460 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-07 14:23:12,514 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:12,515 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:12,517 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:12,518 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:12,519 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:12,520 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:12,521 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:12,522 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:12,523 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:12,524 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:12,526 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:12,527 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:12,528 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 12 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 81 [2019-01-07 14:23:12,532 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:23:12,578 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:23:12,579 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:44, output treesize:34 [2019-01-07 14:23:14,616 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:23:14,616 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_331|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_331| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_331| ULTIMATE.start_main_p4) 1)) (= .cse0 1) (= (select |v_#memory_int_331| ULTIMATE.start_main_p3) 0) (= 0 (+ (select |v_#memory_int_331| ULTIMATE.start_main_p2) 1)) (= (store |v_#memory_int_331| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:23:14,617 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-07 14:23:14,730 INFO L273 TraceCheckUtils]: 0: Hoare triple {37100#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {37109#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:23:14,732 INFO L273 TraceCheckUtils]: 1: Hoare triple {37109#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37113#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:23:14,734 INFO L273 TraceCheckUtils]: 2: Hoare triple {37113#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {37117#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-01-07 14:23:14,737 INFO L273 TraceCheckUtils]: 3: Hoare triple {37117#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {37121#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-07 14:23:14,740 INFO L273 TraceCheckUtils]: 4: Hoare triple {37121#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37125#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-07 14:23:14,741 INFO L273 TraceCheckUtils]: 5: Hoare triple {37125#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p1] >= 0; {37125#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-07 14:23:14,742 INFO L273 TraceCheckUtils]: 6: Hoare triple {37125#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p2] <= 0; {37125#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-07 14:23:14,742 INFO L273 TraceCheckUtils]: 7: Hoare triple {37125#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p3] >= 0; {37125#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-07 14:23:14,743 INFO L273 TraceCheckUtils]: 8: Hoare triple {37125#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume !(#memory_int[main_p4] <= 0); {37101#false} is VALID [2019-01-07 14:23:14,744 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:23:14,744 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:23:14,842 INFO L273 TraceCheckUtils]: 8: Hoare triple {37138#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {37101#false} is VALID [2019-01-07 14:23:14,843 INFO L273 TraceCheckUtils]: 7: Hoare triple {37138#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {37138#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:23:14,844 INFO L273 TraceCheckUtils]: 6: Hoare triple {37138#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {37138#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:23:14,844 INFO L273 TraceCheckUtils]: 5: Hoare triple {37138#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {37138#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:23:14,845 INFO L273 TraceCheckUtils]: 4: Hoare triple {37151#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37138#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:23:14,846 INFO L273 TraceCheckUtils]: 3: Hoare triple {37155#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {37151#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:23:14,848 INFO L273 TraceCheckUtils]: 2: Hoare triple {37159#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {37155#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:23:14,850 INFO L273 TraceCheckUtils]: 1: Hoare triple {37163#(<= (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37159#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:23:14,852 INFO L273 TraceCheckUtils]: 0: Hoare triple {37100#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {37163#(<= (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:23:14,853 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 6 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:23:14,873 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:23:14,873 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 5, 5] total 14 [2019-01-07 14:23:14,873 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:23:14,874 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 9 [2019-01-07 14:23:14,874 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:23:14,874 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 11 states. [2019-01-07 14:23:14,902 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 18 edges. 18 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:23:14,902 INFO L459 AbstractCegarLoop]: Interpolant automaton has 11 states [2019-01-07 14:23:14,902 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 11 interpolants. [2019-01-07 14:23:14,902 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=92, Invalid=148, Unknown=0, NotChecked=0, Total=240 [2019-01-07 14:23:14,903 INFO L87 Difference]: Start difference. First operand 36 states and 122 transitions. Second operand 11 states. [2019-01-07 14:23:18,647 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:23:18,647 INFO L93 Difference]: Finished difference Result 52 states and 168 transitions. [2019-01-07 14:23:18,647 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 9 states. [2019-01-07 14:23:18,647 INFO L78 Accepts]: Start accepts. Automaton has 11 states. Word has length 9 [2019-01-07 14:23:18,647 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:23:18,647 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2019-01-07 14:23:18,648 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 43 transitions. [2019-01-07 14:23:18,648 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 11 states. [2019-01-07 14:23:18,648 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 9 states to 9 states and 43 transitions. [2019-01-07 14:23:18,648 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 9 states and 43 transitions. [2019-01-07 14:23:18,708 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 43 edges. 43 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:23:18,709 INFO L225 Difference]: With dead ends: 52 [2019-01-07 14:23:18,709 INFO L226 Difference]: Without dead ends: 45 [2019-01-07 14:23:18,709 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 25 GetRequests, 7 SyntacticMatches, 2 SemanticMatches, 16 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 88 ImplicationChecksByTransitivity, 0.4s TimeCoverageRelationStatistics Valid=112, Invalid=194, Unknown=0, NotChecked=0, Total=306 [2019-01-07 14:23:18,709 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 45 states. [2019-01-07 14:23:21,552 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 45 to 40. [2019-01-07 14:23:21,552 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:23:21,552 INFO L82 GeneralOperation]: Start isEquivalent. First operand 45 states. Second operand 40 states. [2019-01-07 14:23:21,552 INFO L74 IsIncluded]: Start isIncluded. First operand 45 states. Second operand 40 states. [2019-01-07 14:23:21,552 INFO L87 Difference]: Start difference. First operand 45 states. Second operand 40 states. [2019-01-07 14:23:21,553 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:23:21,553 INFO L93 Difference]: Finished difference Result 45 states and 158 transitions. [2019-01-07 14:23:21,554 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 158 transitions. [2019-01-07 14:23:21,554 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:23:21,554 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:23:21,554 INFO L74 IsIncluded]: Start isIncluded. First operand 40 states. Second operand 45 states. [2019-01-07 14:23:21,554 INFO L87 Difference]: Start difference. First operand 40 states. Second operand 45 states. [2019-01-07 14:23:21,555 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:23:21,555 INFO L93 Difference]: Finished difference Result 45 states and 158 transitions. [2019-01-07 14:23:21,555 INFO L276 IsEmpty]: Start isEmpty. Operand 45 states and 158 transitions. [2019-01-07 14:23:21,555 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:23:21,555 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:23:21,555 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:23:21,555 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:23:21,555 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 40 states. [2019-01-07 14:23:21,556 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 40 states to 40 states and 138 transitions. [2019-01-07 14:23:21,556 INFO L78 Accepts]: Start accepts. Automaton has 40 states and 138 transitions. Word has length 9 [2019-01-07 14:23:21,556 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:23:21,556 INFO L480 AbstractCegarLoop]: Abstraction has 40 states and 138 transitions. [2019-01-07 14:23:21,556 INFO L481 AbstractCegarLoop]: Interpolant automaton has 11 states. [2019-01-07 14:23:21,557 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 138 transitions. [2019-01-07 14:23:21,557 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 10 [2019-01-07 14:23:21,557 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:23:21,557 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1, 1, 1, 1, 1] [2019-01-07 14:23:21,557 INFO L423 AbstractCegarLoop]: === Iteration 56 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:23:21,557 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:23:21,557 INFO L82 PathProgramCache]: Analyzing trace with hash -1867837724, now seen corresponding path program 1 times [2019-01-07 14:23:21,557 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:23:21,558 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:23:21,558 INFO L101 rtionOrderModulation]: Changing assertion order to NOT_INCREMENTALLY [2019-01-07 14:23:21,558 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:23:21,558 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:23:21,561 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:23:21,882 INFO L273 TraceCheckUtils]: 0: Hoare triple {37427#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {37429#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 14:23:21,883 INFO L273 TraceCheckUtils]: 1: Hoare triple {37429#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37429#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 14:23:21,884 INFO L273 TraceCheckUtils]: 2: Hoare triple {37429#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {37430#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:23:21,885 INFO L273 TraceCheckUtils]: 3: Hoare triple {37430#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {37431#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-01-07 14:23:21,886 INFO L273 TraceCheckUtils]: 4: Hoare triple {37431#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 1) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {37432#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:23:21,887 INFO L273 TraceCheckUtils]: 5: Hoare triple {37432#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p1] >= 0; {37432#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:23:21,887 INFO L273 TraceCheckUtils]: 6: Hoare triple {37432#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p2] <= 0; {37432#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:23:21,888 INFO L273 TraceCheckUtils]: 7: Hoare triple {37432#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (<= (select |#memory_int| ULTIMATE.start_main_p4) 0))} assume #memory_int[main_p3] >= 0; {37433#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:23:21,888 INFO L273 TraceCheckUtils]: 8: Hoare triple {37433#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {37428#false} is VALID [2019-01-07 14:23:21,889 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 9 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-01-07 14:23:21,889 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:23:21,889 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:23:21,890 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 10 with the following transitions: [2019-01-07 14:23:21,890 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [14], [16], [20], [22], [24], [25] [2019-01-07 14:23:21,891 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-01-07 14:23:21,891 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-01-07 14:23:21,903 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-01-07 14:23:21,903 INFO L272 AbstractInterpreter]: Visited 9 different actions 9 times. Never merged. Never widened. Performed 62 root evaluator evaluations with a maximum evaluation depth of 3. Performed 62 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 4 fixpoints after 4 different actions. Largest state had 0 variables. [2019-01-07 14:23:21,904 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:23:21,904 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-01-07 14:23:21,904 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:23:21,904 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 54 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 54 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:23:21,914 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:23:21,914 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-01-07 14:23:21,918 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:23:21,921 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:23:21,921 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:23:21,935 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:23:21,946 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:21,946 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:23:21,955 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:21,957 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:21,958 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:23:22,120 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:22,141 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:22,162 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:22,163 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:23:22,190 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:23:22,295 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:23:22,306 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:23:22,315 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:23:22,330 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:23:22,330 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-07 14:23:22,334 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:23:22,334 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_336|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_336| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:23:22,334 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:23:22,385 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:22,386 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:22,388 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:22,389 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:22,390 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:22,391 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:22,392 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:22,393 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 14:23:22,397 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:23:22,427 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:23:22,427 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-07 14:23:24,439 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:23:24,439 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_337|, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_337| ULTIMATE.start_main_p1))) (and (= 0 (select |v_#memory_int_337| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_337| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= (select |v_#memory_int_337| ULTIMATE.start_main_p2) 0) (= .cse0 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |v_#memory_int_337| ULTIMATE.start_main_p4) 0))) [2019-01-07 14:23:24,440 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:23:24,498 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:24,499 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:24,501 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:24,502 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:24,503 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:24,504 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:24,506 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:24,507 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:24,508 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:24,509 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 65 [2019-01-07 14:23:24,513 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:23:24,546 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:23:24,547 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-01-07 14:23:24,554 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:23:24,555 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_338|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_338| ULTIMATE.start_main_p2))) (and (= (select |v_#memory_int_338| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_338| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= (select |v_#memory_int_338| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_338| ULTIMATE.start_main_p1) 1) (= .cse0 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-01-07 14:23:24,555 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:23:24,606 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:24,607 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:24,608 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:24,609 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:24,610 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:24,611 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:24,613 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:24,614 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:24,615 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:24,616 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:24,617 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:24,617 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 14:23:24,618 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 78 [2019-01-07 14:23:24,621 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:23:24,661 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:23:24,661 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-01-07 14:23:24,668 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:23:24,668 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_339|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_339| ULTIMATE.start_main_p4))) (and (= 1 (select |v_#memory_int_339| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |v_#memory_int_339| ULTIMATE.start_main_p2) 1) 0) (= (store |v_#memory_int_339| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_339| ULTIMATE.start_main_p3) 0) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:23:24,669 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-07 14:23:24,723 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:24,724 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:24,725 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:24,727 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:24,728 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:24,729 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:24,730 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:24,731 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:24,733 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:24,734 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:24,734 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 14:23:24,735 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 75 [2019-01-07 14:23:24,739 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:23:24,778 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:23:24,779 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:44, output treesize:34 [2019-01-07 14:23:24,812 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:23:24,812 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_340|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_340| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= |#memory_int| (store |v_#memory_int_340| ULTIMATE.start_main_p3 (+ .cse0 1))) (= 0 (+ (select |v_#memory_int_340| ULTIMATE.start_main_p2) 1)) (= (select |v_#memory_int_340| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |v_#memory_int_340| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:23:24,812 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-07 14:23:25,033 INFO L273 TraceCheckUtils]: 0: Hoare triple {37427#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {37437#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:23:25,035 INFO L273 TraceCheckUtils]: 1: Hoare triple {37437#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37441#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:23:25,037 INFO L273 TraceCheckUtils]: 2: Hoare triple {37441#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {37445#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:23:25,039 INFO L273 TraceCheckUtils]: 3: Hoare triple {37445#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {37449#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-07 14:23:25,045 INFO L273 TraceCheckUtils]: 4: Hoare triple {37449#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {37453#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-01-07 14:23:25,046 INFO L273 TraceCheckUtils]: 5: Hoare triple {37453#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))} assume #memory_int[main_p1] >= 0; {37453#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-01-07 14:23:25,047 INFO L273 TraceCheckUtils]: 6: Hoare triple {37453#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))} assume #memory_int[main_p2] <= 0; {37453#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-01-07 14:23:25,047 INFO L273 TraceCheckUtils]: 7: Hoare triple {37453#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))} assume #memory_int[main_p3] >= 0; {37453#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-01-07 14:23:25,048 INFO L273 TraceCheckUtils]: 8: Hoare triple {37453#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))} assume !(#memory_int[main_p4] <= 0); {37428#false} is VALID [2019-01-07 14:23:25,049 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 0 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:23:25,049 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:23:25,140 INFO L273 TraceCheckUtils]: 8: Hoare triple {37433#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {37428#false} is VALID [2019-01-07 14:23:25,140 INFO L273 TraceCheckUtils]: 7: Hoare triple {37433#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {37433#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:23:25,141 INFO L273 TraceCheckUtils]: 6: Hoare triple {37433#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {37433#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:23:25,141 INFO L273 TraceCheckUtils]: 5: Hoare triple {37433#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {37433#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:23:25,142 INFO L273 TraceCheckUtils]: 4: Hoare triple {37478#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {37433#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:23:25,143 INFO L273 TraceCheckUtils]: 3: Hoare triple {37482#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {37478#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:23:25,145 INFO L273 TraceCheckUtils]: 2: Hoare triple {37486#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {37482#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:23:25,147 INFO L273 TraceCheckUtils]: 1: Hoare triple {37490#(<= (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37486#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:23:25,150 INFO L273 TraceCheckUtils]: 0: Hoare triple {37427#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {37490#(<= (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:23:25,150 INFO L134 CoverageAnalysis]: Checked inductivity of 10 backedges. 6 proven. 4 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:23:25,171 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:23:25,171 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [5, 5, 5] total 14 [2019-01-07 14:23:25,171 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:23:25,171 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 9 [2019-01-07 14:23:25,171 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:23:25,171 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-01-07 14:23:25,198 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 18 edges. 18 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:23:25,198 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-01-07 14:23:25,198 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-01-07 14:23:25,199 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=95, Invalid=145, Unknown=0, NotChecked=0, Total=240 [2019-01-07 14:23:25,199 INFO L87 Difference]: Start difference. First operand 40 states and 138 transitions. Second operand 12 states. [2019-01-07 14:23:29,716 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:23:29,716 INFO L93 Difference]: Finished difference Result 66 states and 218 transitions. [2019-01-07 14:23:29,716 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2019-01-07 14:23:29,716 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 9 [2019-01-07 14:23:29,717 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:23:29,717 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-07 14:23:29,717 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 51 transitions. [2019-01-07 14:23:29,717 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-07 14:23:29,717 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 51 transitions. [2019-01-07 14:23:29,717 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 51 transitions. [2019-01-07 14:23:29,791 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 51 edges. 51 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:23:29,792 INFO L225 Difference]: With dead ends: 66 [2019-01-07 14:23:29,792 INFO L226 Difference]: Without dead ends: 56 [2019-01-07 14:23:29,793 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 27 GetRequests, 7 SyntacticMatches, 3 SemanticMatches, 17 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 86 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=127, Invalid=215, Unknown=0, NotChecked=0, Total=342 [2019-01-07 14:23:29,793 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 56 states. [2019-01-07 14:23:32,611 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 56 to 40. [2019-01-07 14:23:32,611 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:23:32,611 INFO L82 GeneralOperation]: Start isEquivalent. First operand 56 states. Second operand 40 states. [2019-01-07 14:23:32,612 INFO L74 IsIncluded]: Start isIncluded. First operand 56 states. Second operand 40 states. [2019-01-07 14:23:32,612 INFO L87 Difference]: Start difference. First operand 56 states. Second operand 40 states. [2019-01-07 14:23:32,613 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:23:32,614 INFO L93 Difference]: Finished difference Result 56 states and 202 transitions. [2019-01-07 14:23:32,614 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 202 transitions. [2019-01-07 14:23:32,614 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:23:32,614 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:23:32,614 INFO L74 IsIncluded]: Start isIncluded. First operand 40 states. Second operand 56 states. [2019-01-07 14:23:32,614 INFO L87 Difference]: Start difference. First operand 40 states. Second operand 56 states. [2019-01-07 14:23:32,615 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:23:32,615 INFO L93 Difference]: Finished difference Result 56 states and 202 transitions. [2019-01-07 14:23:32,615 INFO L276 IsEmpty]: Start isEmpty. Operand 56 states and 202 transitions. [2019-01-07 14:23:32,616 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:23:32,616 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:23:32,616 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:23:32,616 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:23:32,616 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 40 states. [2019-01-07 14:23:32,617 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 40 states to 40 states and 140 transitions. [2019-01-07 14:23:32,617 INFO L78 Accepts]: Start accepts. Automaton has 40 states and 140 transitions. Word has length 9 [2019-01-07 14:23:32,617 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:23:32,617 INFO L480 AbstractCegarLoop]: Abstraction has 40 states and 140 transitions. [2019-01-07 14:23:32,617 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-01-07 14:23:32,617 INFO L276 IsEmpty]: Start isEmpty. Operand 40 states and 140 transitions. [2019-01-07 14:23:32,617 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 11 [2019-01-07 14:23:32,617 INFO L394 BasicCegarLoop]: Found error trace [2019-01-07 14:23:32,617 INFO L402 BasicCegarLoop]: trace histogram [2, 1, 1, 1, 1, 1, 1, 1, 1] [2019-01-07 14:23:32,617 INFO L423 AbstractCegarLoop]: === Iteration 57 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT]=== [2019-01-07 14:23:32,618 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-01-07 14:23:32,618 INFO L82 PathProgramCache]: Analyzing trace with hash 638911500, now seen corresponding path program 2 times [2019-01-07 14:23:32,618 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-01-07 14:23:32,618 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:23:32,618 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-01-07 14:23:32,618 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-01-07 14:23:32,618 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-01-07 14:23:32,622 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:23:33,111 INFO L273 TraceCheckUtils]: 0: Hoare triple {37803#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {37805#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 14:23:33,113 INFO L273 TraceCheckUtils]: 1: Hoare triple {37805#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {37806#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-01-07 14:23:33,114 INFO L273 TraceCheckUtils]: 2: Hoare triple {37806#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {37807#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-01-07 14:23:33,115 INFO L273 TraceCheckUtils]: 3: Hoare triple {37807#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 1) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37807#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-01-07 14:23:33,116 INFO L273 TraceCheckUtils]: 4: Hoare triple {37807#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 1) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37807#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 1) 0))} is VALID [2019-01-07 14:23:33,117 INFO L273 TraceCheckUtils]: 5: Hoare triple {37807#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (<= (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) 1) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {37808#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-07 14:23:33,117 INFO L273 TraceCheckUtils]: 6: Hoare triple {37808#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p1] >= 0; {37808#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-07 14:23:33,118 INFO L273 TraceCheckUtils]: 7: Hoare triple {37808#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p2] <= 0; {37808#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-07 14:23:33,118 INFO L273 TraceCheckUtils]: 8: Hoare triple {37808#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume #memory_int[main_p3] >= 0; {37808#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} is VALID [2019-01-07 14:23:33,119 INFO L273 TraceCheckUtils]: 9: Hoare triple {37808#(<= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0)} assume !(#memory_int[main_p4] <= 0); {37804#false} is VALID [2019-01-07 14:23:33,120 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 0 proven. 12 refuted. 0 times theorem prover too weak. 3 trivial. 0 not checked. [2019-01-07 14:23:33,120 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:23:33,120 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-01-07 14:23:33,120 INFO L189 CegarAbsIntRunner]: Skipping current iteration for AI because we have already analyzed this path program [2019-01-07 14:23:33,120 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: AbsInt can only provide a hoare triple checker if it generated fixpoints [2019-01-07 14:23:33,120 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-01-07 14:23:33,120 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 55 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 55 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-01-07 14:23:33,129 INFO L103 rtionOrderModulation]: Keeping assertion order OUTSIDE_LOOP_FIRST2 [2019-01-07 14:23:33,129 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder OUTSIDE_LOOP_FIRST2 (IT: FPandBP) [2019-01-07 14:23:33,137 INFO L249 tOrderPrioritization]: Assert order OUTSIDE_LOOP_FIRST2 issued 4 check-sat command(s) [2019-01-07 14:23:33,137 INFO L250 tOrderPrioritization]: Conjunction of SSA is unsat [2019-01-07 14:23:33,145 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-01-07 14:23:33,145 INFO L273 TraceCheckSpWp]: Computing forward predicates... [2019-01-07 14:23:33,168 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-01-07 14:23:33,176 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:33,177 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 24 [2019-01-07 14:23:33,189 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:33,191 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:33,192 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 34 [2019-01-07 14:23:33,208 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:33,209 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:33,210 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:33,211 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 45 [2019-01-07 14:23:33,216 INFO L267 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-01-07 14:23:33,236 INFO L267 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:23:33,248 INFO L267 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:23:33,258 INFO L267 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:23:33,275 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-01-07 14:23:33,275 INFO L202 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-01-07 14:23:33,280 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:23:33,280 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_345|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_345| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-01-07 14:23:33,280 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:23:33,347 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:33,348 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:33,350 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:33,351 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:33,352 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:33,354 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:33,355 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:33,356 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 51 [2019-01-07 14:23:33,361 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:23:33,393 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:23:33,393 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:30 [2019-01-07 14:23:35,403 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:23:35,403 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_346|, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_346| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_346| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (= (select |v_#memory_int_346| ULTIMATE.start_main_p4) 0) (= 0 .cse0) (= 0 (select |v_#memory_int_346| ULTIMATE.start_main_p3)) (= (select |v_#memory_int_346| ULTIMATE.start_main_p1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:23:35,403 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (- 1) (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-01-07 14:23:35,469 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,471 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,472 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,473 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,475 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,476 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,477 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,478 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,479 INFO L683 Elim1Store]: detected equality via solver [2019-01-07 14:23:35,480 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 7 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 58 [2019-01-07 14:23:35,485 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:23:35,521 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:23:35,522 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:42, output treesize:32 [2019-01-07 14:23:35,540 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:23:35,540 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_347|, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_347| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |v_#memory_int_347| ULTIMATE.start_main_p2) 1) 0) (= (select |v_#memory_int_347| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_347| ULTIMATE.start_main_p1) 0) (= .cse0 0) (= |#memory_int| (store |v_#memory_int_347| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:23:35,540 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) (- 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-07 14:23:35,625 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,627 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,629 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,631 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,633 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,635 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,637 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,640 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,643 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,643 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 9 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 61 [2019-01-07 14:23:35,654 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:23:35,702 INFO L267 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-01-07 14:23:35,702 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:44, output treesize:34 [2019-01-07 14:23:35,707 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:23:35,707 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_348|, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_348| ULTIMATE.start_main_p1))) (and (= (store |v_#memory_int_348| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= 0 (+ (select |v_#memory_int_348| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= 0 (+ (select |v_#memory_int_348| ULTIMATE.start_main_p4) 1)) (= 0 (select |v_#memory_int_348| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:23:35,707 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-07 14:23:35,801 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,803 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,806 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,808 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,811 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,813 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,815 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,817 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,819 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,821 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,823 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,825 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,826 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 12 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 81 [2019-01-07 14:23:35,833 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:23:35,891 INFO L267 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-01-07 14:23:35,892 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:44, output treesize:34 [2019-01-07 14:23:35,899 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:23:35,899 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_349|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_349| ULTIMATE.start_main_p1))) (and (= 0 (+ (select |v_#memory_int_349| ULTIMATE.start_main_p4) 1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_349| ULTIMATE.start_main_p1 (+ .cse0 1))) (= 1 .cse0) (= 0 (+ (select |v_#memory_int_349| ULTIMATE.start_main_p2) 1)) (= 0 (select |v_#memory_int_349| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:23:35,899 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-07 14:23:35,983 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,984 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,986 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,987 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,988 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,989 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,990 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,991 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,992 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,993 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,994 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,995 INFO L701 Elim1Store]: detected not equals via solver [2019-01-07 14:23:35,996 INFO L478 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 12 disjoint index pairs (out of 6 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 81 [2019-01-07 14:23:36,001 INFO L267 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-01-07 14:23:36,045 INFO L267 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-01-07 14:23:36,045 INFO L202 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:44, output treesize:34 [2019-01-07 14:23:36,059 WARN L384 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-01-07 14:23:36,059 WARN L385 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_350|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p1]. (let ((.cse0 (select |v_#memory_int_350| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_350| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= 0 (+ (select |v_#memory_int_350| ULTIMATE.start_main_p4) 1)) (= (+ (select |v_#memory_int_350| ULTIMATE.start_main_p2) 1) 0) (= .cse0 0) (= (select |v_#memory_int_350| ULTIMATE.start_main_p1) 2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-01-07 14:23:36,059 WARN L386 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p1, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-01-07 14:23:36,186 INFO L273 TraceCheckUtils]: 0: Hoare triple {37803#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {37812#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-01-07 14:23:36,188 INFO L273 TraceCheckUtils]: 1: Hoare triple {37812#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {37816#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-01-07 14:23:36,190 INFO L273 TraceCheckUtils]: 2: Hoare triple {37816#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {37820#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-07 14:23:36,192 INFO L273 TraceCheckUtils]: 3: Hoare triple {37820#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37824#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-07 14:23:36,194 INFO L273 TraceCheckUtils]: 4: Hoare triple {37824#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37828#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-01-07 14:23:36,195 INFO L273 TraceCheckUtils]: 5: Hoare triple {37828#(and (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {37832#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-07 14:23:36,196 INFO L273 TraceCheckUtils]: 6: Hoare triple {37832#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p1] >= 0; {37832#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-07 14:23:36,196 INFO L273 TraceCheckUtils]: 7: Hoare triple {37832#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p2] <= 0; {37832#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-07 14:23:36,197 INFO L273 TraceCheckUtils]: 8: Hoare triple {37832#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume #memory_int[main_p3] >= 0; {37832#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-01-07 14:23:36,198 INFO L273 TraceCheckUtils]: 9: Hoare triple {37832#(and (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (exists ((ULTIMATE.start_main_p1 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 2) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume !(#memory_int[main_p4] <= 0); {37804#false} is VALID [2019-01-07 14:23:36,199 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 0 proven. 15 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:23:36,200 INFO L316 TraceCheckSpWp]: Computing backward predicates... [2019-01-07 14:23:36,340 INFO L273 TraceCheckUtils]: 9: Hoare triple {37845#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume !(#memory_int[main_p4] <= 0); {37804#false} is VALID [2019-01-07 14:23:36,340 INFO L273 TraceCheckUtils]: 8: Hoare triple {37845#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p3] >= 0; {37845#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:23:36,341 INFO L273 TraceCheckUtils]: 7: Hoare triple {37845#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p2] <= 0; {37845#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:23:36,341 INFO L273 TraceCheckUtils]: 6: Hoare triple {37845#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} assume #memory_int[main_p1] >= 0; {37845#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:23:36,343 INFO L273 TraceCheckUtils]: 5: Hoare triple {37858#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {37845#(<= (select |#memory_int| ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:23:36,344 INFO L273 TraceCheckUtils]: 4: Hoare triple {37862#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37858#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:23:36,346 INFO L273 TraceCheckUtils]: 3: Hoare triple {37866#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {37862#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:23:36,347 INFO L273 TraceCheckUtils]: 2: Hoare triple {37870#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {37866#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:23:36,348 INFO L273 TraceCheckUtils]: 1: Hoare triple {37874#(<= (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {37870#(<= (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:23:36,350 INFO L273 TraceCheckUtils]: 0: Hoare triple {37803#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {37874#(<= (select (store (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3 (+ (select (store (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 2)) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p4) 0)} is VALID [2019-01-07 14:23:36,351 INFO L134 CoverageAnalysis]: Checked inductivity of 15 backedges. 5 proven. 10 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-01-07 14:23:36,370 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-01-07 14:23:36,370 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 6, 6] total 16 [2019-01-07 14:23:36,370 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-01-07 14:23:36,370 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 10 [2019-01-07 14:23:36,370 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-01-07 14:23:36,370 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 12 states. [2019-01-07 14:23:36,403 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 19 edges. 19 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:23:36,404 INFO L459 AbstractCegarLoop]: Interpolant automaton has 12 states [2019-01-07 14:23:36,404 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 12 interpolants. [2019-01-07 14:23:36,404 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=106, Invalid=200, Unknown=0, NotChecked=0, Total=306 [2019-01-07 14:23:36,404 INFO L87 Difference]: Start difference. First operand 40 states and 140 transitions. Second operand 12 states. [2019-01-07 14:23:40,501 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:23:40,501 INFO L93 Difference]: Finished difference Result 48 states and 164 transitions. [2019-01-07 14:23:40,501 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 10 states. [2019-01-07 14:23:40,501 INFO L78 Accepts]: Start accepts. Automaton has 12 states. Word has length 10 [2019-01-07 14:23:40,502 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-01-07 14:23:40,502 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-07 14:23:40,502 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 40 transitions. [2019-01-07 14:23:40,502 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 12 states. [2019-01-07 14:23:40,503 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 40 transitions. [2019-01-07 14:23:40,503 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states and 40 transitions. [2019-01-07 14:23:40,609 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 40 edges. 40 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-01-07 14:23:40,610 INFO L225 Difference]: With dead ends: 48 [2019-01-07 14:23:40,610 INFO L226 Difference]: Without dead ends: 0 [2019-01-07 14:23:40,610 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 30 GetRequests, 8 SyntacticMatches, 3 SemanticMatches, 19 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 125 ImplicationChecksByTransitivity, 0.7s TimeCoverageRelationStatistics Valid=139, Invalid=281, Unknown=0, NotChecked=0, Total=420 [2019-01-07 14:23:40,611 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 0 states. [2019-01-07 14:23:40,611 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 0 to 0. [2019-01-07 14:23:40,611 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-01-07 14:23:40,611 INFO L82 GeneralOperation]: Start isEquivalent. First operand 0 states. Second operand 0 states. [2019-01-07 14:23:40,612 INFO L74 IsIncluded]: Start isIncluded. First operand 0 states. Second operand 0 states. [2019-01-07 14:23:40,612 INFO L87 Difference]: Start difference. First operand 0 states. Second operand 0 states. [2019-01-07 14:23:40,612 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:23:40,612 INFO L93 Difference]: Finished difference Result 0 states and 0 transitions. [2019-01-07 14:23:40,612 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2019-01-07 14:23:40,612 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:23:40,613 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:23:40,613 INFO L74 IsIncluded]: Start isIncluded. First operand 0 states. Second operand 0 states. [2019-01-07 14:23:40,613 INFO L87 Difference]: Start difference. First operand 0 states. Second operand 0 states. [2019-01-07 14:23:40,613 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-01-07 14:23:40,613 INFO L93 Difference]: Finished difference Result 0 states and 0 transitions. [2019-01-07 14:23:40,613 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2019-01-07 14:23:40,613 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:23:40,613 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-01-07 14:23:40,613 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-01-07 14:23:40,613 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-01-07 14:23:40,614 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 0 states. [2019-01-07 14:23:40,614 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 0 states to 0 states and 0 transitions. [2019-01-07 14:23:40,614 INFO L78 Accepts]: Start accepts. Automaton has 0 states and 0 transitions. Word has length 10 [2019-01-07 14:23:40,614 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-01-07 14:23:40,614 INFO L480 AbstractCegarLoop]: Abstraction has 0 states and 0 transitions. [2019-01-07 14:23:40,614 INFO L481 AbstractCegarLoop]: Interpolant automaton has 12 states. [2019-01-07 14:23:40,614 INFO L276 IsEmpty]: Start isEmpty. Operand 0 states and 0 transitions. [2019-01-07 14:23:40,614 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-01-07 14:23:40,619 INFO L343 DoubleDeckerVisitor]: Before removal of dead ends 0 states and 0 transitions. [2019-01-07 14:23:40,656 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:40,665 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:40,696 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:40,934 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:40,935 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:40,946 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:40,979 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:41,114 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:41,141 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:41,144 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:41,154 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:41,156 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:41,248 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:41,255 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:41,258 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:41,272 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:41,275 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:41,303 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:41,308 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:41,309 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:41,444 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:41,445 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:41,469 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:41,517 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:41,581 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:42,446 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:42,457 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:42,568 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:42,664 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:42,664 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:42,681 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:42,702 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:42,703 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:42,767 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:42,779 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:42,889 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:42,903 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:43,334 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:43,383 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:43,439 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:43,498 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:43,530 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:43,755 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:44,245 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:44,334 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:44,698 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:44,699 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:44,699 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:44,793 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:44,949 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:45,339 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:45,343 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:45,469 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:45,538 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:45,569 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:45,599 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:45,664 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:45,665 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:45,665 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:45,673 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:45,677 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:45,709 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:46,091 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:46,108 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:46,119 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:46,133 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:46,134 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:46,572 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:46,886 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:47,013 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:47,565 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:47,791 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:47,792 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:47,975 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:48,507 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:48,509 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:48,509 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:49,108 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:49,158 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:49,161 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:49,668 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:49,672 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:49,672 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:49,681 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:50,651 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:50,654 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:50,756 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:51,496 WARN L250 erpolLogProxyWrapper]: Already inconsistent. [2019-01-07 14:23:51,536 WARN L181 SmtUtils]: Spent 10.91 s on a formula simplification. DAG size of input: 1855 DAG size of output: 1101 [2019-01-07 14:24:06,843 WARN L181 SmtUtils]: Spent 15.13 s on a formula simplification. DAG size of input: 1000 DAG size of output: 85 [2019-01-07 14:24:06,858 INFO L448 ceAbstractionStarter]: For program point ULTIMATE.startEXIT(lines 7 9) no Hoare annotation was computed. [2019-01-07 14:24:06,859 INFO L448 ceAbstractionStarter]: For program point ULTIMATE.startErr2ASSERT_VIOLATIONASSERT(line 45) no Hoare annotation was computed. [2019-01-07 14:24:06,859 INFO L448 ceAbstractionStarter]: For program point ULTIMATE.startErr3ASSERT_VIOLATIONASSERT(line 46) no Hoare annotation was computed. [2019-01-07 14:24:06,859 INFO L448 ceAbstractionStarter]: For program point L46(line 46) no Hoare annotation was computed. [2019-01-07 14:24:06,859 INFO L448 ceAbstractionStarter]: For program point L44(line 44) no Hoare annotation was computed. [2019-01-07 14:24:06,859 INFO L444 ceAbstractionStarter]: At program point L36-1(lines 31 41) the Hoare annotation is: (let ((.cse18 (select |#memory_int| ULTIMATE.start_main_p4)) (.cse8 (select |#memory_int| ULTIMATE.start_main_p2))) (let ((.cse10 (store |#memory_int| ULTIMATE.start_main_p2 (+ .cse8 (- 1)))) (.cse6 (select |#memory_int| ULTIMATE.start_main_p1)) (.cse17 (store |#memory_int| ULTIMATE.start_main_p4 (+ .cse18 (- 1)))) (.cse19 (select |#memory_int| ULTIMATE.start_main_p3))) (let ((.cse7 (= .cse18 0)) (.cse5 (<= 0 .cse19)) (.cse2 (select .cse17 ULTIMATE.start_main_p3)) (.cse4 (store |#memory_int| ULTIMATE.start_main_p1 (+ .cse6 1))) (.cse0 (<= (+ ULTIMATE.start_main_p1 3) ULTIMATE.start_main_p4)) (.cse3 (= 0 (select .cse10 ULTIMATE.start_main_p1))) (.cse1 (= 0 (select .cse17 ULTIMATE.start_main_p2))) (.cse13 (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3))) (.cse9 (store |#memory_int| ULTIMATE.start_main_p3 (+ .cse19 1)))) (or (and (and (and .cse0 .cse1) (<= 1 .cse2) .cse3) (<= (+ (select .cse4 ULTIMATE.start_main_p4) 1) 0)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) .cse5 (<= 0 .cse6) .cse7 (<= .cse8 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (let ((.cse11 (select .cse4 ULTIMATE.start_main_p2))) (let ((.cse14 (<= .cse18 0)) (.cse15 (<= (+ .cse11 1) 0)) (.cse12 (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))) (or (and (= 0 (select .cse9 ULTIMATE.start_main_p1)) (<= 1 (select .cse10 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)) (= 0 .cse11) .cse0 .cse7) (and (and .cse12 .cse13 .cse14 .cse5 .cse15 .cse3) (not (= ULTIMATE.start_main_p4 ULTIMATE.start_main_p3))) (and (and .cse14 (let ((.cse16 (and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select .cse17 ULTIMATE.start_main_p1)) .cse12))) (or (and .cse1 (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) .cse16) (and .cse15 .cse16)))) (<= 0 .cse2))))) (and .cse0 .cse3 .cse1 (= .cse19 0) .cse13 (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p2)) (<= (+ (select .cse9 ULTIMATE.start_main_p4) 1) 0)))))) [2019-01-07 14:24:06,859 INFO L448 ceAbstractionStarter]: For program point ULTIMATE.startENTRY(lines 7 9) no Hoare annotation was computed. [2019-01-07 14:24:06,859 INFO L448 ceAbstractionStarter]: For program point ULTIMATE.startErr0ASSERT_VIOLATIONASSERT(line 43) no Hoare annotation was computed. [2019-01-07 14:24:06,860 INFO L448 ceAbstractionStarter]: For program point L14(lines 7 48) no Hoare annotation was computed. [2019-01-07 14:24:06,860 INFO L448 ceAbstractionStarter]: For program point L45(line 45) no Hoare annotation was computed. [2019-01-07 14:24:06,860 INFO L448 ceAbstractionStarter]: For program point ULTIMATE.startErr1ASSERT_VIOLATIONASSERT(line 44) no Hoare annotation was computed. [2019-01-07 14:24:06,861 WARN L170 areAnnotationChecker]: ULTIMATE.startENTRY has no Hoare annotation [2019-01-07 14:24:06,861 WARN L170 areAnnotationChecker]: ULTIMATE.startErr0ASSERT_VIOLATIONASSERT has no Hoare annotation [2019-01-07 14:24:06,861 WARN L170 areAnnotationChecker]: L44 has no Hoare annotation [2019-01-07 14:24:06,890 WARN L170 areAnnotationChecker]: L44 has no Hoare annotation [2019-01-07 14:24:06,890 WARN L170 areAnnotationChecker]: L44 has no Hoare annotation [2019-01-07 14:24:06,890 WARN L170 areAnnotationChecker]: L45 has no Hoare annotation [2019-01-07 14:24:06,890 WARN L170 areAnnotationChecker]: L45 has no Hoare annotation [2019-01-07 14:24:06,890 WARN L170 areAnnotationChecker]: L46 has no Hoare annotation [2019-01-07 14:24:06,890 WARN L170 areAnnotationChecker]: L46 has no Hoare annotation [2019-01-07 14:24:06,890 WARN L170 areAnnotationChecker]: L14 has no Hoare annotation [2019-01-07 14:24:06,890 INFO L163 areAnnotationChecker]: CFG has 4 edges. 4 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. 0 times interpolants missing. [2019-01-07 14:24:06,905 INFO L202 PluginConnector]: Adding new model speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction CFG 07.01 02:24:06 BoogieIcfgContainer [2019-01-07 14:24:06,905 INFO L132 PluginConnector]: ------------------------ END TraceAbstraction---------------------------- [2019-01-07 14:24:06,907 INFO L168 Benchmark]: Toolchain (without parser) took 490057.89 ms. Allocated memory was 1.5 GB in the beginning and 2.5 GB in the end (delta: 962.1 MB). Free memory was 1.4 GB in the beginning and 1.8 GB in the end (delta: -375.4 MB). Peak memory consumption was 586.7 MB. Max. memory is 7.1 GB. [2019-01-07 14:24:06,907 INFO L168 Benchmark]: Boogie PL CUP Parser took 0.22 ms. Allocated memory is still 1.5 GB. Free memory is still 1.4 GB. There was no memory consumed. Max. memory is 7.1 GB. [2019-01-07 14:24:06,907 INFO L168 Benchmark]: Boogie Procedure Inliner took 60.92 ms. Allocated memory is still 1.5 GB. Free memory is still 1.4 GB. There was no memory consumed. Max. memory is 7.1 GB. [2019-01-07 14:24:06,908 INFO L168 Benchmark]: Boogie Preprocessor took 25.37 ms. Allocated memory is still 1.5 GB. Free memory is still 1.4 GB. There was no memory consumed. Max. memory is 7.1 GB. [2019-01-07 14:24:06,908 INFO L168 Benchmark]: RCFGBuilder took 667.56 ms. Allocated memory is still 1.5 GB. Free memory was 1.4 GB in the beginning and 1.4 GB in the end (delta: 21.1 MB). Peak memory consumption was 21.1 MB. Max. memory is 7.1 GB. [2019-01-07 14:24:06,908 INFO L168 Benchmark]: TraceAbstraction took 489299.08 ms. Allocated memory was 1.5 GB in the beginning and 2.5 GB in the end (delta: 962.1 MB). Free memory was 1.4 GB in the beginning and 1.8 GB in the end (delta: -396.5 MB). Peak memory consumption was 565.6 MB. Max. memory is 7.1 GB. [2019-01-07 14:24:06,910 INFO L336 ainManager$Toolchain]: ####################### End [Toolchain 1] ####################### --- Results --- * Results from de.uni_freiburg.informatik.ultimate.core: - GenericResult: Assertions are enabled Assertions are enabled - StatisticsResult: Toolchain Benchmarks Benchmark results are: * Boogie PL CUP Parser took 0.22 ms. Allocated memory is still 1.5 GB. Free memory is still 1.4 GB. There was no memory consumed. Max. memory is 7.1 GB. * Boogie Procedure Inliner took 60.92 ms. Allocated memory is still 1.5 GB. Free memory is still 1.4 GB. There was no memory consumed. Max. memory is 7.1 GB. * Boogie Preprocessor took 25.37 ms. Allocated memory is still 1.5 GB. Free memory is still 1.4 GB. There was no memory consumed. Max. memory is 7.1 GB. * RCFGBuilder took 667.56 ms. Allocated memory is still 1.5 GB. Free memory was 1.4 GB in the beginning and 1.4 GB in the end (delta: 21.1 MB). Peak memory consumption was 21.1 MB. Max. memory is 7.1 GB. * TraceAbstraction took 489299.08 ms. Allocated memory was 1.5 GB in the beginning and 2.5 GB in the end (delta: 962.1 MB). Free memory was 1.4 GB in the beginning and 1.8 GB in the end (delta: -396.5 MB). Peak memory consumption was 565.6 MB. Max. memory is 7.1 GB. * Results from de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction: - PositiveResult [Line: 43]: assertion always holds For all program executions holds that assertion always holds at this location - PositiveResult [Line: 45]: assertion always holds For all program executions holds that assertion always holds at this location - PositiveResult [Line: 46]: assertion always holds For all program executions holds that assertion always holds at this location - PositiveResult [Line: 44]: assertion always holds For all program executions holds that assertion always holds at this location - AllSpecificationsHoldResult: All specifications hold 4 specifications checked. All of them hold - InvariantResult [Line: 31]: Loop Invariant Derived loop invariant: ((((((p1 + 3 <= p4 && 0 == #memory_int[p4 := #memory_int[p4] + -1][p2]) && 1 <= #memory_int[p4 := #memory_int[p4] + -1][p3]) && 0 == #memory_int[p2 := #memory_int[p2] + -1][p1]) && #memory_int[p1 := #memory_int[p1] + 1][p4] + 1 <= 0) || ((((((p3 < p4 && p2 < p3) && 0 <= #memory_int[p3]) && 0 <= #memory_int[p1]) && #memory_int[p4] == 0) && #memory_int[p2] <= 0) && p1 < p2)) || ((((((0 == #memory_int[p3 := #memory_int[p3] + 1][p1] && 1 <= #memory_int[p2 := #memory_int[p2] + -1][p3]) && !(p2 == p4)) && 0 == #memory_int[p1 := #memory_int[p1] + 1][p2]) && p1 + 3 <= p4) && #memory_int[p4] == 0) || ((((((!(p1 == p4) && !(p1 == p3)) && #memory_int[p4] <= 0) && 0 <= #memory_int[p3]) && #memory_int[p1 := #memory_int[p1] + 1][p2] + 1 <= 0) && 0 == #memory_int[p2 := #memory_int[p2] + -1][p1]) && !(p4 == p3))) || ((#memory_int[p4] <= 0 && (((0 == #memory_int[p4 := #memory_int[p4] + -1][p2] && !(p2 == p3)) && (!(p1 == p2) && 1 <= #memory_int[p4 := #memory_int[p4] + -1][p1]) && !(p1 == p4)) || (#memory_int[p1 := #memory_int[p1] + 1][p2] + 1 <= 0 && (!(p1 == p2) && 1 <= #memory_int[p4 := #memory_int[p4] + -1][p1]) && !(p1 == p4)))) && 0 <= #memory_int[p4 := #memory_int[p4] + -1][p3])) || ((((((p1 + 3 <= p4 && 0 == #memory_int[p2 := #memory_int[p2] + -1][p1]) && 0 == #memory_int[p4 := #memory_int[p4] + -1][p2]) && #memory_int[p3] == 0) && !(p1 == p3)) && !(p3 == p2)) && #memory_int[p3 := #memory_int[p3] + 1][p4] + 1 <= 0) - StatisticsResult: Ultimate Automizer benchmark data CFG has 1 procedures, 11 locations, 4 error locations. SAFE Result, 489.1s OverallTime, 57 OverallIterations, 2 TraceHistogramMax, 196.1s AutomataDifference, 0.0s DeadEndRemovalTime, 26.2s HoareAnnotationTime, HoareTripleCheckerStatistics: 210 SDtfs, 887 SDslu, 1 SDs, 0 SdLazy, 8756 SolverSat, 645 SolverUnsat, 0 SolverUnknown, 0 SolverNotchecked, 16.3s Time, PredicateUnifierStatistics: 0 DeclaredPredicates, 875 GetRequests, 174 SyntacticMatches, 38 SemanticMatches, 663 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 2487 ImplicationChecksByTransitivity, 25.9s Time, 0.0s BasicInterpolantAutomatonTime, BiggestAbstraction: size=367occurred in iteration=46, traceCheckStatistics: No data available, InterpolantConsolidationStatistics: No data available, PathInvariantsStatistics: No data available, 0/0 InterpolantCoveringCapability, TotalInterpolationStatistics: No data available, 0.9s AbstIntTime, 43 AbstIntIterations, 0 AbstIntStrong, NaN AbsIntWeakeningRatio, NaN AbsIntAvgWeakeningVarsNumRemoved, NaN AbsIntAvgWeakenedConjuncts, 0.0s DumpTime, AutomataMinimizationStatistics: 137.0s AutomataMinimizationTime, 57 MinimizatonAttempts, 1522 StatesRemovedByMinimization, 56 NontrivialMinimizations, HoareAnnotationStatistics: 0.0s HoareAnnotationTime, 1 LocationsWithAnnotation, 1 PreInvPairs, 64 NumberOfFragments, 342 HoareAnnotationTreeSize, 1 FomulaSimplifications, 181006621 FormulaSimplificationTreeSizeReduction, 10.9s HoareSimplificationTime, 1 FomulaSimplificationsInter, 10044512 FormulaSimplificationTreeSizeReductionInter, 15.1s HoareSimplificationTimeInter, RefinementEngineStatistics: TraceCheckStatistics: 0.0s SsaConstructionTime, 0.5s SatisfiabilityAnalysisTime, 124.8s InterpolantComputationTime, 648 NumberOfCodeBlocks, 648 NumberOfCodeBlocksAsserted, 129 NumberOfCheckSat, 802 ConstructedInterpolants, 235 QuantifiedInterpolants, 90984 SizeOfPredicates, 162 NumberOfNonLiveVariables, 1237 ConjunctsInSsa, 390 ConjunctsInUnsatCore, 165 InterpolantComputations, 7 PerfectInterpolantSequences, 158/841 InterpolantCoveringCapability, InvariantSynthesisStatistics: No data available, InterpolantConsolidationStatistics: No data available, ReuseStatistics: No data available RESULT: Ultimate proved your program to be correct! Received shutdown request...