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-a9d37a5-m [2019-02-28 13:17:35,683 INFO L170 SettingsManager]: Resetting all preferences to default values... [2019-02-28 13:17:35,686 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2019-02-28 13:17:35,702 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2019-02-28 13:17:35,702 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2019-02-28 13:17:35,703 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2019-02-28 13:17:35,705 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2019-02-28 13:17:35,706 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2019-02-28 13:17:35,709 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2019-02-28 13:17:35,710 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2019-02-28 13:17:35,712 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2019-02-28 13:17:35,712 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2019-02-28 13:17:35,713 INFO L174 SettingsManager]: Resetting PEA to Boogie preferences to default values [2019-02-28 13:17:35,714 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2019-02-28 13:17:35,715 INFO L174 SettingsManager]: Resetting ChcToBoogie preferences to default values [2019-02-28 13:17:35,716 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2019-02-28 13:17:35,719 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2019-02-28 13:17:35,721 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2019-02-28 13:17:35,732 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2019-02-28 13:17:35,736 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2019-02-28 13:17:35,738 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2019-02-28 13:17:35,742 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2019-02-28 13:17:35,746 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2019-02-28 13:17:35,747 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2019-02-28 13:17:35,748 INFO L174 SettingsManager]: Resetting TreeAutomizer preferences to default values [2019-02-28 13:17:35,749 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2019-02-28 13:17:35,750 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2019-02-28 13:17:35,750 INFO L174 SettingsManager]: Resetting ReqPrinter preferences to default values [2019-02-28 13:17:35,755 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2019-02-28 13:17:35,756 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2019-02-28 13:17:35,756 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2019-02-28 13:17:35,758 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2019-02-28 13:17:35,759 INFO L177 SettingsManager]: ReqParser provides no preferences, ignoring... [2019-02-28 13:17:35,759 INFO L174 SettingsManager]: Resetting SmtParser preferences to default values [2019-02-28 13:17:35,760 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2019-02-28 13:17:35,761 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2019-02-28 13:17:35,761 INFO L98 SettingsManager]: Beginning loading settings from /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/settings/ai/array-bench/reach_32bit_compound_exp_cong.epf [2019-02-28 13:17:35,784 INFO L110 SettingsManager]: Loading preferences was successful [2019-02-28 13:17:35,784 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2019-02-28 13:17:35,785 INFO L131 SettingsManager]: Preferences of Boogie Preprocessor differ from their defaults: [2019-02-28 13:17:35,785 INFO L133 SettingsManager]: * Show backtranslation warnings=false [2019-02-28 13:17:35,785 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2019-02-28 13:17:35,785 INFO L133 SettingsManager]: * User list type=DISABLED [2019-02-28 13:17:35,786 INFO L133 SettingsManager]: * Inline calls to unimplemented procedures=true [2019-02-28 13:17:35,786 INFO L131 SettingsManager]: Preferences of Abstract Interpretation differ from their defaults: [2019-02-28 13:17:35,787 INFO L133 SettingsManager]: * Explicit value domain=true [2019-02-28 13:17:35,787 INFO L133 SettingsManager]: * Abstract domain for RCFG-of-the-future=PoormanAbstractDomain [2019-02-28 13:17:35,787 INFO L133 SettingsManager]: * Octagon Domain=false [2019-02-28 13:17:35,787 INFO L133 SettingsManager]: * Abstract domain=CompoundDomain [2019-02-28 13:17:35,787 INFO L133 SettingsManager]: * Check feasibility of abstract posts with an SMT solver=true [2019-02-28 13:17:35,787 INFO L133 SettingsManager]: * Interval Domain=false [2019-02-28 13:17:35,788 INFO L131 SettingsManager]: Preferences of BlockEncodingV2 differ from their defaults: [2019-02-28 13:17:35,788 INFO L133 SettingsManager]: * Create parallel compositions if possible=false [2019-02-28 13:17:35,789 INFO L133 SettingsManager]: * Use SBE=true [2019-02-28 13:17:35,790 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2019-02-28 13:17:35,790 INFO L133 SettingsManager]: * sizeof long=4 [2019-02-28 13:17:35,790 INFO L133 SettingsManager]: * Overapproximate operations on floating types=true [2019-02-28 13:17:35,791 INFO L133 SettingsManager]: * sizeof POINTER=4 [2019-02-28 13:17:35,791 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2019-02-28 13:17:35,791 INFO L133 SettingsManager]: * Pointer to allocated memory at dereference=IGNORE [2019-02-28 13:17:35,791 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2019-02-28 13:17:35,791 INFO L133 SettingsManager]: * Check array bounds for arrays that are off heap=IGNORE [2019-02-28 13:17:35,792 INFO L133 SettingsManager]: * sizeof long double=12 [2019-02-28 13:17:35,792 INFO L133 SettingsManager]: * Check if freed pointer was valid=false [2019-02-28 13:17:35,792 INFO L133 SettingsManager]: * Pointer base address is valid at dereference=IGNORE [2019-02-28 13:17:35,792 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2019-02-28 13:17:35,793 INFO L133 SettingsManager]: * Size of a code block=SequenceOfStatements [2019-02-28 13:17:35,793 INFO L133 SettingsManager]: * SMT solver=External_DefaultMode [2019-02-28 13:17:35,793 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:16092 -smt2 -in -t:200000 [2019-02-28 13:17:35,793 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2019-02-28 13:17:35,793 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2019-02-28 13:17:35,794 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2019-02-28 13:17:35,794 INFO L133 SettingsManager]: * Trace refinement strategy=TAIPAN [2019-02-28 13:17:35,794 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2019-02-28 13:17:35,794 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:16092 -smt2 -in [2019-02-28 13:17:35,795 INFO L133 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2019-02-28 13:17:35,795 INFO L133 SettingsManager]: * Abstract interpretation Mode=USE_PREDICATES [2019-02-28 13:17:35,826 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2019-02-28 13:17:35,839 INFO L258 ainManager$Toolchain]: [Toolchain 1]: Applicable parser(s) successfully (re)initialized [2019-02-28 13:17:35,845 INFO L214 ainManager$Toolchain]: [Toolchain 1]: Toolchain selected. [2019-02-28 13:17:35,847 INFO L271 PluginConnector]: Initializing Boogie PL CUP Parser... [2019-02-28 13:17:35,848 INFO L276 PluginConnector]: Boogie PL CUP Parser initialized [2019-02-28 13:17:35,848 INFO L418 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/programs/heapseparator/speedup-poc-dd-4-limited.bpl [2019-02-28 13:17:35,849 INFO L111 BoogieParser]: Parsing: '/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/programs/heapseparator/speedup-poc-dd-4-limited.bpl' [2019-02-28 13:17:35,907 INFO L296 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2019-02-28 13:17:35,910 INFO L131 ToolchainWalker]: Walking toolchain with 4 elements. [2019-02-28 13:17:35,910 INFO L113 PluginConnector]: ------------------------Boogie Procedure Inliner---------------------------- [2019-02-28 13:17:35,910 INFO L271 PluginConnector]: Initializing Boogie Procedure Inliner... [2019-02-28 13:17:35,911 INFO L276 PluginConnector]: Boogie Procedure Inliner initialized [2019-02-28 13:17:35,929 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 28.02 01:17:35" (1/1) ... [2019-02-28 13:17:35,945 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 28.02 01:17:35" (1/1) ... [2019-02-28 13:17:35,979 INFO L132 PluginConnector]: ------------------------ END Boogie Procedure Inliner---------------------------- [2019-02-28 13:17:35,980 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2019-02-28 13:17:35,980 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2019-02-28 13:17:35,980 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2019-02-28 13:17:35,992 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 28.02 01:17:35" (1/1) ... [2019-02-28 13:17:35,992 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 28.02 01:17:35" (1/1) ... [2019-02-28 13:17:35,995 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 28.02 01:17:35" (1/1) ... [2019-02-28 13:17:35,995 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 28.02 01:17:35" (1/1) ... [2019-02-28 13:17:35,999 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 28.02 01:17:35" (1/1) ... [2019-02-28 13:17:36,009 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 28.02 01:17:35" (1/1) ... [2019-02-28 13:17:36,010 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 28.02 01:17:35" (1/1) ... [2019-02-28 13:17:36,016 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2019-02-28 13:17:36,017 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2019-02-28 13:17:36,017 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2019-02-28 13:17:36,017 INFO L276 PluginConnector]: RCFGBuilder initialized [2019-02-28 13:17:36,018 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 28.02 01:17:35" (1/1) ... No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:16092 -smt2 -in -t:200000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:16092 -smt2 -in -t:200000 [2019-02-28 13:17:36,092 INFO L130 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2019-02-28 13:17:36,093 INFO L138 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2019-02-28 13:17:36,578 INFO L281 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2019-02-28 13:17:36,579 INFO L286 CfgBuilder]: Removed 11 assue(true) statements. [2019-02-28 13:17:36,580 INFO L202 PluginConnector]: Adding new model speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 28.02 01:17:36 BoogieIcfgContainer [2019-02-28 13:17:36,580 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2019-02-28 13:17:36,581 INFO L113 PluginConnector]: ------------------------TraceAbstraction---------------------------- [2019-02-28 13:17:36,582 INFO L271 PluginConnector]: Initializing TraceAbstraction... [2019-02-28 13:17:36,585 INFO L276 PluginConnector]: TraceAbstraction initialized [2019-02-28 13:17:36,585 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 28.02 01:17:35" (1/2) ... [2019-02-28 13:17:36,586 INFO L205 PluginConnector]: Invalid model from TraceAbstraction for observer de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction.TraceAbstractionObserver@2e286f2 and model type speedup-poc-dd-4-limited.bpl de.uni_freiburg.informatik.ultimate.plugins.generator.traceabstraction AST 28.02 01:17:36, skipping insertion in model container [2019-02-28 13:17:36,587 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 28.02 01:17:36" (2/2) ... [2019-02-28 13:17:36,588 INFO L112 eAbstractionObserver]: Analyzing ICFG speedup-poc-dd-4-limited.bpl [2019-02-28 13:17:36,597 INFO L156 ceAbstractionStarter]: Automizer settings: Hoare:true NWA Interpolation:FPandBP Determinization: PREDICATE_ABSTRACTION [2019-02-28 13:17:36,605 INFO L168 ceAbstractionStarter]: Appying trace abstraction to program that has 4 error locations. [2019-02-28 13:17:36,618 INFO L257 AbstractCegarLoop]: Starting to check reachability of 4 error locations. [2019-02-28 13:17:36,651 INFO L382 AbstractCegarLoop]: Interprodecural is true [2019-02-28 13:17:36,651 INFO L383 AbstractCegarLoop]: Hoare is true [2019-02-28 13:17:36,652 INFO L384 AbstractCegarLoop]: Compute interpolants for FPandBP [2019-02-28 13:17:36,652 INFO L385 AbstractCegarLoop]: Backedges is STRAIGHT_LINE [2019-02-28 13:17:36,652 INFO L386 AbstractCegarLoop]: Determinization is PREDICATE_ABSTRACTION [2019-02-28 13:17:36,652 INFO L387 AbstractCegarLoop]: Difference is false [2019-02-28 13:17:36,652 INFO L388 AbstractCegarLoop]: Minimize is MINIMIZE_SEVPA [2019-02-28 13:17:36,653 INFO L393 AbstractCegarLoop]: ======== Iteration 0==of CEGAR loop == AllErrorsAtOnce======== [2019-02-28 13:17:36,666 INFO L276 IsEmpty]: Start isEmpty. Operand 11 states. [2019-02-28 13:17:36,672 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 3 [2019-02-28 13:17:36,672 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:17:36,673 INFO L402 BasicCegarLoop]: trace histogram [1, 1] [2019-02-28 13:17:36,676 INFO L423 AbstractCegarLoop]: === Iteration 1 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:17:36,682 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:17:36,682 INFO L82 PathProgramCache]: Analyzing trace with hash 980, now seen corresponding path program 1 times [2019-02-28 13:17:36,685 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:17:36,730 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:17:36,730 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:17:36,731 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:17:36,731 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:17:36,779 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:17:36,915 INFO L273 TraceCheckUtils]: 0: Hoare triple {14#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {16#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-02-28 13:17:36,921 INFO L273 TraceCheckUtils]: 1: Hoare triple {16#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {15#false} is VALID [2019-02-28 13:17:36,923 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:17:36,925 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2019-02-28 13:17:36,925 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [1] imperfect sequences [] total 1 [2019-02-28 13:17:36,926 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-02-28 13:17:36,930 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 2 [2019-02-28 13:17:36,931 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:17:36,934 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states. [2019-02-28 13:17:36,954 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 2 edges. 2 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:17:36,954 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2019-02-28 13:17:36,963 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2019-02-28 13:17:36,964 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-02-28 13:17:36,967 INFO L87 Difference]: Start difference. First operand 11 states. Second operand 3 states. [2019-02-28 13:17:37,245 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:17:37,246 INFO L93 Difference]: Finished difference Result 21 states and 27 transitions. [2019-02-28 13:17:37,246 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-02-28 13:17:37,246 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 2 [2019-02-28 13:17:37,246 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:17:37,247 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-02-28 13:17:37,251 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 27 transitions. [2019-02-28 13:17:37,251 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-02-28 13:17:37,266 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 27 transitions. [2019-02-28 13:17:37,267 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 27 transitions. [2019-02-28 13:17:37,466 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 27 edges. 27 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:17:37,476 INFO L225 Difference]: With dead ends: 21 [2019-02-28 13:17:37,476 INFO L226 Difference]: Without dead ends: 16 [2019-02-28 13:17:37,479 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 1 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 1 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-02-28 13:17:37,497 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 16 states. [2019-02-28 13:17:37,541 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 16 to 10. [2019-02-28 13:17:37,541 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:17:37,542 INFO L82 GeneralOperation]: Start isEquivalent. First operand 16 states. Second operand 10 states. [2019-02-28 13:17:37,542 INFO L74 IsIncluded]: Start isIncluded. First operand 16 states. Second operand 10 states. [2019-02-28 13:17:37,542 INFO L87 Difference]: Start difference. First operand 16 states. Second operand 10 states. [2019-02-28 13:17:37,545 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:17:37,546 INFO L93 Difference]: Finished difference Result 16 states and 22 transitions. [2019-02-28 13:17:37,546 INFO L276 IsEmpty]: Start isEmpty. Operand 16 states and 22 transitions. [2019-02-28 13:17:37,546 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:17:37,547 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:17:37,547 INFO L74 IsIncluded]: Start isIncluded. First operand 10 states. Second operand 16 states. [2019-02-28 13:17:37,547 INFO L87 Difference]: Start difference. First operand 10 states. Second operand 16 states. [2019-02-28 13:17:37,549 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:17:37,550 INFO L93 Difference]: Finished difference Result 16 states and 22 transitions. [2019-02-28 13:17:37,550 INFO L276 IsEmpty]: Start isEmpty. Operand 16 states and 22 transitions. [2019-02-28 13:17:37,550 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:17:37,551 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:17:37,551 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:17:37,551 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:17:37,551 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-28 13:17:37,553 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 10 states to 10 states and 17 transitions. [2019-02-28 13:17:37,555 INFO L78 Accepts]: Start accepts. Automaton has 10 states and 17 transitions. Word has length 2 [2019-02-28 13:17:37,555 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:17:37,555 INFO L480 AbstractCegarLoop]: Abstraction has 10 states and 17 transitions. [2019-02-28 13:17:37,555 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2019-02-28 13:17:37,555 INFO L276 IsEmpty]: Start isEmpty. Operand 10 states and 17 transitions. [2019-02-28 13:17:37,556 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-02-28 13:17:37,556 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:17:37,556 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-02-28 13:17:37,556 INFO L423 AbstractCegarLoop]: === Iteration 2 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:17:37,557 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:17:37,557 INFO L82 PathProgramCache]: Analyzing trace with hash 30306, now seen corresponding path program 1 times [2019-02-28 13:17:37,557 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:17:37,558 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:17:37,558 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:17:37,559 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:17:37,559 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:17:37,573 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:17:37,729 INFO L273 TraceCheckUtils]: 0: Hoare triple {86#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {88#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-28 13:17:37,730 INFO L273 TraceCheckUtils]: 1: Hoare triple {88#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {89#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-02-28 13:17:37,749 INFO L273 TraceCheckUtils]: 2: Hoare triple {89#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {87#false} is VALID [2019-02-28 13:17:37,750 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:17:37,750 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:17:37,750 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:17:37,752 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 4 with the following transitions: [2019-02-28 13:17:37,753 INFO L207 CegarAbsIntRunner]: [0], [16], [19] [2019-02-28 13:17:37,792 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-28 13:17:37,793 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-28 13:17:37,885 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-28 13:17:37,886 INFO L272 AbstractInterpreter]: Visited 3 different actions 3 times. Never merged. Never widened. Performed 50 root evaluator evaluations with a maximum evaluation depth of 3. Performed 50 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-02-28 13:17:37,890 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:17:37,891 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-28 13:17:37,892 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:17:37,892 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 2 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:17:37,903 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:17:37,904 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-28 13:17:37,931 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:17:37,933 INFO L256 TraceCheckSpWp]: Trace formula consists of 20 conjuncts, 6 conjunts are in the unsatisfiable core [2019-02-28 13:17:37,952 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:17:37,957 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:17:38,117 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:17:38,129 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:38,131 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-02-28 13:17:38,149 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:38,153 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:38,158 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:38,160 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-02-28 13:17:38,255 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:38,257 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:38,259 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:38,262 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:38,264 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:38,265 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:38,268 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 21 [2019-02-28 13:17:38,274 INFO L315 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-28 13:17:38,283 INFO L315 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:17:38,330 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:17:38,344 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:17:38,430 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:17:38,431 INFO L209 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-02-28 13:17:38,438 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:17:38,439 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_22|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_22| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-28 13:17:38,439 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-28 13:17:38,960 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:38,963 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:38,965 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:38,966 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:38,968 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:38,970 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:17:38,973 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 26 [2019-02-28 13:17:38,983 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:17:39,023 INFO L315 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-02-28 13:17:39,023 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:32 [2019-02-28 13:21:02,384 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:21:02,385 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_23|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_23| ULTIMATE.start_main_p4))) (and (= .cse0 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_23| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_23| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_23| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_23| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-28 13:21:02,385 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-28 13:21:03,274 INFO L273 TraceCheckUtils]: 0: Hoare triple {86#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {93#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-28 13:21:03,294 INFO L273 TraceCheckUtils]: 1: Hoare triple {93#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {97#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-02-28 13:21:03,295 INFO L273 TraceCheckUtils]: 2: Hoare triple {97#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} assume !(#memory_int[main_p1] >= 0); {87#false} is VALID [2019-02-28 13:21:03,296 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:21:03,296 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-28 13:21:03,344 INFO L273 TraceCheckUtils]: 2: Hoare triple {101#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {87#false} is VALID [2019-02-28 13:21:03,346 INFO L273 TraceCheckUtils]: 1: Hoare triple {105#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {101#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:21:03,351 INFO L273 TraceCheckUtils]: 0: Hoare triple {86#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {105#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:21:03,351 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:21:03,374 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-28 13:21:03,375 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-02-28 13:21:03,376 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-28 13:21:03,376 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-02-28 13:21:03,377 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:21:03,378 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-02-28 13:21:03,406 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 6 edges. 6 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:21:03,406 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-02-28 13:21:03,406 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-02-28 13:21:03,406 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-02-28 13:21:03,407 INFO L87 Difference]: Start difference. First operand 10 states and 17 transitions. Second operand 6 states. [2019-02-28 13:21:03,985 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:21:03,985 INFO L93 Difference]: Finished difference Result 31 states and 44 transitions. [2019-02-28 13:21:03,986 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-02-28 13:21:03,986 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-02-28 13:21:03,986 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:21:03,986 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-02-28 13:21:03,988 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 44 transitions. [2019-02-28 13:21:03,988 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-02-28 13:21:03,990 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 44 transitions. [2019-02-28 13:21:03,990 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 44 transitions. [2019-02-28 13:21:04,131 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 44 edges. 44 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:21:04,135 INFO L225 Difference]: With dead ends: 31 [2019-02-28 13:21:04,135 INFO L226 Difference]: Without dead ends: 28 [2019-02-28 13:21:04,136 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 7 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 1.3s TimeCoverageRelationStatistics Valid=31, Invalid=41, Unknown=0, NotChecked=0, Total=72 [2019-02-28 13:21:04,136 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 28 states. [2019-02-28 13:21:04,220 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 28 to 13. [2019-02-28 13:21:04,221 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:21:04,221 INFO L82 GeneralOperation]: Start isEquivalent. First operand 28 states. Second operand 13 states. [2019-02-28 13:21:04,221 INFO L74 IsIncluded]: Start isIncluded. First operand 28 states. Second operand 13 states. [2019-02-28 13:21:04,221 INFO L87 Difference]: Start difference. First operand 28 states. Second operand 13 states. [2019-02-28 13:21:04,224 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:21:04,224 INFO L93 Difference]: Finished difference Result 28 states and 40 transitions. [2019-02-28 13:21:04,225 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 40 transitions. [2019-02-28 13:21:04,225 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:21:04,225 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:21:04,226 INFO L74 IsIncluded]: Start isIncluded. First operand 13 states. Second operand 28 states. [2019-02-28 13:21:04,226 INFO L87 Difference]: Start difference. First operand 13 states. Second operand 28 states. [2019-02-28 13:21:04,228 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:21:04,229 INFO L93 Difference]: Finished difference Result 28 states and 40 transitions. [2019-02-28 13:21:04,229 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 40 transitions. [2019-02-28 13:21:04,229 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:21:04,230 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:21:04,230 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:21:04,230 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:21:04,230 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2019-02-28 13:21:04,232 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 25 transitions. [2019-02-28 13:21:04,232 INFO L78 Accepts]: Start accepts. Automaton has 13 states and 25 transitions. Word has length 3 [2019-02-28 13:21:04,232 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:21:04,232 INFO L480 AbstractCegarLoop]: Abstraction has 13 states and 25 transitions. [2019-02-28 13:21:04,232 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-02-28 13:21:04,232 INFO L276 IsEmpty]: Start isEmpty. Operand 13 states and 25 transitions. [2019-02-28 13:21:04,233 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-02-28 13:21:04,233 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:21:04,233 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-02-28 13:21:04,234 INFO L423 AbstractCegarLoop]: === Iteration 3 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:21:04,234 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:21:04,234 INFO L82 PathProgramCache]: Analyzing trace with hash 30432, now seen corresponding path program 1 times [2019-02-28 13:21:04,234 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:21:04,235 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:21:04,235 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:21:04,236 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:21:04,236 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:21:04,245 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:21:04,293 INFO L273 TraceCheckUtils]: 0: Hoare triple {217#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {219#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:21:04,295 INFO L273 TraceCheckUtils]: 1: Hoare triple {219#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {219#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:21:04,303 INFO L273 TraceCheckUtils]: 2: Hoare triple {219#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {218#false} is VALID [2019-02-28 13:21:04,304 INFO L134 CoverageAnalysis]: Checked inductivity of 0 backedges. 0 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:21:04,304 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 0 imperfect interpolant sequences. [2019-02-28 13:21:04,304 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [1] imperfect sequences [] total 1 [2019-02-28 13:21:04,304 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-02-28 13:21:04,305 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 3 [2019-02-28 13:21:04,305 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:21:04,305 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states. [2019-02-28 13:21:04,310 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 3 edges. 3 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:21:04,310 INFO L459 AbstractCegarLoop]: Interpolant automaton has 3 states [2019-02-28 13:21:04,311 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 3 interpolants. [2019-02-28 13:21:04,311 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-02-28 13:21:04,311 INFO L87 Difference]: Start difference. First operand 13 states and 25 transitions. Second operand 3 states. [2019-02-28 13:21:04,400 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:21:04,401 INFO L93 Difference]: Finished difference Result 15 states and 25 transitions. [2019-02-28 13:21:04,401 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-02-28 13:21:04,401 INFO L78 Accepts]: Start accepts. Automaton has 3 states. Word has length 3 [2019-02-28 13:21:04,401 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:21:04,401 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-02-28 13:21:04,402 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 20 transitions. [2019-02-28 13:21:04,402 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 3 states. [2019-02-28 13:21:04,403 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 20 transitions. [2019-02-28 13:21:04,403 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 20 transitions. [2019-02-28 13:21:04,429 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 20 edges. 20 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:21:04,431 INFO L225 Difference]: With dead ends: 15 [2019-02-28 13:21:04,431 INFO L226 Difference]: Without dead ends: 14 [2019-02-28 13:21:04,432 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 1 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 1 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 0 ImplicationChecksByTransitivity, 0.0s TimeCoverageRelationStatistics Valid=3, Invalid=3, Unknown=0, NotChecked=0, Total=6 [2019-02-28 13:21:04,432 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 14 states. [2019-02-28 13:21:04,462 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 14 to 13. [2019-02-28 13:21:04,462 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:21:04,463 INFO L82 GeneralOperation]: Start isEquivalent. First operand 14 states. Second operand 13 states. [2019-02-28 13:21:04,463 INFO L74 IsIncluded]: Start isIncluded. First operand 14 states. Second operand 13 states. [2019-02-28 13:21:04,463 INFO L87 Difference]: Start difference. First operand 14 states. Second operand 13 states. [2019-02-28 13:21:04,465 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:21:04,467 INFO L93 Difference]: Finished difference Result 14 states and 24 transitions. [2019-02-28 13:21:04,467 INFO L276 IsEmpty]: Start isEmpty. Operand 14 states and 24 transitions. [2019-02-28 13:21:04,467 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:21:04,468 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:21:04,468 INFO L74 IsIncluded]: Start isIncluded. First operand 13 states. Second operand 14 states. [2019-02-28 13:21:04,468 INFO L87 Difference]: Start difference. First operand 13 states. Second operand 14 states. [2019-02-28 13:21:04,469 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:21:04,472 INFO L93 Difference]: Finished difference Result 14 states and 24 transitions. [2019-02-28 13:21:04,472 INFO L276 IsEmpty]: Start isEmpty. Operand 14 states and 24 transitions. [2019-02-28 13:21:04,473 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:21:04,473 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:21:04,473 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:21:04,473 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:21:04,473 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 13 states. [2019-02-28 13:21:04,474 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 13 states to 13 states and 24 transitions. [2019-02-28 13:21:04,475 INFO L78 Accepts]: Start accepts. Automaton has 13 states and 24 transitions. Word has length 3 [2019-02-28 13:21:04,475 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:21:04,475 INFO L480 AbstractCegarLoop]: Abstraction has 13 states and 24 transitions. [2019-02-28 13:21:04,475 INFO L481 AbstractCegarLoop]: Interpolant automaton has 3 states. [2019-02-28 13:21:04,475 INFO L276 IsEmpty]: Start isEmpty. Operand 13 states and 24 transitions. [2019-02-28 13:21:04,476 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-02-28 13:21:04,476 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:21:04,476 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-02-28 13:21:04,476 INFO L423 AbstractCegarLoop]: === Iteration 4 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:21:04,477 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:21:04,477 INFO L82 PathProgramCache]: Analyzing trace with hash 29996, now seen corresponding path program 1 times [2019-02-28 13:21:04,477 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:21:04,478 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:21:04,478 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:21:04,478 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:21:04,478 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:21:04,492 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:21:04,572 INFO L273 TraceCheckUtils]: 0: Hoare triple {284#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {286#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-02-28 13:21:04,574 INFO L273 TraceCheckUtils]: 1: Hoare triple {286#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {287#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:21:04,581 INFO L273 TraceCheckUtils]: 2: Hoare triple {287#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {285#false} is VALID [2019-02-28 13:21:04,581 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:21:04,581 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:21:04,582 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:21:04,582 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 4 with the following transitions: [2019-02-28 13:21:04,582 INFO L207 CegarAbsIntRunner]: [0], [6], [19] [2019-02-28 13:21:04,584 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-28 13:21:04,584 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-28 13:21:04,599 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-28 13:21:04,599 INFO L272 AbstractInterpreter]: Visited 3 different actions 3 times. Never merged. Never widened. Performed 50 root evaluator evaluations with a maximum evaluation depth of 3. Performed 50 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-02-28 13:21:04,599 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:21:04,600 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-28 13:21:04,600 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:21:04,600 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 3 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 3 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:21:04,611 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:21:04,612 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-28 13:21:04,620 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:21:04,621 INFO L256 TraceCheckSpWp]: Trace formula consists of 20 conjuncts, 6 conjunts are in the unsatisfiable core [2019-02-28 13:21:04,623 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:21:04,624 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:21:04,668 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:21:04,691 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:21:04,693 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-02-28 13:21:04,713 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:21:04,715 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:21:04,717 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:21:04,720 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-02-28 13:21:04,766 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:21:04,767 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:21:04,769 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:21:04,770 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:21:04,771 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:21:04,773 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:21:04,776 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 21 [2019-02-28 13:21:04,778 INFO L315 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-28 13:21:04,796 INFO L315 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:21:04,807 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:21:04,821 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:21:04,841 INFO L315 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-02-28 13:21:04,841 INFO L209 ElimStorePlain]: Needed 5 recursive calls to eliminate 4 variables, input treesize:25, output treesize:30 [2019-02-28 13:21:04,851 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:21:04,851 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_25|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_25| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-28 13:21:04,852 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-28 13:21:04,911 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:21:04,913 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:21:04,915 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:21:04,916 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:21:04,917 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:21:04,918 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:21:04,921 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 26 [2019-02-28 13:21:04,925 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:21:04,948 INFO L315 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-02-28 13:21:04,949 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-02-28 13:21:04,959 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:21:04,959 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_26|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_26| ULTIMATE.start_main_p1))) (and (= |#memory_int| (store |v_#memory_int_26| ULTIMATE.start_main_p1 (+ .cse0 1))) (= 0 .cse0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_26| ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_26| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |v_#memory_int_26| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-28 13:21:04,959 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-28 13:21:04,992 INFO L273 TraceCheckUtils]: 0: Hoare triple {284#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {291#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-28 13:21:04,995 INFO L273 TraceCheckUtils]: 1: Hoare triple {291#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {295#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-28 13:21:04,996 INFO L273 TraceCheckUtils]: 2: Hoare triple {295#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {285#false} is VALID [2019-02-28 13:21:04,996 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:21:04,996 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-28 13:21:05,016 INFO L273 TraceCheckUtils]: 2: Hoare triple {299#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {285#false} is VALID [2019-02-28 13:21:05,018 INFO L273 TraceCheckUtils]: 1: Hoare triple {303#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {299#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:21:05,020 INFO L273 TraceCheckUtils]: 0: Hoare triple {284#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {303#(<= 0 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1))} is VALID [2019-02-28 13:21:05,020 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:21:05,041 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-02-28 13:21:05,042 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [2, 2] total 6 [2019-02-28 13:21:05,042 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-02-28 13:21:05,042 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 3 [2019-02-28 13:21:05,042 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:21:05,042 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-02-28 13:21:05,047 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 3 edges. 3 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:21:05,048 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-02-28 13:21:05,048 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-02-28 13:21:05,048 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-02-28 13:21:05,049 INFO L87 Difference]: Start difference. First operand 13 states and 24 transitions. Second operand 4 states. [2019-02-28 13:21:05,154 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:21:05,154 INFO L93 Difference]: Finished difference Result 18 states and 41 transitions. [2019-02-28 13:21:05,155 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 4 states. [2019-02-28 13:21:05,155 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 3 [2019-02-28 13:21:05,155 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:21:05,155 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-02-28 13:21:05,157 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 24 transitions. [2019-02-28 13:21:05,157 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-02-28 13:21:05,158 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 4 states to 4 states and 24 transitions. [2019-02-28 13:21:05,159 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states and 24 transitions. [2019-02-28 13:21:05,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-02-28 13:21:05,215 INFO L225 Difference]: With dead ends: 18 [2019-02-28 13:21:05,215 INFO L226 Difference]: Without dead ends: 17 [2019-02-28 13:21:05,216 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 6 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 6 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 9 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-02-28 13:21:05,216 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 17 states. [2019-02-28 13:21:05,345 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 17 to 16. [2019-02-28 13:21:05,345 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:21:05,345 INFO L82 GeneralOperation]: Start isEquivalent. First operand 17 states. Second operand 16 states. [2019-02-28 13:21:05,345 INFO L74 IsIncluded]: Start isIncluded. First operand 17 states. Second operand 16 states. [2019-02-28 13:21:05,346 INFO L87 Difference]: Start difference. First operand 17 states. Second operand 16 states. [2019-02-28 13:21:05,347 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:21:05,347 INFO L93 Difference]: Finished difference Result 17 states and 40 transitions. [2019-02-28 13:21:05,348 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 40 transitions. [2019-02-28 13:21:05,348 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:21:05,348 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:21:05,348 INFO L74 IsIncluded]: Start isIncluded. First operand 16 states. Second operand 17 states. [2019-02-28 13:21:05,348 INFO L87 Difference]: Start difference. First operand 16 states. Second operand 17 states. [2019-02-28 13:21:05,350 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:21:05,350 INFO L93 Difference]: Finished difference Result 17 states and 40 transitions. [2019-02-28 13:21:05,350 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 40 transitions. [2019-02-28 13:21:05,351 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:21:05,351 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:21:05,351 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:21:05,351 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:21:05,351 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 16 states. [2019-02-28 13:21:05,353 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 16 states to 16 states and 40 transitions. [2019-02-28 13:21:05,353 INFO L78 Accepts]: Start accepts. Automaton has 16 states and 40 transitions. Word has length 3 [2019-02-28 13:21:05,353 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:21:05,353 INFO L480 AbstractCegarLoop]: Abstraction has 16 states and 40 transitions. [2019-02-28 13:21:05,354 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-02-28 13:21:05,354 INFO L276 IsEmpty]: Start isEmpty. Operand 16 states and 40 transitions. [2019-02-28 13:21:05,354 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 4 [2019-02-28 13:21:05,354 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:21:05,354 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1] [2019-02-28 13:21:05,355 INFO L423 AbstractCegarLoop]: === Iteration 5 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:21:05,355 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:21:05,355 INFO L82 PathProgramCache]: Analyzing trace with hash 30120, now seen corresponding path program 1 times [2019-02-28 13:21:05,355 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:21:05,356 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:21:05,356 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:21:05,356 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:21:05,356 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:21:05,364 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:21:05,449 INFO L273 TraceCheckUtils]: 0: Hoare triple {386#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {388#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-02-28 13:21:05,452 INFO L273 TraceCheckUtils]: 1: Hoare triple {388#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {389#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-02-28 13:21:05,453 INFO L273 TraceCheckUtils]: 2: Hoare triple {389#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {387#false} is VALID [2019-02-28 13:21:05,453 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:21:05,454 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:21:05,454 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:21:05,454 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 4 with the following transitions: [2019-02-28 13:21:05,454 INFO L207 CegarAbsIntRunner]: [0], [10], [19] [2019-02-28 13:21:05,455 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-28 13:21:05,455 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-28 13:21:05,478 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-28 13:21:05,478 INFO L272 AbstractInterpreter]: Visited 3 different actions 3 times. Never merged. Never widened. Performed 50 root evaluator evaluations with a maximum evaluation depth of 3. Performed 50 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-02-28 13:21:05,478 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:21:05,479 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-28 13:21:05,479 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:21:05,479 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 4 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:21:05,487 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:21:05,487 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-28 13:21:05,498 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:21:05,498 INFO L256 TraceCheckSpWp]: Trace formula consists of 20 conjuncts, 6 conjunts are in the unsatisfiable core [2019-02-28 13:21:05,501 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:21:05,502 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:21:05,545 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:21:05,555 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:21:05,557 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-02-28 13:21:05,571 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:21:05,573 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:21:05,576 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:21:05,577 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-02-28 13:21:05,593 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:21:05,594 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:21:05,596 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:21:05,598 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:21:05,599 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:21:05,600 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:21:05,602 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 21 [2019-02-28 13:21:05,608 INFO L315 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-28 13:21:05,618 INFO L315 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:21:05,630 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:21:05,640 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:21:05,659 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:21:05,660 INFO L209 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-02-28 13:21:05,666 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:21:05,666 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_28|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_28| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-28 13:21:05,666 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-28 13:21:05,727 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:21:05,728 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:21:05,730 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:21:05,731 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:21:05,733 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:21:05,735 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:21:05,738 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 26 [2019-02-28 13:21:05,770 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:21:05,833 INFO L315 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-02-28 13:21:05,834 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:32 [2019-02-28 13:24:33,623 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:24:33,624 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_29|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_29| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_29| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_29| ULTIMATE.start_main_p4) 0) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (store |v_#memory_int_29| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_29| ULTIMATE.start_main_p3) 0))) [2019-02-28 13:24:33,624 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 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)) [2019-02-28 13:24:33,722 INFO L273 TraceCheckUtils]: 0: Hoare triple {386#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {393#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-28 13:24:33,726 INFO L273 TraceCheckUtils]: 1: Hoare triple {393#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {397#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-28 13:24:33,728 INFO L273 TraceCheckUtils]: 2: Hoare triple {397#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {387#false} is VALID [2019-02-28 13:24:33,728 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:24:33,728 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-28 13:24:33,756 INFO L273 TraceCheckUtils]: 2: Hoare triple {401#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {387#false} is VALID [2019-02-28 13:24:33,758 INFO L273 TraceCheckUtils]: 1: Hoare triple {405#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {401#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:24:33,761 INFO L273 TraceCheckUtils]: 0: Hoare triple {386#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {405#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:24:33,762 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:24:33,783 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-28 13:24:33,783 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-02-28 13:24:33,784 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-28 13:24:33,784 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-02-28 13:24:33,784 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:24:33,784 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-02-28 13:24:33,796 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 6 edges. 6 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:24:33,796 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-02-28 13:24:33,796 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-02-28 13:24:33,796 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-02-28 13:24:33,797 INFO L87 Difference]: Start difference. First operand 16 states and 40 transitions. Second operand 6 states. [2019-02-28 13:24:34,045 WARN L181 SmtUtils]: Spent 112.00 ms on a formula simplification. DAG size of input: 29 DAG size of output: 27 [2019-02-28 13:24:34,412 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:24:34,413 INFO L93 Difference]: Finished difference Result 32 states and 62 transitions. [2019-02-28 13:24:34,413 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-02-28 13:24:34,413 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 3 [2019-02-28 13:24:34,414 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:24:34,414 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-02-28 13:24:34,415 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 41 transitions. [2019-02-28 13:24:34,415 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-02-28 13:24:34,416 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 41 transitions. [2019-02-28 13:24:34,416 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 41 transitions. [2019-02-28 13:24:34,541 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 41 edges. 41 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:24:34,542 INFO L225 Difference]: With dead ends: 32 [2019-02-28 13:24:34,543 INFO L226 Difference]: Without dead ends: 31 [2019-02-28 13:24:34,544 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 7 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=31, Invalid=41, Unknown=0, NotChecked=0, Total=72 [2019-02-28 13:24:34,544 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 31 states. [2019-02-28 13:24:34,605 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 31 to 18. [2019-02-28 13:24:34,605 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:24:34,605 INFO L82 GeneralOperation]: Start isEquivalent. First operand 31 states. Second operand 18 states. [2019-02-28 13:24:34,606 INFO L74 IsIncluded]: Start isIncluded. First operand 31 states. Second operand 18 states. [2019-02-28 13:24:34,607 INFO L87 Difference]: Start difference. First operand 31 states. Second operand 18 states. [2019-02-28 13:24:34,610 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:24:34,610 INFO L93 Difference]: Finished difference Result 31 states and 60 transitions. [2019-02-28 13:24:34,610 INFO L276 IsEmpty]: Start isEmpty. Operand 31 states and 60 transitions. [2019-02-28 13:24:34,611 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:24:34,611 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:24:34,611 INFO L74 IsIncluded]: Start isIncluded. First operand 18 states. Second operand 31 states. [2019-02-28 13:24:34,611 INFO L87 Difference]: Start difference. First operand 18 states. Second operand 31 states. [2019-02-28 13:24:34,615 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:24:34,615 INFO L93 Difference]: Finished difference Result 31 states and 60 transitions. [2019-02-28 13:24:34,615 INFO L276 IsEmpty]: Start isEmpty. Operand 31 states and 60 transitions. [2019-02-28 13:24:34,616 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:24:34,616 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:24:34,616 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:24:34,616 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:24:34,616 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 18 states. [2019-02-28 13:24:34,618 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 18 states to 18 states and 50 transitions. [2019-02-28 13:24:34,618 INFO L78 Accepts]: Start accepts. Automaton has 18 states and 50 transitions. Word has length 3 [2019-02-28 13:24:34,618 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:24:34,618 INFO L480 AbstractCegarLoop]: Abstraction has 18 states and 50 transitions. [2019-02-28 13:24:34,619 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-02-28 13:24:34,619 INFO L276 IsEmpty]: Start isEmpty. Operand 18 states and 50 transitions. [2019-02-28 13:24:34,619 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-02-28 13:24:34,619 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:24:34,619 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-02-28 13:24:34,620 INFO L423 AbstractCegarLoop]: === Iteration 6 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:24:34,620 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:24:34,620 INFO L82 PathProgramCache]: Analyzing trace with hash 939538, now seen corresponding path program 1 times [2019-02-28 13:24:34,620 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:24:34,621 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:24:34,621 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:24:34,621 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:24:34,622 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:24:34,642 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:24:34,738 INFO L273 TraceCheckUtils]: 0: Hoare triple {538#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {540#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-02-28 13:24:34,739 INFO L273 TraceCheckUtils]: 1: Hoare triple {540#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {541#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:24:34,740 INFO L273 TraceCheckUtils]: 2: Hoare triple {541#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {541#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:24:34,740 INFO L273 TraceCheckUtils]: 3: Hoare triple {541#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {539#false} is VALID [2019-02-28 13:24:34,741 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:24:34,741 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:24:34,741 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:24:34,741 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-02-28 13:24:34,742 INFO L207 CegarAbsIntRunner]: [0], [16], [20], [21] [2019-02-28 13:24:34,746 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-28 13:24:34,746 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-28 13:24:34,793 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-28 13:24:34,793 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 52 root evaluator evaluations with a maximum evaluation depth of 3. Performed 52 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-02-28 13:24:34,793 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:24:34,793 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-28 13:24:34,794 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:24:34,794 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 5 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 5 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:24:34,804 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:24:34,805 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-28 13:24:34,810 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:24:34,811 INFO L256 TraceCheckSpWp]: Trace formula consists of 21 conjuncts, 5 conjunts are in the unsatisfiable core [2019-02-28 13:24:34,814 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:24:34,815 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:24:34,830 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:24:34,860 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 2 new quantified variables, introduced 2 case distinctions, treesize of input 18 treesize of output 23 [2019-02-28 13:24:34,868 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:24:34,884 INFO L442 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 2 new quantified variables, introduced 3 case distinctions, treesize of input 20 treesize of output 25 [2019-02-28 13:24:34,899 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:24:34,900 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:24:34,902 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:24:34,918 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 4 case distinctions, treesize of input 22 treesize of output 24 [2019-02-28 13:24:34,923 INFO L315 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-28 13:24:34,934 INFO L315 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:24:34,946 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:24:34,956 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:24:34,978 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:24:34,978 INFO L209 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:22, output treesize:27 [2019-02-28 13:24:34,985 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:24:34,985 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_31|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_31| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-28 13:24:34,985 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-28 13:24:35,068 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:24:35,069 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:24:35,096 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:24:35,098 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 21 [2019-02-28 13:24:35,140 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:24:35,206 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:24:35,206 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:32, output treesize:24 [2019-02-28 13:24:35,229 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:24:35,229 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_32|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_32| ULTIMATE.start_main_p4))) (and (= (store |v_#memory_int_32| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_32| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_32| ULTIMATE.start_main_p3) 0) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-02-28 13:24:35,229 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-28 13:24:35,307 INFO L273 TraceCheckUtils]: 0: Hoare triple {538#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {545#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-28 13:24:35,309 INFO L273 TraceCheckUtils]: 1: Hoare triple {545#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {549#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-02-28 13:24:35,310 INFO L273 TraceCheckUtils]: 2: Hoare triple {549#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume #memory_int[main_p1] >= 0; {549#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-02-28 13:24:35,312 INFO L273 TraceCheckUtils]: 3: Hoare triple {549#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume !(#memory_int[main_p2] <= 0); {539#false} is VALID [2019-02-28 13:24:35,312 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:24:35,312 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-28 13:24:35,338 INFO L273 TraceCheckUtils]: 3: Hoare triple {556#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {539#false} is VALID [2019-02-28 13:24:35,339 INFO L273 TraceCheckUtils]: 2: Hoare triple {556#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {556#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:24:35,340 INFO L273 TraceCheckUtils]: 1: Hoare triple {563#(<= (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {556#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:24:35,342 INFO L273 TraceCheckUtils]: 0: Hoare triple {538#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {563#(<= (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:24:35,343 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 1 proven. 0 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:24:35,364 INFO L312 seRefinementStrategy]: Constructing automaton from 1 perfect and 2 imperfect interpolant sequences. [2019-02-28 13:24:35,364 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [2] imperfect sequences [2, 2] total 6 [2019-02-28 13:24:35,364 INFO L257 anRefinementStrategy]: Using the first perfect interpolant sequence [2019-02-28 13:24:35,365 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 4 [2019-02-28 13:24:35,365 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:24:35,365 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 4 states. [2019-02-28 13:24:35,374 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 4 edges. 4 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:24:35,374 INFO L459 AbstractCegarLoop]: Interpolant automaton has 4 states [2019-02-28 13:24:35,375 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 4 interpolants. [2019-02-28 13:24:35,375 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=26, Invalid=30, Unknown=0, NotChecked=0, Total=56 [2019-02-28 13:24:35,375 INFO L87 Difference]: Start difference. First operand 18 states and 50 transitions. Second operand 4 states. [2019-02-28 13:24:35,529 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:24:35,529 INFO L93 Difference]: Finished difference Result 22 states and 58 transitions. [2019-02-28 13:24:35,529 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 3 states. [2019-02-28 13:24:35,529 INFO L78 Accepts]: Start accepts. Automaton has 4 states. Word has length 4 [2019-02-28 13:24:35,530 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:24:35,530 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-02-28 13:24:35,530 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 20 transitions. [2019-02-28 13:24:35,531 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 4 states. [2019-02-28 13:24:35,531 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 3 states to 3 states and 20 transitions. [2019-02-28 13:24:35,531 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 3 states and 20 transitions. [2019-02-28 13:24:35,552 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 20 edges. 20 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:24:35,554 INFO L225 Difference]: With dead ends: 22 [2019-02-28 13:24:35,554 INFO L226 Difference]: Without dead ends: 21 [2019-02-28 13:24:35,555 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 8 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 6 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=26, Invalid=30, Unknown=0, NotChecked=0, Total=56 [2019-02-28 13:24:35,555 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 21 states. [2019-02-28 13:24:35,591 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 21 to 20. [2019-02-28 13:24:35,591 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:24:35,591 INFO L82 GeneralOperation]: Start isEquivalent. First operand 21 states. Second operand 20 states. [2019-02-28 13:24:35,592 INFO L74 IsIncluded]: Start isIncluded. First operand 21 states. Second operand 20 states. [2019-02-28 13:24:35,592 INFO L87 Difference]: Start difference. First operand 21 states. Second operand 20 states. [2019-02-28 13:24:35,594 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:24:35,595 INFO L93 Difference]: Finished difference Result 21 states and 57 transitions. [2019-02-28 13:24:35,595 INFO L276 IsEmpty]: Start isEmpty. Operand 21 states and 57 transitions. [2019-02-28 13:24:35,595 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:24:35,595 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:24:35,596 INFO L74 IsIncluded]: Start isIncluded. First operand 20 states. Second operand 21 states. [2019-02-28 13:24:35,596 INFO L87 Difference]: Start difference. First operand 20 states. Second operand 21 states. [2019-02-28 13:24:35,597 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:24:35,598 INFO L93 Difference]: Finished difference Result 21 states and 57 transitions. [2019-02-28 13:24:35,598 INFO L276 IsEmpty]: Start isEmpty. Operand 21 states and 57 transitions. [2019-02-28 13:24:35,598 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:24:35,598 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:24:35,598 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:24:35,599 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:24:35,599 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 20 states. [2019-02-28 13:24:35,600 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 20 states to 20 states and 57 transitions. [2019-02-28 13:24:35,600 INFO L78 Accepts]: Start accepts. Automaton has 20 states and 57 transitions. Word has length 4 [2019-02-28 13:24:35,601 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:24:35,601 INFO L480 AbstractCegarLoop]: Abstraction has 20 states and 57 transitions. [2019-02-28 13:24:35,601 INFO L481 AbstractCegarLoop]: Interpolant automaton has 4 states. [2019-02-28 13:24:35,601 INFO L276 IsEmpty]: Start isEmpty. Operand 20 states and 57 transitions. [2019-02-28 13:24:35,601 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-02-28 13:24:35,601 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:24:35,601 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-02-28 13:24:35,602 INFO L423 AbstractCegarLoop]: === Iteration 7 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:24:35,602 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:24:35,602 INFO L82 PathProgramCache]: Analyzing trace with hash 939226, now seen corresponding path program 1 times [2019-02-28 13:24:35,602 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:24:35,603 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:24:35,603 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:24:35,603 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:24:35,603 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:24:35,612 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:24:35,760 INFO L273 TraceCheckUtils]: 0: Hoare triple {668#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {670#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-28 13:24:35,761 INFO L273 TraceCheckUtils]: 1: Hoare triple {670#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {671#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-02-28 13:24:35,763 INFO L273 TraceCheckUtils]: 2: Hoare triple {671#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {672#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-02-28 13:24:35,764 INFO L273 TraceCheckUtils]: 3: Hoare triple {672#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {669#false} is VALID [2019-02-28 13:24:35,764 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:24:35,765 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:24:35,765 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:24:35,765 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-02-28 13:24:35,766 INFO L207 CegarAbsIntRunner]: [0], [10], [16], [19] [2019-02-28 13:24:35,768 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-28 13:24:35,768 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-28 13:24:35,808 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-28 13:24:35,808 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 52 root evaluator evaluations with a maximum evaluation depth of 3. Performed 52 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-02-28 13:24:35,809 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:24:35,809 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-28 13:24:35,809 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:24:35,809 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 6 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 6 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:24:35,820 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:24:35,821 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-28 13:24:35,825 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:24:35,826 INFO L256 TraceCheckSpWp]: Trace formula consists of 21 conjuncts, 7 conjunts are in the unsatisfiable core [2019-02-28 13:24:35,848 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:24:35,849 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:24:35,974 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:24:35,982 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:24:35,983 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-02-28 13:24:35,994 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:24:35,995 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:24:35,999 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:24:36,001 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-02-28 13:24:36,010 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:24:36,011 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:24:36,013 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:24:36,015 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:24:36,016 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:24:36,018 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:24:36,019 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 21 [2019-02-28 13:24:36,021 INFO L315 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-28 13:24:36,031 INFO L315 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:24:36,042 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:24:36,051 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:24:36,071 INFO L315 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-02-28 13:24:36,071 INFO L209 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-02-28 13:24:36,083 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:24:36,083 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_34|, ULTIMATE.start_main_p3]. (and (= (store (store (store (store |v_#memory_int_34| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-28 13:24:36,083 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-28 13:24:36,136 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:24:36,138 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:24:36,140 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:24:36,141 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:24:36,143 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:24:36,145 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:24:36,147 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 26 [2019-02-28 13:24:36,151 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:24:36,177 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:24:36,178 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:32 [2019-02-28 13:24:37,691 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:24:37,691 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_35|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_35| ULTIMATE.start_main_p4))) (and (= 0 (select |v_#memory_int_35| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_35| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= 0 (select |v_#memory_int_35| ULTIMATE.start_main_p2)) (= 0 (select |v_#memory_int_35| ULTIMATE.start_main_p3)) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-28 13:24:37,692 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-28 13:24:37,789 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:24:37,791 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:24:37,792 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:24:37,794 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:24:37,796 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:24:37,797 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:24:37,799 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 28 [2019-02-28 13:24:37,802 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:24:37,822 INFO L315 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-02-28 13:24:37,823 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:34 [2019-02-28 13:27:58,035 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:27:58,036 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_36|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_36| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (select |v_#memory_int_36| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_36| ULTIMATE.start_main_p1) 0) (= 0 (+ (select |v_#memory_int_36| ULTIMATE.start_main_p4) 1)) (= (store |v_#memory_int_36| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-28 13:27:58,036 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 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-02-28 13:27:58,266 INFO L273 TraceCheckUtils]: 0: Hoare triple {668#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {676#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-28 13:27:58,274 INFO L273 TraceCheckUtils]: 1: Hoare triple {676#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {680#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-02-28 13:27:58,278 INFO L273 TraceCheckUtils]: 2: Hoare triple {680#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {684#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-28 13:27:58,280 INFO L273 TraceCheckUtils]: 3: Hoare triple {684#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {669#false} is VALID [2019-02-28 13:27:58,280 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:27:58,280 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-28 13:27:58,355 INFO L273 TraceCheckUtils]: 3: Hoare triple {688#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {669#false} is VALID [2019-02-28 13:27:58,357 INFO L273 TraceCheckUtils]: 2: Hoare triple {692#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {688#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:27:58,359 INFO L273 TraceCheckUtils]: 1: Hoare triple {696#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {692#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:27:58,362 INFO L273 TraceCheckUtils]: 0: Hoare triple {668#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {696#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:27:58,363 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:27:58,384 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-28 13:27:58,384 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-02-28 13:27:58,384 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-28 13:27:58,386 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-02-28 13:27:58,386 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:27:58,386 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-02-28 13:27:58,411 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:27:58,411 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-02-28 13:27:58,411 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-02-28 13:27:58,411 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=43, Invalid=67, Unknown=0, NotChecked=0, Total=110 [2019-02-28 13:27:58,411 INFO L87 Difference]: Start difference. First operand 20 states and 57 transitions. Second operand 8 states. [2019-02-28 13:27:59,337 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:27:59,337 INFO L93 Difference]: Finished difference Result 37 states and 74 transitions. [2019-02-28 13:27:59,338 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-02-28 13:27:59,338 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-02-28 13:27:59,338 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:27:59,338 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-28 13:27:59,340 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 48 transitions. [2019-02-28 13:27:59,340 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-28 13:27:59,341 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 48 transitions. [2019-02-28 13:27:59,341 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 48 transitions. [2019-02-28 13:27:59,495 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 48 edges. 48 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:27:59,497 INFO L225 Difference]: With dead ends: 37 [2019-02-28 13:27:59,497 INFO L226 Difference]: Without dead ends: 36 [2019-02-28 13:27:59,498 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.6s TimeCoverageRelationStatistics Valid=61, Invalid=95, Unknown=0, NotChecked=0, Total=156 [2019-02-28 13:27:59,498 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 36 states. [2019-02-28 13:27:59,554 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 36 to 17. [2019-02-28 13:27:59,555 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:27:59,555 INFO L82 GeneralOperation]: Start isEquivalent. First operand 36 states. Second operand 17 states. [2019-02-28 13:27:59,555 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 17 states. [2019-02-28 13:27:59,555 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 17 states. [2019-02-28 13:27:59,558 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:27:59,558 INFO L93 Difference]: Finished difference Result 36 states and 72 transitions. [2019-02-28 13:27:59,559 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 72 transitions. [2019-02-28 13:27:59,559 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:27:59,559 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:27:59,559 INFO L74 IsIncluded]: Start isIncluded. First operand 17 states. Second operand 36 states. [2019-02-28 13:27:59,560 INFO L87 Difference]: Start difference. First operand 17 states. Second operand 36 states. [2019-02-28 13:27:59,562 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:27:59,562 INFO L93 Difference]: Finished difference Result 36 states and 72 transitions. [2019-02-28 13:27:59,563 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 72 transitions. [2019-02-28 13:27:59,563 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:27:59,563 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:27:59,564 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:27:59,564 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:27:59,564 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 17 states. [2019-02-28 13:27:59,565 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 17 states to 17 states and 41 transitions. [2019-02-28 13:27:59,566 INFO L78 Accepts]: Start accepts. Automaton has 17 states and 41 transitions. Word has length 4 [2019-02-28 13:27:59,566 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:27:59,566 INFO L480 AbstractCegarLoop]: Abstraction has 17 states and 41 transitions. [2019-02-28 13:27:59,566 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-02-28 13:27:59,566 INFO L276 IsEmpty]: Start isEmpty. Operand 17 states and 41 transitions. [2019-02-28 13:27:59,567 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-02-28 13:27:59,567 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:27:59,567 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-02-28 13:27:59,567 INFO L423 AbstractCegarLoop]: === Iteration 8 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:27:59,567 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:27:59,568 INFO L82 PathProgramCache]: Analyzing trace with hash 939350, now seen corresponding path program 1 times [2019-02-28 13:27:59,568 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:27:59,569 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:27:59,569 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:27:59,570 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:27:59,570 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:27:59,579 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:27:59,740 INFO L273 TraceCheckUtils]: 0: Hoare triple {845#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {847#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-28 13:27:59,742 INFO L273 TraceCheckUtils]: 1: Hoare triple {847#(and (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {848#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))} is VALID [2019-02-28 13:27:59,743 INFO L273 TraceCheckUtils]: 2: Hoare triple {848#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p3 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {849#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-02-28 13:27:59,745 INFO L273 TraceCheckUtils]: 3: Hoare triple {849#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {846#false} is VALID [2019-02-28 13:27:59,745 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:27:59,746 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:27:59,746 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:27:59,746 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-02-28 13:27:59,747 INFO L207 CegarAbsIntRunner]: [0], [14], [16], [19] [2019-02-28 13:27:59,748 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-28 13:27:59,749 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-28 13:27:59,766 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-28 13:27:59,766 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 52 root evaluator evaluations with a maximum evaluation depth of 3. Performed 52 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-02-28 13:27:59,766 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:27:59,766 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-28 13:27:59,767 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:27:59,767 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 7 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 7 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:27:59,777 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:27:59,777 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-28 13:27:59,799 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:27:59,800 INFO L256 TraceCheckSpWp]: Trace formula consists of 21 conjuncts, 7 conjunts are in the unsatisfiable core [2019-02-28 13:27:59,813 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:27:59,814 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:27:59,859 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:27:59,953 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:27:59,954 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-02-28 13:28:00,014 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:28:00,016 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:28:00,018 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:28:00,020 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-02-28 13:28:00,034 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:28:00,036 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:28:00,038 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:28:00,040 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:28:00,042 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:28:00,044 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:28:00,047 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 21 [2019-02-28 13:28:00,066 INFO L315 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-28 13:28:00,079 INFO L315 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:28:00,092 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:28:00,104 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:28:00,129 INFO L315 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-02-28 13:28:00,130 INFO L209 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-02-28 13:28:00,143 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:28:00,144 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_39|, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_39| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-28 13:28:00,144 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-28 13:28:00,211 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:28:00,213 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:28:00,215 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:28:00,217 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:28:00,219 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:28:00,220 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:28:00,223 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 26 [2019-02-28 13:28:00,226 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:28:00,247 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:28:00,247 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:32 [2019-02-28 13:31:20,353 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:31:20,353 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_40|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_40| ULTIMATE.start_main_p4))) (and (= (select |v_#memory_int_40| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_40| ULTIMATE.start_main_p2) 0) (= |#memory_int| (store |v_#memory_int_40| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= (select |v_#memory_int_40| ULTIMATE.start_main_p1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= .cse0 0))) [2019-02-28 13:31:20,353 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-28 13:31:20,481 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:20,483 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:20,485 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:20,486 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:20,487 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:20,489 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:20,491 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 28 [2019-02-28 13:31:20,497 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:31:20,522 INFO L315 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-02-28 13:31:20,522 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-02-28 13:31:26,772 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:31:26,772 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_41|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_41| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_41| ULTIMATE.start_main_p3 (+ .cse0 1))) (= 0 (+ (select |v_#memory_int_41| ULTIMATE.start_main_p4) 1)) (= 0 (select |v_#memory_int_41| ULTIMATE.start_main_p2)) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |v_#memory_int_41| ULTIMATE.start_main_p1) 0))) [2019-02-28 13:31:26,773 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-28 13:31:26,817 INFO L273 TraceCheckUtils]: 0: Hoare triple {845#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {853#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-28 13:31:26,820 INFO L273 TraceCheckUtils]: 1: Hoare triple {853#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {857#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-28 13:31:26,824 INFO L273 TraceCheckUtils]: 2: Hoare triple {857#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {861#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-28 13:31:26,827 INFO L273 TraceCheckUtils]: 3: Hoare triple {861#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {846#false} is VALID [2019-02-28 13:31:26,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-02-28 13:31:26,828 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-28 13:31:26,983 INFO L273 TraceCheckUtils]: 3: Hoare triple {865#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {846#false} is VALID [2019-02-28 13:31:26,985 INFO L273 TraceCheckUtils]: 2: Hoare triple {869#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {865#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:31:26,987 INFO L273 TraceCheckUtils]: 1: Hoare triple {873#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {869#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:31:26,990 INFO L273 TraceCheckUtils]: 0: Hoare triple {845#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {873#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:31:26,991 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:31:27,012 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-28 13:31:27,012 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-02-28 13:31:27,012 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-28 13:31:27,012 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-02-28 13:31:27,012 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:31:27,013 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-02-28 13:31:27,030 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:31:27,030 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-02-28 13:31:27,030 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-02-28 13:31:27,030 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-02-28 13:31:27,031 INFO L87 Difference]: Start difference. First operand 17 states and 41 transitions. Second operand 8 states. [2019-02-28 13:31:27,931 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:31:27,931 INFO L93 Difference]: Finished difference Result 42 states and 89 transitions. [2019-02-28 13:31:27,931 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-02-28 13:31:27,931 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-02-28 13:31:27,931 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:31:27,931 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-28 13:31:27,932 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 50 transitions. [2019-02-28 13:31:27,932 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-28 13:31:27,933 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 50 transitions. [2019-02-28 13:31:27,933 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 50 transitions. [2019-02-28 13:31:28,040 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 50 edges. 50 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:31:28,042 INFO L225 Difference]: With dead ends: 42 [2019-02-28 13:31:28,042 INFO L226 Difference]: Without dead ends: 38 [2019-02-28 13:31:28,043 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.5s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-02-28 13:31:28,043 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 38 states. [2019-02-28 13:31:28,320 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 38 to 22. [2019-02-28 13:31:28,321 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:31:28,321 INFO L82 GeneralOperation]: Start isEquivalent. First operand 38 states. Second operand 22 states. [2019-02-28 13:31:28,321 INFO L74 IsIncluded]: Start isIncluded. First operand 38 states. Second operand 22 states. [2019-02-28 13:31:28,321 INFO L87 Difference]: Start difference. First operand 38 states. Second operand 22 states. [2019-02-28 13:31:28,323 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:31:28,323 INFO L93 Difference]: Finished difference Result 38 states and 82 transitions. [2019-02-28 13:31:28,323 INFO L276 IsEmpty]: Start isEmpty. Operand 38 states and 82 transitions. [2019-02-28 13:31:28,324 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:31:28,324 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:31:28,324 INFO L74 IsIncluded]: Start isIncluded. First operand 22 states. Second operand 38 states. [2019-02-28 13:31:28,324 INFO L87 Difference]: Start difference. First operand 22 states. Second operand 38 states. [2019-02-28 13:31:28,327 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:31:28,327 INFO L93 Difference]: Finished difference Result 38 states and 82 transitions. [2019-02-28 13:31:28,327 INFO L276 IsEmpty]: Start isEmpty. Operand 38 states and 82 transitions. [2019-02-28 13:31:28,328 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:31:28,328 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:31:28,328 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:31:28,328 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:31:28,328 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 22 states. [2019-02-28 13:31:28,330 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 22 states to 22 states and 65 transitions. [2019-02-28 13:31:28,330 INFO L78 Accepts]: Start accepts. Automaton has 22 states and 65 transitions. Word has length 4 [2019-02-28 13:31:28,330 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:31:28,330 INFO L480 AbstractCegarLoop]: Abstraction has 22 states and 65 transitions. [2019-02-28 13:31:28,330 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-02-28 13:31:28,331 INFO L276 IsEmpty]: Start isEmpty. Operand 22 states and 65 transitions. [2019-02-28 13:31:28,331 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-02-28 13:31:28,331 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:31:28,331 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-02-28 13:31:28,331 INFO L423 AbstractCegarLoop]: === Iteration 9 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:31:28,332 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:31:28,332 INFO L82 PathProgramCache]: Analyzing trace with hash 929802, now seen corresponding path program 1 times [2019-02-28 13:31:28,332 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:31:28,333 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:31:28,333 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:31:28,333 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:31:28,333 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:31:28,341 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:31:28,474 INFO L273 TraceCheckUtils]: 0: Hoare triple {1043#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1045#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-28 13:31:28,476 INFO L273 TraceCheckUtils]: 1: Hoare triple {1045#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1046#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} is VALID [2019-02-28 13:31:28,478 INFO L273 TraceCheckUtils]: 2: Hoare triple {1046#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1047#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:31:28,479 INFO L273 TraceCheckUtils]: 3: Hoare triple {1047#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1044#false} is VALID [2019-02-28 13:31:28,480 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:31:28,480 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:31:28,480 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:31:28,480 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-02-28 13:31:28,480 INFO L207 CegarAbsIntRunner]: [0], [6], [16], [19] [2019-02-28 13:31:28,481 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-28 13:31:28,481 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-28 13:31:28,493 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-28 13:31:28,493 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 52 root evaluator evaluations with a maximum evaluation depth of 3. Performed 52 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-02-28 13:31:28,494 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:31:28,494 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-28 13:31:28,494 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:31:28,494 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 8 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 8 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:31:28,506 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:31:28,506 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-28 13:31:28,510 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:31:28,511 INFO L256 TraceCheckSpWp]: Trace formula consists of 21 conjuncts, 7 conjunts are in the unsatisfiable core [2019-02-28 13:31:28,515 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:31:28,516 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:31:28,547 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:31:28,556 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:28,558 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-02-28 13:31:28,569 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:28,571 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:28,573 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:28,574 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-02-28 13:31:28,633 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:28,663 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:28,687 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:28,688 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:28,689 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:28,690 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:28,691 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 21 [2019-02-28 13:31:28,696 INFO L315 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-28 13:31:28,711 INFO L315 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:31:28,723 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:31:28,733 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:31:28,753 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:31:28,753 INFO L209 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-02-28 13:31:28,767 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:31:28,767 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_44|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3]. (and (= (store (store (store (store |v_#memory_int_44| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-28 13:31:28,767 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-28 13:31:28,828 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:28,829 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:28,830 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:28,831 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:28,832 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:28,833 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:28,836 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 26 [2019-02-28 13:31:28,838 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:31:28,867 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:31:28,868 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-02-28 13:31:28,874 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:31:28,874 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_45|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_45| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_45| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= (select |v_#memory_int_45| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_45| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_45| ULTIMATE.start_main_p4) 0) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-28 13:31:28,874 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-28 13:31:28,925 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:28,926 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:28,928 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:28,930 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:28,932 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:28,934 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:28,935 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 26 [2019-02-28 13:31:28,937 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:31:28,959 INFO L315 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-02-28 13:31:28,959 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:32 [2019-02-28 13:31:29,001 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:31:29,001 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_46|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_46| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= |#memory_int| (store |v_#memory_int_46| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (= (select |v_#memory_int_46| ULTIMATE.start_main_p3) 0) (= 0 (select |v_#memory_int_46| ULTIMATE.start_main_p2)) (= 1 (select |v_#memory_int_46| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-28 13:31:29,002 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-28 13:31:29,035 INFO L273 TraceCheckUtils]: 0: Hoare triple {1043#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1051#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-28 13:31:29,038 INFO L273 TraceCheckUtils]: 1: Hoare triple {1051#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1055#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} is VALID [2019-02-28 13:31:29,042 INFO L273 TraceCheckUtils]: 2: Hoare triple {1055#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1059#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-28 13:31:29,044 INFO L273 TraceCheckUtils]: 3: Hoare triple {1059#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {1044#false} is VALID [2019-02-28 13:31:29,044 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:31:29,045 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-28 13:31:29,091 INFO L273 TraceCheckUtils]: 3: Hoare triple {1063#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1044#false} is VALID [2019-02-28 13:31:29,092 INFO L273 TraceCheckUtils]: 2: Hoare triple {1067#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {1063#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:31:29,095 INFO L273 TraceCheckUtils]: 1: Hoare triple {1071#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1067#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:31:29,098 INFO L273 TraceCheckUtils]: 0: Hoare triple {1043#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1071#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:31:29,098 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:31:29,126 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-28 13:31:29,127 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-02-28 13:31:29,127 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-28 13:31:29,127 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-02-28 13:31:29,127 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:31:29,127 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-02-28 13:31:29,144 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:31:29,144 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-02-28 13:31:29,144 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-02-28 13:31:29,144 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-02-28 13:31:29,145 INFO L87 Difference]: Start difference. First operand 22 states and 65 transitions. Second operand 8 states. [2019-02-28 13:31:30,061 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:31:30,061 INFO L93 Difference]: Finished difference Result 51 states and 112 transitions. [2019-02-28 13:31:30,061 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-02-28 13:31:30,061 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-02-28 13:31:30,061 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:31:30,062 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-28 13:31:30,063 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 57 transitions. [2019-02-28 13:31:30,063 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-28 13:31:30,064 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 57 transitions. [2019-02-28 13:31:30,064 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 57 transitions. [2019-02-28 13:31:30,213 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 57 edges. 57 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:31:30,215 INFO L225 Difference]: With dead ends: 51 [2019-02-28 13:31:30,215 INFO L226 Difference]: Without dead ends: 48 [2019-02-28 13:31:30,215 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 10 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 10 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 28 ImplicationChecksByTransitivity, 0.2s TimeCoverageRelationStatistics Valid=53, Invalid=79, Unknown=0, NotChecked=0, Total=132 [2019-02-28 13:31:30,216 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 48 states. [2019-02-28 13:31:30,370 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 48 to 28. [2019-02-28 13:31:30,371 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:31:30,371 INFO L82 GeneralOperation]: Start isEquivalent. First operand 48 states. Second operand 28 states. [2019-02-28 13:31:30,371 INFO L74 IsIncluded]: Start isIncluded. First operand 48 states. Second operand 28 states. [2019-02-28 13:31:30,371 INFO L87 Difference]: Start difference. First operand 48 states. Second operand 28 states. [2019-02-28 13:31:30,375 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:31:30,375 INFO L93 Difference]: Finished difference Result 48 states and 107 transitions. [2019-02-28 13:31:30,375 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 107 transitions. [2019-02-28 13:31:30,376 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:31:30,376 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:31:30,376 INFO L74 IsIncluded]: Start isIncluded. First operand 28 states. Second operand 48 states. [2019-02-28 13:31:30,376 INFO L87 Difference]: Start difference. First operand 28 states. Second operand 48 states. [2019-02-28 13:31:30,379 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:31:30,379 INFO L93 Difference]: Finished difference Result 48 states and 107 transitions. [2019-02-28 13:31:30,379 INFO L276 IsEmpty]: Start isEmpty. Operand 48 states and 107 transitions. [2019-02-28 13:31:30,380 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:31:30,380 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:31:30,380 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:31:30,380 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:31:30,380 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 28 states. [2019-02-28 13:31:30,382 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 28 states to 28 states and 88 transitions. [2019-02-28 13:31:30,382 INFO L78 Accepts]: Start accepts. Automaton has 28 states and 88 transitions. Word has length 4 [2019-02-28 13:31:30,382 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:31:30,383 INFO L480 AbstractCegarLoop]: Abstraction has 28 states and 88 transitions. [2019-02-28 13:31:30,383 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-02-28 13:31:30,383 INFO L276 IsEmpty]: Start isEmpty. Operand 28 states and 88 transitions. [2019-02-28 13:31:30,383 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-02-28 13:31:30,383 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:31:30,383 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-02-28 13:31:30,384 INFO L423 AbstractCegarLoop]: === Iteration 10 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:31:30,384 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:31:30,384 INFO L82 PathProgramCache]: Analyzing trace with hash 929928, now seen corresponding path program 1 times [2019-02-28 13:31:30,384 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:31:30,385 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:31:30,385 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:31:30,385 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:31:30,385 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:31:30,392 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:31:30,503 INFO L273 TraceCheckUtils]: 0: Hoare triple {1282#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1284#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-02-28 13:31:30,505 INFO L273 TraceCheckUtils]: 1: Hoare triple {1284#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1285#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:31:30,506 INFO L273 TraceCheckUtils]: 2: Hoare triple {1285#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {1285#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:31:30,507 INFO L273 TraceCheckUtils]: 3: Hoare triple {1285#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {1283#false} is VALID [2019-02-28 13:31:30,507 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:31:30,508 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:31:30,508 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:31:30,508 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-02-28 13:31:30,509 INFO L207 CegarAbsIntRunner]: [0], [6], [20], [21] [2019-02-28 13:31:30,512 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-28 13:31:30,512 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-28 13:31:30,527 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-28 13:31:30,527 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 52 root evaluator evaluations with a maximum evaluation depth of 3. Performed 52 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-02-28 13:31:30,527 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:31:30,528 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-28 13:31:30,528 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:31:30,528 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 9 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 9 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:31:30,539 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:31:30,539 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-28 13:31:30,560 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:31:30,561 INFO L256 TraceCheckSpWp]: Trace formula consists of 21 conjuncts, 6 conjunts are in the unsatisfiable core [2019-02-28 13:31:30,574 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:31:30,574 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:31:30,600 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:31:30,616 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:30,617 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-02-28 13:31:30,631 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:30,632 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:30,633 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:30,634 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-02-28 13:31:30,700 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:30,701 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:30,702 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:30,706 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:30,708 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:30,710 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:30,711 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 21 [2019-02-28 13:31:30,714 INFO L315 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-28 13:31:30,725 INFO L315 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:31:30,737 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:31:30,750 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:31:30,780 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:31:30,781 INFO L209 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-02-28 13:31:30,788 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:31:30,788 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_49|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_49| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-28 13:31:30,788 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-28 13:31:30,838 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:30,839 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:30,840 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:30,843 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:30,845 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:30,846 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:30,848 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 26 [2019-02-28 13:31:30,858 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:31:30,879 INFO L315 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-02-28 13:31:30,879 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:30 [2019-02-28 13:31:30,923 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:31:30,923 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_50|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_50| ULTIMATE.start_main_p1))) (and (= 0 (select |v_#memory_int_50| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_50| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= 0 (select |v_#memory_int_50| ULTIMATE.start_main_p2)) (= 0 .cse0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 (select |v_#memory_int_50| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-28 13:31:30,923 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-28 13:31:30,978 INFO L273 TraceCheckUtils]: 0: Hoare triple {1282#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1289#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-28 13:31:30,980 INFO L273 TraceCheckUtils]: 1: Hoare triple {1289#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1293#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-02-28 13:31:30,982 INFO L273 TraceCheckUtils]: 2: Hoare triple {1293#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume #memory_int[main_p1] >= 0; {1293#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-02-28 13:31:30,992 INFO L273 TraceCheckUtils]: 3: Hoare triple {1293#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} assume !(#memory_int[main_p2] <= 0); {1283#false} is VALID [2019-02-28 13:31:30,993 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:31:30,993 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-28 13:31:31,015 INFO L273 TraceCheckUtils]: 3: Hoare triple {1300#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {1283#false} is VALID [2019-02-28 13:31:31,016 INFO L273 TraceCheckUtils]: 2: Hoare triple {1300#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {1300#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:31:31,017 INFO L273 TraceCheckUtils]: 1: Hoare triple {1307#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1300#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:31:31,020 INFO L273 TraceCheckUtils]: 0: Hoare triple {1282#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1307#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:31:31,020 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:31:31,042 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-28 13:31:31,043 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-02-28 13:31:31,043 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-28 13:31:31,043 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-02-28 13:31:31,043 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:31:31,044 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-02-28 13:31:31,060 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:31:31,060 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-02-28 13:31:31,061 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-02-28 13:31:31,061 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-02-28 13:31:31,062 INFO L87 Difference]: Start difference. First operand 28 states and 88 transitions. Second operand 6 states. [2019-02-28 13:31:31,541 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:31:31,541 INFO L93 Difference]: Finished difference Result 36 states and 98 transitions. [2019-02-28 13:31:31,541 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-02-28 13:31:31,541 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-02-28 13:31:31,542 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:31:31,542 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-02-28 13:31:31,542 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 34 transitions. [2019-02-28 13:31:31,542 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-02-28 13:31:31,543 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 34 transitions. [2019-02-28 13:31:31,543 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 34 transitions. [2019-02-28 13:31:31,646 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 34 edges. 34 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:31:31,648 INFO L225 Difference]: With dead ends: 36 [2019-02-28 13:31:31,648 INFO L226 Difference]: Without dead ends: 35 [2019-02-28 13:31:31,651 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 10 GetRequests, 3 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=31, Invalid=41, Unknown=0, NotChecked=0, Total=72 [2019-02-28 13:31:31,651 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 35 states. [2019-02-28 13:31:31,832 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 35 to 29. [2019-02-28 13:31:31,833 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:31:31,833 INFO L82 GeneralOperation]: Start isEquivalent. First operand 35 states. Second operand 29 states. [2019-02-28 13:31:31,833 INFO L74 IsIncluded]: Start isIncluded. First operand 35 states. Second operand 29 states. [2019-02-28 13:31:31,833 INFO L87 Difference]: Start difference. First operand 35 states. Second operand 29 states. [2019-02-28 13:31:31,838 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:31:31,839 INFO L93 Difference]: Finished difference Result 35 states and 96 transitions. [2019-02-28 13:31:31,839 INFO L276 IsEmpty]: Start isEmpty. Operand 35 states and 96 transitions. [2019-02-28 13:31:31,839 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:31:31,839 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:31:31,840 INFO L74 IsIncluded]: Start isIncluded. First operand 29 states. Second operand 35 states. [2019-02-28 13:31:31,840 INFO L87 Difference]: Start difference. First operand 29 states. Second operand 35 states. [2019-02-28 13:31:31,841 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:31:31,842 INFO L93 Difference]: Finished difference Result 35 states and 96 transitions. [2019-02-28 13:31:31,842 INFO L276 IsEmpty]: Start isEmpty. Operand 35 states and 96 transitions. [2019-02-28 13:31:31,842 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:31:31,842 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:31:31,842 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:31:31,842 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:31:31,843 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 29 states. [2019-02-28 13:31:31,844 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 29 states to 29 states and 92 transitions. [2019-02-28 13:31:31,844 INFO L78 Accepts]: Start accepts. Automaton has 29 states and 92 transitions. Word has length 4 [2019-02-28 13:31:31,844 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:31:31,845 INFO L480 AbstractCegarLoop]: Abstraction has 29 states and 92 transitions. [2019-02-28 13:31:31,845 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-02-28 13:31:31,845 INFO L276 IsEmpty]: Start isEmpty. Operand 29 states and 92 transitions. [2019-02-28 13:31:31,845 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-02-28 13:31:31,845 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:31:31,845 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-02-28 13:31:31,845 INFO L423 AbstractCegarLoop]: === Iteration 11 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:31:31,851 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:31:31,851 INFO L82 PathProgramCache]: Analyzing trace with hash 929616, now seen corresponding path program 1 times [2019-02-28 13:31:31,851 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:31:31,852 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:31:31,852 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:31:31,852 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:31:31,852 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:31:31,867 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:31:32,145 INFO L273 TraceCheckUtils]: 0: Hoare triple {1479#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1481#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-02-28 13:31:32,147 INFO L273 TraceCheckUtils]: 1: Hoare triple {1481#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1482#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-02-28 13:31:32,149 INFO L273 TraceCheckUtils]: 2: Hoare triple {1482#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {1483#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:31:32,150 INFO L273 TraceCheckUtils]: 3: Hoare triple {1483#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1480#false} is VALID [2019-02-28 13:31:32,151 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:31:32,151 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:31:32,151 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:31:32,151 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-02-28 13:31:32,151 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [19] [2019-02-28 13:31:32,153 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-28 13:31:32,153 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-28 13:31:32,168 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-28 13:31:32,169 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 52 root evaluator evaluations with a maximum evaluation depth of 3. Performed 52 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-02-28 13:31:32,169 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:31:32,169 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-28 13:31:32,169 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:31:32,169 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 10 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 10 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:31:32,178 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:31:32,178 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-28 13:31:32,183 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:31:32,183 INFO L256 TraceCheckSpWp]: Trace formula consists of 21 conjuncts, 7 conjunts are in the unsatisfiable core [2019-02-28 13:31:32,186 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:31:32,188 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:31:32,210 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:31:32,272 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:32,273 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-02-28 13:31:32,283 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:32,285 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:32,286 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:32,288 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-02-28 13:31:32,299 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:32,300 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:32,302 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:32,305 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:32,307 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:32,308 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:32,309 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 21 [2019-02-28 13:31:32,312 INFO L315 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-28 13:31:32,324 INFO L315 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:31:32,336 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:31:32,351 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:31:32,379 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:31:32,380 INFO L209 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:25, output treesize:30 [2019-02-28 13:31:32,385 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:31:32,386 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_52|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store (store (store (store |v_#memory_int_52| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-28 13:31:32,386 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-28 13:31:32,450 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:32,452 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:32,453 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:32,456 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:32,458 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:32,460 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:32,461 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 26 [2019-02-28 13:31:32,467 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:31:32,486 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:31:32,486 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:30 [2019-02-28 13:31:32,493 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:31:32,494 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_53|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_53| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store |v_#memory_int_53| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= (select |v_#memory_int_53| ULTIMATE.start_main_p4) 0) (= (select |v_#memory_int_53| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_53| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= .cse0 0))) [2019-02-28 13:31:32,494 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-28 13:31:32,611 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:32,614 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:32,616 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:32,618 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:32,619 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:32,621 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:32,622 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 26 [2019-02-28 13:31:32,628 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:31:32,652 INFO L315 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-02-28 13:31:32,653 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:40, output treesize:32 [2019-02-28 13:31:34,384 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:31:34,385 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_54|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_54| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= (select |v_#memory_int_54| ULTIMATE.start_main_p4) 0) (= (store |v_#memory_int_54| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_54| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= 0 (select |v_#memory_int_54| ULTIMATE.start_main_p3)))) [2019-02-28 13:31:34,385 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 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)) [2019-02-28 13:31:34,435 INFO L273 TraceCheckUtils]: 0: Hoare triple {1479#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1487#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-28 13:31:34,439 INFO L273 TraceCheckUtils]: 1: Hoare triple {1487#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1491#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-28 13:31:34,443 INFO L273 TraceCheckUtils]: 2: Hoare triple {1491#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {1495#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-28 13:31:34,444 INFO L273 TraceCheckUtils]: 3: Hoare triple {1495#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {1480#false} is VALID [2019-02-28 13:31:34,445 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:31:34,445 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-28 13:31:34,486 INFO L273 TraceCheckUtils]: 3: Hoare triple {1499#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1480#false} is VALID [2019-02-28 13:31:34,489 INFO L273 TraceCheckUtils]: 2: Hoare triple {1503#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {1499#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:31:34,491 INFO L273 TraceCheckUtils]: 1: Hoare triple {1507#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {1503#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:31:34,493 INFO L273 TraceCheckUtils]: 0: Hoare triple {1479#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1507#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:31:34,494 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 2 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:31:34,517 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-28 13:31:34,517 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-02-28 13:31:34,517 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-28 13:31:34,518 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-02-28 13:31:34,518 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:31:34,518 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-02-28 13:31:34,534 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:31:34,534 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-02-28 13:31:34,535 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-02-28 13:31:34,535 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=45, Invalid=65, Unknown=0, NotChecked=0, Total=110 [2019-02-28 13:31:34,535 INFO L87 Difference]: Start difference. First operand 29 states and 92 transitions. Second operand 8 states. [2019-02-28 13:31:35,683 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:31:35,683 INFO L93 Difference]: Finished difference Result 55 states and 140 transitions. [2019-02-28 13:31:35,683 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-02-28 13:31:35,684 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-02-28 13:31:35,684 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:31:35,684 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-28 13:31:35,685 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 54 transitions. [2019-02-28 13:31:35,685 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-28 13:31:35,685 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 54 transitions. [2019-02-28 13:31:35,686 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 54 transitions. [2019-02-28 13:31:35,826 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 54 edges. 54 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:31:35,827 INFO L225 Difference]: With dead ends: 55 [2019-02-28 13:31:35,828 INFO L226 Difference]: Without dead ends: 54 [2019-02-28 13:31:35,828 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-02-28 13:31:35,828 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 54 states. [2019-02-28 13:31:36,079 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 54 to 34. [2019-02-28 13:31:36,080 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:31:36,080 INFO L82 GeneralOperation]: Start isEquivalent. First operand 54 states. Second operand 34 states. [2019-02-28 13:31:36,080 INFO L74 IsIncluded]: Start isIncluded. First operand 54 states. Second operand 34 states. [2019-02-28 13:31:36,080 INFO L87 Difference]: Start difference. First operand 54 states. Second operand 34 states. [2019-02-28 13:31:36,083 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:31:36,084 INFO L93 Difference]: Finished difference Result 54 states and 137 transitions. [2019-02-28 13:31:36,084 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 137 transitions. [2019-02-28 13:31:36,084 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:31:36,085 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:31:36,085 INFO L74 IsIncluded]: Start isIncluded. First operand 34 states. Second operand 54 states. [2019-02-28 13:31:36,085 INFO L87 Difference]: Start difference. First operand 34 states. Second operand 54 states. [2019-02-28 13:31:36,087 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:31:36,087 INFO L93 Difference]: Finished difference Result 54 states and 137 transitions. [2019-02-28 13:31:36,087 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 137 transitions. [2019-02-28 13:31:36,088 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:31:36,088 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:31:36,088 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:31:36,088 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:31:36,088 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 34 states. [2019-02-28 13:31:36,089 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 34 states to 34 states and 117 transitions. [2019-02-28 13:31:36,090 INFO L78 Accepts]: Start accepts. Automaton has 34 states and 117 transitions. Word has length 4 [2019-02-28 13:31:36,090 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:31:36,090 INFO L480 AbstractCegarLoop]: Abstraction has 34 states and 117 transitions. [2019-02-28 13:31:36,090 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-02-28 13:31:36,090 INFO L276 IsEmpty]: Start isEmpty. Operand 34 states and 117 transitions. [2019-02-28 13:31:36,091 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-02-28 13:31:36,091 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:31:36,091 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-02-28 13:31:36,092 INFO L423 AbstractCegarLoop]: === Iteration 12 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:31:36,092 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:31:36,092 INFO L82 PathProgramCache]: Analyzing trace with hash 933584, now seen corresponding path program 1 times [2019-02-28 13:31:36,092 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:31:36,094 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:31:36,094 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:31:36,094 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:31:36,094 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:31:36,100 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:31:36,250 INFO L273 TraceCheckUtils]: 0: Hoare triple {1752#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1754#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-02-28 13:31:36,251 INFO L273 TraceCheckUtils]: 1: Hoare triple {1754#(and (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {1755#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-02-28 13:31:36,252 INFO L273 TraceCheckUtils]: 2: Hoare triple {1755#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {1756#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-02-28 13:31:36,257 INFO L273 TraceCheckUtils]: 3: Hoare triple {1756#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {1753#false} is VALID [2019-02-28 13:31:36,258 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:31:36,258 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:31:36,258 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:31:36,258 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-02-28 13:31:36,259 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [19] [2019-02-28 13:31:36,261 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-28 13:31:36,261 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-28 13:31:36,280 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-28 13:31:36,280 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 52 root evaluator evaluations with a maximum evaluation depth of 3. Performed 52 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-02-28 13:31:36,280 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:31:36,280 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-28 13:31:36,281 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:31:36,281 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 11 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 11 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:31:36,291 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:31:36,291 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-28 13:31:36,297 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:31:36,298 INFO L256 TraceCheckSpWp]: Trace formula consists of 21 conjuncts, 7 conjunts are in the unsatisfiable core [2019-02-28 13:31:36,301 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:31:36,309 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:31:36,327 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:31:36,335 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:36,336 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-02-28 13:31:36,356 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:36,357 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:36,359 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:36,360 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-02-28 13:31:36,370 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:36,371 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:36,373 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:36,375 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:36,377 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:36,379 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:36,380 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 21 [2019-02-28 13:31:36,382 INFO L315 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-28 13:31:36,395 INFO L315 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:31:36,406 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:31:36,416 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:31:36,436 INFO L315 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-02-28 13:31:36,437 INFO L209 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-02-28 13:31:36,444 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:31:36,444 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_57|, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_57| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-28 13:31:36,444 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-28 13:31:36,494 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:36,496 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:36,497 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:36,499 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:36,502 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:36,503 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:36,505 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 26 [2019-02-28 13:31:36,519 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:31:36,538 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:31:36,539 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:32 [2019-02-28 13:31:36,565 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:31:36,565 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_58|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_58| ULTIMATE.start_main_p2))) (and (= 0 (select |v_#memory_int_58| ULTIMATE.start_main_p4)) (= (select |v_#memory_int_58| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_58| ULTIMATE.start_main_p1) 0) (= (store |v_#memory_int_58| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-28 13:31:36,566 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 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)) [2019-02-28 13:31:36,627 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:36,630 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:36,632 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:36,633 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:36,637 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:36,639 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:36,640 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 28 [2019-02-28 13:31:36,643 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:31:36,682 INFO L315 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-02-28 13:31:36,682 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-02-28 13:31:39,224 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:31:39,224 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_59|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (let ((.cse0 (select |v_#memory_int_59| ULTIMATE.start_main_p3))) (and (= 0 (select |v_#memory_int_59| ULTIMATE.start_main_p4)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_59| ULTIMATE.start_main_p1)) (= (store |v_#memory_int_59| ULTIMATE.start_main_p3 (+ .cse0 1)) |#memory_int|) (= 0 .cse0) (= 0 (+ (select |v_#memory_int_59| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-28 13:31:39,224 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-28 13:31:39,277 INFO L273 TraceCheckUtils]: 0: Hoare triple {1752#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1760#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-28 13:31:39,282 INFO L273 TraceCheckUtils]: 1: Hoare triple {1760#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {1764#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} is VALID [2019-02-28 13:31:39,285 INFO L273 TraceCheckUtils]: 2: Hoare triple {1764#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {1768#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} is VALID [2019-02-28 13:31:39,286 INFO L273 TraceCheckUtils]: 3: Hoare triple {1768#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))))} assume !(#memory_int[main_p1] >= 0); {1753#false} is VALID [2019-02-28 13:31:39,287 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:31:39,287 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-28 13:31:39,333 INFO L273 TraceCheckUtils]: 3: Hoare triple {1772#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {1753#false} is VALID [2019-02-28 13:31:39,334 INFO L273 TraceCheckUtils]: 2: Hoare triple {1776#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {1772#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:31:39,337 INFO L273 TraceCheckUtils]: 1: Hoare triple {1780#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {1776#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:31:39,340 INFO L273 TraceCheckUtils]: 0: Hoare triple {1752#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {1780#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:31:39,340 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:31:39,360 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-28 13:31:39,361 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-02-28 13:31:39,361 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-28 13:31:39,361 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-02-28 13:31:39,361 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:31:39,361 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-02-28 13:31:39,378 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:31:39,378 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-02-28 13:31:39,378 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-02-28 13:31:39,378 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-02-28 13:31:39,379 INFO L87 Difference]: Start difference. First operand 34 states and 117 transitions. Second operand 8 states. [2019-02-28 13:31:40,473 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:31:40,473 INFO L93 Difference]: Finished difference Result 56 states and 150 transitions. [2019-02-28 13:31:40,473 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-02-28 13:31:40,473 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 4 [2019-02-28 13:31:40,474 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:31:40,474 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-28 13:31:40,474 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 47 transitions. [2019-02-28 13:31:40,475 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-28 13:31:40,475 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 47 transitions. [2019-02-28 13:31:40,475 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 47 transitions. [2019-02-28 13:31:40,608 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 47 edges. 47 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:31:40,609 INFO L225 Difference]: With dead ends: 56 [2019-02-28 13:31:40,609 INFO L226 Difference]: Without dead ends: 54 [2019-02-28 13:31:40,609 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 11 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 11 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 32 ImplicationChecksByTransitivity, 0.3s TimeCoverageRelationStatistics Valid=62, Invalid=94, Unknown=0, NotChecked=0, Total=156 [2019-02-28 13:31:40,612 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 54 states. [2019-02-28 13:31:40,831 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 54 to 36. [2019-02-28 13:31:40,832 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:31:40,832 INFO L82 GeneralOperation]: Start isEquivalent. First operand 54 states. Second operand 36 states. [2019-02-28 13:31:40,832 INFO L74 IsIncluded]: Start isIncluded. First operand 54 states. Second operand 36 states. [2019-02-28 13:31:40,833 INFO L87 Difference]: Start difference. First operand 54 states. Second operand 36 states. [2019-02-28 13:31:40,835 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:31:40,835 INFO L93 Difference]: Finished difference Result 54 states and 146 transitions. [2019-02-28 13:31:40,835 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 146 transitions. [2019-02-28 13:31:40,836 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:31:40,836 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:31:40,836 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 54 states. [2019-02-28 13:31:40,836 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 54 states. [2019-02-28 13:31:40,838 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:31:40,838 INFO L93 Difference]: Finished difference Result 54 states and 146 transitions. [2019-02-28 13:31:40,838 INFO L276 IsEmpty]: Start isEmpty. Operand 54 states and 146 transitions. [2019-02-28 13:31:40,839 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:31:40,839 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:31:40,839 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:31:40,839 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:31:40,839 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 36 states. [2019-02-28 13:31:40,841 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 36 states to 36 states and 127 transitions. [2019-02-28 13:31:40,841 INFO L78 Accepts]: Start accepts. Automaton has 36 states and 127 transitions. Word has length 4 [2019-02-28 13:31:40,841 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:31:40,841 INFO L480 AbstractCegarLoop]: Abstraction has 36 states and 127 transitions. [2019-02-28 13:31:40,841 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-02-28 13:31:40,841 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 127 transitions. [2019-02-28 13:31:40,842 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 5 [2019-02-28 13:31:40,842 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:31:40,842 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1] [2019-02-28 13:31:40,842 INFO L423 AbstractCegarLoop]: === Iteration 13 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:31:40,842 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:31:40,843 INFO L82 PathProgramCache]: Analyzing trace with hash 937616, now seen corresponding path program 1 times [2019-02-28 13:31:40,843 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:31:40,843 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:31:40,844 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:31:40,844 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:31:40,844 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:31:40,849 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:31:40,930 INFO L273 TraceCheckUtils]: 0: Hoare triple {2034#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2036#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-02-28 13:31:40,932 INFO L273 TraceCheckUtils]: 1: Hoare triple {2036#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {2037#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:31:40,932 INFO L273 TraceCheckUtils]: 2: Hoare triple {2037#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {2037#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:31:40,933 INFO L273 TraceCheckUtils]: 3: Hoare triple {2037#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {2035#false} is VALID [2019-02-28 13:31:40,933 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:31:40,933 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:31:40,933 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:31:40,933 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 5 with the following transitions: [2019-02-28 13:31:40,934 INFO L207 CegarAbsIntRunner]: [0], [14], [20], [21] [2019-02-28 13:31:40,934 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-28 13:31:40,935 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-28 13:31:40,947 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-28 13:31:40,948 INFO L272 AbstractInterpreter]: Visited 4 different actions 4 times. Never merged. Never widened. Performed 52 root evaluator evaluations with a maximum evaluation depth of 3. Performed 52 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 1 fixpoints after 1 different actions. Largest state had 0 variables. [2019-02-28 13:31:40,948 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:31:40,948 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-28 13:31:40,948 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:31:40,948 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 12 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 12 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:31:40,958 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:31:40,958 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-28 13:31:40,962 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:31:40,963 INFO L256 TraceCheckSpWp]: Trace formula consists of 21 conjuncts, 5 conjunts are in the unsatisfiable core [2019-02-28 13:31:40,966 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:31:40,967 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:31:40,982 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:31:40,999 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 2 new quantified variables, introduced 2 case distinctions, treesize of input 18 treesize of output 23 [2019-02-28 13:31:41,007 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:41,020 INFO L442 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 2 new quantified variables, introduced 3 case distinctions, treesize of input 20 treesize of output 25 [2019-02-28 13:31:41,030 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:41,031 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:41,033 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:41,046 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 4 case distinctions, treesize of input 22 treesize of output 24 [2019-02-28 13:31:41,049 INFO L315 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-28 13:31:41,060 INFO L315 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:31:41,069 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:31:41,081 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:31:41,098 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:31:41,099 INFO L209 ElimStorePlain]: Needed 5 recursive calls to eliminate 3 variables, input treesize:22, output treesize:27 [2019-02-28 13:31:41,105 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:31:41,106 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_62|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_62| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-28 13:31:41,106 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-28 13:31:41,167 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:41,169 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:41,171 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:41,174 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 21 [2019-02-28 13:31:41,177 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:31:41,191 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:31:41,192 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:32, output treesize:22 [2019-02-28 13:31:41,202 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:31:41,203 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_63|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_63| ULTIMATE.start_main_p3))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= |#memory_int| (store |v_#memory_int_63| ULTIMATE.start_main_p3 (+ .cse0 1))) (= (select |v_#memory_int_63| ULTIMATE.start_main_p2) 0) (= (select |v_#memory_int_63| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) [2019-02-28 13:31:41,203 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-28 13:31:41,250 INFO L273 TraceCheckUtils]: 0: Hoare triple {2034#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2041#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} is VALID [2019-02-28 13:31:41,252 INFO L273 TraceCheckUtils]: 1: Hoare triple {2041#(and (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {2045#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-02-28 13:31:41,269 INFO L273 TraceCheckUtils]: 2: Hoare triple {2045#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume #memory_int[main_p1] >= 0; {2045#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} is VALID [2019-02-28 13:31:41,270 INFO L273 TraceCheckUtils]: 3: Hoare triple {2045#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)))} assume !(#memory_int[main_p2] <= 0); {2035#false} is VALID [2019-02-28 13:31:41,270 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:31:41,270 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-28 13:31:41,295 INFO L273 TraceCheckUtils]: 3: Hoare triple {2052#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {2035#false} is VALID [2019-02-28 13:31:41,295 INFO L273 TraceCheckUtils]: 2: Hoare triple {2052#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {2052#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:31:41,296 INFO L273 TraceCheckUtils]: 1: Hoare triple {2059#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {2052#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:31:41,299 INFO L273 TraceCheckUtils]: 0: Hoare triple {2034#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2059#(<= (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:31:41,300 INFO L134 CoverageAnalysis]: Checked inductivity of 1 backedges. 0 proven. 1 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:31:41,321 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-28 13:31:41,322 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [2, 2, 2] total 6 [2019-02-28 13:31:41,322 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-28 13:31:41,322 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-02-28 13:31:41,322 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:31:41,323 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states. [2019-02-28 13:31:41,350 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 8 edges. 8 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:31:41,350 INFO L459 AbstractCegarLoop]: Interpolant automaton has 6 states [2019-02-28 13:31:41,351 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 6 interpolants. [2019-02-28 13:31:41,351 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=24, Invalid=32, Unknown=0, NotChecked=0, Total=56 [2019-02-28 13:31:41,351 INFO L87 Difference]: Start difference. First operand 36 states and 127 transitions. Second operand 6 states. [2019-02-28 13:31:41,863 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:31:41,864 INFO L93 Difference]: Finished difference Result 48 states and 142 transitions. [2019-02-28 13:31:41,864 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 5 states. [2019-02-28 13:31:41,864 INFO L78 Accepts]: Start accepts. Automaton has 6 states. Word has length 4 [2019-02-28 13:31:41,864 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:31:41,864 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-02-28 13:31:41,865 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 36 transitions. [2019-02-28 13:31:41,865 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 6 states. [2019-02-28 13:31:41,865 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 5 states to 5 states and 36 transitions. [2019-02-28 13:31:41,865 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 5 states and 36 transitions. [2019-02-28 13:31:41,951 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 36 edges. 36 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:31:41,952 INFO L225 Difference]: With dead ends: 48 [2019-02-28 13:31:41,952 INFO L226 Difference]: Without dead ends: 47 [2019-02-28 13:31:41,952 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 9 GetRequests, 2 SyntacticMatches, 0 SemanticMatches, 7 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 12 ImplicationChecksByTransitivity, 0.1s TimeCoverageRelationStatistics Valid=31, Invalid=41, Unknown=0, NotChecked=0, Total=72 [2019-02-28 13:31:41,952 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 47 states. [2019-02-28 13:31:42,139 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 47 to 36. [2019-02-28 13:31:42,139 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:31:42,139 INFO L82 GeneralOperation]: Start isEquivalent. First operand 47 states. Second operand 36 states. [2019-02-28 13:31:42,139 INFO L74 IsIncluded]: Start isIncluded. First operand 47 states. Second operand 36 states. [2019-02-28 13:31:42,140 INFO L87 Difference]: Start difference. First operand 47 states. Second operand 36 states. [2019-02-28 13:31:42,142 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:31:42,142 INFO L93 Difference]: Finished difference Result 47 states and 140 transitions. [2019-02-28 13:31:42,142 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 140 transitions. [2019-02-28 13:31:42,143 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:31:42,143 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:31:42,143 INFO L74 IsIncluded]: Start isIncluded. First operand 36 states. Second operand 47 states. [2019-02-28 13:31:42,143 INFO L87 Difference]: Start difference. First operand 36 states. Second operand 47 states. [2019-02-28 13:31:42,145 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:31:42,145 INFO L93 Difference]: Finished difference Result 47 states and 140 transitions. [2019-02-28 13:31:42,146 INFO L276 IsEmpty]: Start isEmpty. Operand 47 states and 140 transitions. [2019-02-28 13:31:42,146 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:31:42,146 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:31:42,146 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:31:42,146 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:31:42,146 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 36 states. [2019-02-28 13:31:42,148 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 36 states to 36 states and 127 transitions. [2019-02-28 13:31:42,148 INFO L78 Accepts]: Start accepts. Automaton has 36 states and 127 transitions. Word has length 4 [2019-02-28 13:31:42,148 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:31:42,148 INFO L480 AbstractCegarLoop]: Abstraction has 36 states and 127 transitions. [2019-02-28 13:31:42,148 INFO L481 AbstractCegarLoop]: Interpolant automaton has 6 states. [2019-02-28 13:31:42,148 INFO L276 IsEmpty]: Start isEmpty. Operand 36 states and 127 transitions. [2019-02-28 13:31:42,149 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-02-28 13:31:42,149 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:31:42,149 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-02-28 13:31:42,149 INFO L423 AbstractCegarLoop]: === Iteration 14 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:31:42,149 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:31:42,150 INFO L82 PathProgramCache]: Analyzing trace with hash 29112214, now seen corresponding path program 1 times [2019-02-28 13:31:42,150 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:31:42,150 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:31:42,151 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:31:42,151 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:31:42,151 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:31:42,158 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:31:42,320 INFO L273 TraceCheckUtils]: 0: Hoare triple {2289#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2291#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-02-28 13:31:42,322 INFO L273 TraceCheckUtils]: 1: Hoare triple {2291#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2292#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-02-28 13:31:42,324 INFO L273 TraceCheckUtils]: 2: Hoare triple {2292#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {2292#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-02-28 13:31:42,325 INFO L273 TraceCheckUtils]: 3: Hoare triple {2292#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2)))} assume #memory_int[main_p1] >= 0; {2293#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:31:42,326 INFO L273 TraceCheckUtils]: 4: Hoare triple {2293#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {2290#false} is VALID [2019-02-28 13:31:42,326 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 2 refuted. 0 times theorem prover too weak. 1 trivial. 0 not checked. [2019-02-28 13:31:42,327 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:31:42,327 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:31:42,327 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-02-28 13:31:42,327 INFO L207 CegarAbsIntRunner]: [0], [6], [16], [20], [21] [2019-02-28 13:31:42,329 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-28 13:31:42,329 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-28 13:31:42,363 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-28 13:31:42,363 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 3. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-02-28 13:31:42,364 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:31:42,364 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-28 13:31:42,364 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:31:42,364 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 13 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 13 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:31:42,375 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:31:42,376 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-28 13:31:42,396 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:31:42,397 INFO L256 TraceCheckSpWp]: Trace formula consists of 22 conjuncts, 7 conjunts are in the unsatisfiable core [2019-02-28 13:31:42,411 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:31:42,412 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:31:42,492 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:31:42,498 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:42,499 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-02-28 13:31:42,508 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:42,510 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:42,511 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:42,513 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-02-28 13:31:42,522 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:42,524 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:42,525 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:42,527 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:42,528 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:42,530 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:42,532 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 21 [2019-02-28 13:31:42,541 INFO L315 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-28 13:31:42,552 INFO L315 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:31:42,562 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:31:42,574 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:31:42,597 INFO L315 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-02-28 13:31:42,598 INFO L209 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-02-28 13:31:42,607 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:31:42,607 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_65|, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_65| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-28 13:31:42,607 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-28 13:31:42,665 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:42,667 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:42,668 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:42,670 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:42,671 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:42,674 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:42,675 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 26 [2019-02-28 13:31:42,679 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:31:42,702 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:31:42,702 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:32 [2019-02-28 13:31:44,649 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:31:44,650 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_66|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_66| ULTIMATE.start_main_p4))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= .cse0 0) (= (select |v_#memory_int_66| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_66| ULTIMATE.start_main_p3) 0) (= (store |v_#memory_int_66| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (= (select |v_#memory_int_66| ULTIMATE.start_main_p2) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-28 13:31:44,650 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-28 13:31:44,717 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:44,718 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:44,720 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:44,722 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:44,724 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:44,725 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:44,726 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 28 [2019-02-28 13:31:44,731 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:31:44,754 INFO L315 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-02-28 13:31:44,755 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:32 [2019-02-28 13:31:44,783 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:31:44,784 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_67|, ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_67| ULTIMATE.start_main_p1))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= (select |v_#memory_int_67| ULTIMATE.start_main_p3) 0) (= (select |v_#memory_int_67| ULTIMATE.start_main_p2) 0) (= (store |v_#memory_int_67| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (= (+ (select |v_#memory_int_67| ULTIMATE.start_main_p4) 1) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-28 13:31:44,784 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-28 13:31:44,837 INFO L273 TraceCheckUtils]: 0: Hoare triple {2289#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2297#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-28 13:31:44,841 INFO L273 TraceCheckUtils]: 1: Hoare triple {2297#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2301#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-02-28 13:31:44,845 INFO L273 TraceCheckUtils]: 2: Hoare triple {2301#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {2305#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-02-28 13:31:44,846 INFO L273 TraceCheckUtils]: 3: Hoare triple {2305#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume #memory_int[main_p1] >= 0; {2305#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-02-28 13:31:44,846 INFO L273 TraceCheckUtils]: 4: Hoare triple {2305#(and (exists ((ULTIMATE.start_main_p1 Int)) (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} assume !(#memory_int[main_p2] <= 0); {2290#false} is VALID [2019-02-28 13:31:44,847 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:31:44,847 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-28 13:31:44,899 INFO L273 TraceCheckUtils]: 4: Hoare triple {2312#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {2290#false} is VALID [2019-02-28 13:31:44,900 INFO L273 TraceCheckUtils]: 3: Hoare triple {2312#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {2312#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:31:44,902 INFO L273 TraceCheckUtils]: 2: Hoare triple {2319#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {2312#(<= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:31:44,904 INFO L273 TraceCheckUtils]: 1: Hoare triple {2323#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2319#(<= (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:31:44,906 INFO L273 TraceCheckUtils]: 0: Hoare triple {2289#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2323#(<= (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:31:44,907 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 1 proven. 2 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:31:44,929 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-28 13:31:44,930 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [3, 3, 3] total 9 [2019-02-28 13:31:44,930 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-28 13:31:44,930 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-02-28 13:31:44,930 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:31:44,931 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states. [2019-02-28 13:31:44,954 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:31:44,954 INFO L459 AbstractCegarLoop]: Interpolant automaton has 8 states [2019-02-28 13:31:44,954 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 8 interpolants. [2019-02-28 13:31:44,954 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=44, Invalid=66, Unknown=0, NotChecked=0, Total=110 [2019-02-28 13:31:44,954 INFO L87 Difference]: Start difference. First operand 36 states and 127 transitions. Second operand 8 states. [2019-02-28 13:31:45,882 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:31:45,882 INFO L93 Difference]: Finished difference Result 56 states and 161 transitions. [2019-02-28 13:31:45,882 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 6 states. [2019-02-28 13:31:45,882 INFO L78 Accepts]: Start accepts. Automaton has 8 states. Word has length 5 [2019-02-28 13:31:45,883 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:31:45,883 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-28 13:31:45,883 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 44 transitions. [2019-02-28 13:31:45,883 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 8 states. [2019-02-28 13:31:45,884 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 6 states to 6 states and 44 transitions. [2019-02-28 13:31:45,884 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 6 states and 44 transitions. [2019-02-28 13:31:45,970 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 44 edges. 44 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:31:45,971 INFO L225 Difference]: With dead ends: 56 [2019-02-28 13:31:45,972 INFO L226 Difference]: Without dead ends: 55 [2019-02-28 13:31:45,973 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-02-28 13:31:45,973 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 55 states. [2019-02-28 13:31:46,198 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 55 to 39. [2019-02-28 13:31:46,198 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:31:46,199 INFO L82 GeneralOperation]: Start isEquivalent. First operand 55 states. Second operand 39 states. [2019-02-28 13:31:46,199 INFO L74 IsIncluded]: Start isIncluded. First operand 55 states. Second operand 39 states. [2019-02-28 13:31:46,199 INFO L87 Difference]: Start difference. First operand 55 states. Second operand 39 states. [2019-02-28 13:31:46,201 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:31:46,202 INFO L93 Difference]: Finished difference Result 55 states and 159 transitions. [2019-02-28 13:31:46,202 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 159 transitions. [2019-02-28 13:31:46,202 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:31:46,202 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:31:46,203 INFO L74 IsIncluded]: Start isIncluded. First operand 39 states. Second operand 55 states. [2019-02-28 13:31:46,203 INFO L87 Difference]: Start difference. First operand 39 states. Second operand 55 states. [2019-02-28 13:31:46,204 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:31:46,205 INFO L93 Difference]: Finished difference Result 55 states and 159 transitions. [2019-02-28 13:31:46,205 INFO L276 IsEmpty]: Start isEmpty. Operand 55 states and 159 transitions. [2019-02-28 13:31:46,205 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:31:46,205 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:31:46,205 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:31:46,205 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:31:46,206 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 39 states. [2019-02-28 13:31:46,207 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 39 states to 39 states and 142 transitions. [2019-02-28 13:31:46,207 INFO L78 Accepts]: Start accepts. Automaton has 39 states and 142 transitions. Word has length 5 [2019-02-28 13:31:46,207 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:31:46,207 INFO L480 AbstractCegarLoop]: Abstraction has 39 states and 142 transitions. [2019-02-28 13:31:46,208 INFO L481 AbstractCegarLoop]: Interpolant automaton has 8 states. [2019-02-28 13:31:46,208 INFO L276 IsEmpty]: Start isEmpty. Operand 39 states and 142 transitions. [2019-02-28 13:31:46,208 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-02-28 13:31:46,208 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:31:46,208 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-02-28 13:31:46,209 INFO L423 AbstractCegarLoop]: === Iteration 15 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:31:46,209 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:31:46,209 INFO L82 PathProgramCache]: Analyzing trace with hash 29111902, now seen corresponding path program 1 times [2019-02-28 13:31:46,209 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:31:46,211 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:31:46,211 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:31:46,211 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:31:46,211 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:31:46,216 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:31:47,001 WARN L181 SmtUtils]: Spent 515.00 ms on a formula simplification. DAG size of input: 30 DAG size of output: 18 [2019-02-28 13:31:47,164 INFO L273 TraceCheckUtils]: 0: Hoare triple {2588#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2590#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (<= (+ ULTIMATE.start_main_p1 3) ULTIMATE.start_main_p4) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-02-28 13:31:47,166 INFO L273 TraceCheckUtils]: 1: Hoare triple {2590#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (<= (+ ULTIMATE.start_main_p1 3) ULTIMATE.start_main_p4) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2591#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} is VALID [2019-02-28 13:31:47,170 INFO L273 TraceCheckUtils]: 2: Hoare triple {2591#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {2592#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} is VALID [2019-02-28 13:31:47,171 INFO L273 TraceCheckUtils]: 3: Hoare triple {2592#(and (<= 1 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {2593#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:31:47,172 INFO L273 TraceCheckUtils]: 4: Hoare triple {2593#(<= 1 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {2589#false} is VALID [2019-02-28 13:31:47,172 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:31:47,172 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:31:47,172 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:31:47,173 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-02-28 13:31:47,173 INFO L207 CegarAbsIntRunner]: [0], [6], [10], [16], [19] [2019-02-28 13:31:47,174 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-28 13:31:47,175 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-28 13:31:47,198 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-28 13:31:47,198 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 3. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-02-28 13:31:47,199 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:31:47,199 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-28 13:31:47,199 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:31:47,199 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 14 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 14 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:31:47,211 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:31:47,211 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-28 13:31:47,219 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:31:47,219 INFO L256 TraceCheckSpWp]: Trace formula consists of 22 conjuncts, 8 conjunts are in the unsatisfiable core [2019-02-28 13:31:47,236 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:31:47,237 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:31:47,254 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:31:47,261 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:47,262 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-02-28 13:31:47,270 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:47,271 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:47,274 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:47,275 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-02-28 13:31:47,285 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:47,286 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:47,287 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:47,288 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:47,290 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:47,291 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:47,293 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 21 [2019-02-28 13:31:47,295 INFO L315 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-28 13:31:47,312 INFO L315 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:31:47,323 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:31:47,333 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:31:47,356 INFO L315 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-02-28 13:31:47,356 INFO L209 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:25, output treesize:30 [2019-02-28 13:31:47,364 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:31:47,364 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_70|, ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= |#memory_int| (store (store (store (store |v_#memory_int_70| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0))) [2019-02-28 13:31:47,364 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-28 13:31:47,419 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:47,420 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:47,422 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:47,423 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:47,426 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:47,428 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:47,429 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 26 [2019-02-28 13:31:47,431 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:31:47,451 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:31:47,451 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:40, output treesize:32 [2019-02-28 13:31:47,496 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:31:47,496 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_71|, ULTIMATE.start_main_p4, ULTIMATE.start_main_p3]. (let ((.cse0 (select |v_#memory_int_71| ULTIMATE.start_main_p4))) (and (= .cse0 0) (= 0 (select |v_#memory_int_71| ULTIMATE.start_main_p3)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= |#memory_int| (store |v_#memory_int_71| ULTIMATE.start_main_p4 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= 0 (select |v_#memory_int_71| ULTIMATE.start_main_p1)) (= 0 (select |v_#memory_int_71| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-28 13:31:47,497 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-28 13:31:47,557 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:47,560 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:47,562 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:47,563 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:47,565 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:47,566 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:47,568 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 28 [2019-02-28 13:31:47,572 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:31:47,593 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:31:47,594 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:32 [2019-02-28 13:31:47,600 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:31:47,601 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_72|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_72| ULTIMATE.start_main_p1))) (and (= (store |v_#memory_int_72| ULTIMATE.start_main_p1 (+ .cse0 1)) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (select |v_#memory_int_72| ULTIMATE.start_main_p3)) (= (+ (select |v_#memory_int_72| ULTIMATE.start_main_p4) 1) 0) (= 0 .cse0) (= 0 (select |v_#memory_int_72| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-28 13:31:47,601 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-28 13:31:47,696 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:47,698 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:47,699 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:47,701 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:47,703 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:47,704 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:47,706 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 28 [2019-02-28 13:31:47,710 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:31:47,733 INFO L315 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-02-28 13:31:47,733 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:42, output treesize:34 [2019-02-28 13:31:47,742 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:31:47,742 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_73|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p3, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_73| ULTIMATE.start_main_p2))) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_73| ULTIMATE.start_main_p4) 1)) (= (select |v_#memory_int_73| ULTIMATE.start_main_p1) 1) (= (store |v_#memory_int_73| ULTIMATE.start_main_p2 (+ .cse0 (- 1))) |#memory_int|) (= 0 (select |v_#memory_int_73| ULTIMATE.start_main_p3)) (= .cse0 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-28 13:31:47,742 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 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)) [2019-02-28 13:31:47,778 INFO L273 TraceCheckUtils]: 0: Hoare triple {2588#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2597#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-28 13:31:47,781 INFO L273 TraceCheckUtils]: 1: Hoare triple {2597#(and (exists ((ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2601#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-02-28 13:31:47,784 INFO L273 TraceCheckUtils]: 2: Hoare triple {2601#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {2605#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} is VALID [2019-02-28 13:31:47,816 INFO L273 TraceCheckUtils]: 3: Hoare triple {2605#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3))))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {2609#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} is VALID [2019-02-28 13:31:47,817 INFO L273 TraceCheckUtils]: 4: Hoare triple {2609#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 1) (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))))} assume !(#memory_int[main_p1] >= 0); {2589#false} is VALID [2019-02-28 13:31:47,818 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:31:47,818 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-28 13:31:47,890 INFO L273 TraceCheckUtils]: 4: Hoare triple {2613#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {2589#false} is VALID [2019-02-28 13:31:47,893 INFO L273 TraceCheckUtils]: 3: Hoare triple {2617#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {2613#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:31:47,895 INFO L273 TraceCheckUtils]: 2: Hoare triple {2621#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p1 := #memory_int[main_p1] + 1]; {2617#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:31:47,897 INFO L273 TraceCheckUtils]: 1: Hoare triple {2625#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2621#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p1 (+ (select |#memory_int| ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:31:47,898 INFO L273 TraceCheckUtils]: 0: Hoare triple {2588#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2625#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1) 1)) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:31:47,899 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 3 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:31:47,921 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-28 13:31:47,921 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-02-28 13:31:47,921 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-28 13:31:47,921 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-02-28 13:31:47,922 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:31:47,922 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-02-28 13:31:47,940 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:31:47,941 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-02-28 13:31:47,941 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-02-28 13:31:47,941 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=70, Invalid=112, Unknown=0, NotChecked=0, Total=182 [2019-02-28 13:31:47,942 INFO L87 Difference]: Start difference. First operand 39 states and 142 transitions. Second operand 10 states. [2019-02-28 13:31:49,519 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:31:49,519 INFO L93 Difference]: Finished difference Result 76 states and 212 transitions. [2019-02-28 13:31:49,519 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 8 states. [2019-02-28 13:31:49,519 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-02-28 13:31:49,519 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:31:49,520 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-28 13:31:49,520 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 64 transitions. [2019-02-28 13:31:49,520 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-28 13:31:49,521 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 8 states to 8 states and 64 transitions. [2019-02-28 13:31:49,521 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 8 states and 64 transitions. [2019-02-28 13:31:49,637 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 64 edges. 64 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:31:49,639 INFO L225 Difference]: With dead ends: 76 [2019-02-28 13:31:49,640 INFO L226 Difference]: Without dead ends: 75 [2019-02-28 13:31:49,640 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 14 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 14 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 59 ImplicationChecksByTransitivity, 1.0s TimeCoverageRelationStatistics Valid=88, Invalid=152, Unknown=0, NotChecked=0, Total=240 [2019-02-28 13:31:49,640 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 75 states. [2019-02-28 13:31:49,863 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 75 to 41. [2019-02-28 13:31:49,863 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:31:49,863 INFO L82 GeneralOperation]: Start isEquivalent. First operand 75 states. Second operand 41 states. [2019-02-28 13:31:49,863 INFO L74 IsIncluded]: Start isIncluded. First operand 75 states. Second operand 41 states. [2019-02-28 13:31:49,863 INFO L87 Difference]: Start difference. First operand 75 states. Second operand 41 states. [2019-02-28 13:31:49,866 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:31:49,867 INFO L93 Difference]: Finished difference Result 75 states and 209 transitions. [2019-02-28 13:31:49,867 INFO L276 IsEmpty]: Start isEmpty. Operand 75 states and 209 transitions. [2019-02-28 13:31:49,867 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:31:49,867 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:31:49,867 INFO L74 IsIncluded]: Start isIncluded. First operand 41 states. Second operand 75 states. [2019-02-28 13:31:49,868 INFO L87 Difference]: Start difference. First operand 41 states. Second operand 75 states. [2019-02-28 13:31:49,870 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:31:49,870 INFO L93 Difference]: Finished difference Result 75 states and 209 transitions. [2019-02-28 13:31:49,870 INFO L276 IsEmpty]: Start isEmpty. Operand 75 states and 209 transitions. [2019-02-28 13:31:49,871 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:31:49,871 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:31:49,871 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:31:49,871 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:31:49,871 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 41 states. [2019-02-28 13:31:49,873 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 41 states to 41 states and 152 transitions. [2019-02-28 13:31:49,873 INFO L78 Accepts]: Start accepts. Automaton has 41 states and 152 transitions. Word has length 5 [2019-02-28 13:31:49,873 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:31:49,873 INFO L480 AbstractCegarLoop]: Abstraction has 41 states and 152 transitions. [2019-02-28 13:31:49,873 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-02-28 13:31:49,874 INFO L276 IsEmpty]: Start isEmpty. Operand 41 states and 152 transitions. [2019-02-28 13:31:49,874 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-02-28 13:31:49,874 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:31:49,874 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-02-28 13:31:49,874 INFO L423 AbstractCegarLoop]: === Iteration 16 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:31:49,875 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:31:49,875 INFO L82 PathProgramCache]: Analyzing trace with hash 29115870, now seen corresponding path program 1 times [2019-02-28 13:31:49,875 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:31:49,876 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:31:49,876 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:31:49,876 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:31:49,876 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:31:49,882 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:31:50,583 INFO L273 TraceCheckUtils]: 0: Hoare triple {2962#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2964#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-02-28 13:31:50,599 INFO L273 TraceCheckUtils]: 1: Hoare triple {2964#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p4)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2965#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} is VALID [2019-02-28 13:31:50,609 INFO L273 TraceCheckUtils]: 2: Hoare triple {2965#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p1)))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {2966#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} is VALID [2019-02-28 13:31:50,623 INFO L273 TraceCheckUtils]: 3: Hoare triple {2966#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1)) (not (= ULTIMATE.start_main_p1 ULTIMATE.start_main_p3)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {2967#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} is VALID [2019-02-28 13:31:50,638 INFO L273 TraceCheckUtils]: 4: Hoare triple {2967#(= (select |#memory_int| ULTIMATE.start_main_p1) 0)} assume !(#memory_int[main_p1] >= 0); {2963#false} is VALID [2019-02-28 13:31:50,639 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:31:50,639 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:31:50,639 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:31:50,640 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-02-28 13:31:50,640 INFO L207 CegarAbsIntRunner]: [0], [10], [14], [16], [19] [2019-02-28 13:31:50,642 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-28 13:31:50,642 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-28 13:31:50,732 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-28 13:31:50,732 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 3. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 3 fixpoints after 3 different actions. Largest state had 0 variables. [2019-02-28 13:31:50,733 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:31:50,733 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-28 13:31:50,733 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:31:50,733 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 15 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 15 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:31:50,755 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:31:50,755 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-28 13:31:50,774 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:31:50,775 INFO L256 TraceCheckSpWp]: Trace formula consists of 22 conjuncts, 8 conjunts are in the unsatisfiable core [2019-02-28 13:31:50,793 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:31:50,794 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:31:50,867 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:31:50,874 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:50,876 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 1 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 18 treesize of output 20 [2019-02-28 13:31:50,895 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:50,897 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:50,898 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:50,900 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 2 select indices, 2 select index equivalence classes, 3 disjoint index pairs (out of 1 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 20 treesize of output 22 [2019-02-28 13:31:50,909 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:50,911 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:50,912 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:50,914 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:50,915 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:50,917 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:50,918 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 6 disjoint index pairs (out of 3 index pairs), introduced 0 new quantified variables, introduced 0 case distinctions, treesize of input 22 treesize of output 21 [2019-02-28 13:31:50,920 INFO L315 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-28 13:31:50,933 INFO L315 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:31:50,942 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:31:50,953 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:31:50,969 INFO L315 ElimStorePlain]: Start of recursive call 1: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:31:50,969 INFO L209 ElimStorePlain]: Needed 5 recursive calls to eliminate 1 variables, input treesize:25, output treesize:30 [2019-02-28 13:31:50,974 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:31:50,974 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_77|]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (store (store (store (store |v_#memory_int_77| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-28 13:31:50,975 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ []. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-28 13:31:51,025 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:51,027 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:51,028 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:51,030 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:51,031 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:51,033 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:51,036 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 31 treesize of output 26 [2019-02-28 13:31:51,055 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:31:51,075 INFO L315 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-02-28 13:31:51,075 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:40, output treesize:32 [2019-02-28 13:31:51,128 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:31:51,128 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_78|, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_78| ULTIMATE.start_main_p4))) (and (= (store |v_#memory_int_78| ULTIMATE.start_main_p4 (+ .cse0 (- 1))) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |v_#memory_int_78| ULTIMATE.start_main_p2) 0) (= .cse0 0) (= (select |v_#memory_int_78| ULTIMATE.start_main_p1) 0) (= (select |v_#memory_int_78| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-28 13:31:51,128 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2)) [2019-02-28 13:31:51,215 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:51,217 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:51,218 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:51,220 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:51,221 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:51,223 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:51,224 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 33 treesize of output 28 [2019-02-28 13:31:51,228 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:31:51,257 INFO L315 ElimStorePlain]: Start of recursive call 1: 2 dim-0 vars, 1 dim-1 vars, End of recursive call: 2 dim-0 vars, and 1 xjuncts. [2019-02-28 13:31:51,257 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 3 variables, input treesize:42, output treesize:34 [2019-02-28 13:31:51,304 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:31:51,305 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_79|, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_79| ULTIMATE.start_main_p2))) (and (= |#memory_int| (store |v_#memory_int_79| ULTIMATE.start_main_p2 (+ .cse0 (- 1)))) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 (+ (select |v_#memory_int_79| ULTIMATE.start_main_p4) 1)) (= (select |v_#memory_int_79| ULTIMATE.start_main_p1) 0) (= .cse0 0) (= (select |v_#memory_int_79| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-28 13:31:51,305 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= 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)) [2019-02-28 13:31:51,369 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:51,370 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:51,372 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:51,378 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:51,379 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:51,380 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:31:51,383 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 4 select indices, 4 select index equivalence classes, 6 disjoint index pairs (out of 6 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 35 treesize of output 30 [2019-02-28 13:31:51,388 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:31:51,416 INFO L315 ElimStorePlain]: Start of recursive call 1: 3 dim-0 vars, 1 dim-1 vars, End of recursive call: 3 dim-0 vars, and 1 xjuncts. [2019-02-28 13:31:51,416 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 4 variables, input treesize:44, output treesize:34 [2019-02-28 13:32:01,247 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:32:01,247 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_80|, ULTIMATE.start_main_p3, ULTIMATE.start_main_p2, ULTIMATE.start_main_p4]. (let ((.cse0 (select |v_#memory_int_80| ULTIMATE.start_main_p3))) (and (= 0 (+ (select |v_#memory_int_80| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= 0 .cse0) (= |#memory_int| (store |v_#memory_int_80| ULTIMATE.start_main_p3 (+ .cse0 1))) (= (+ (select |v_#memory_int_80| ULTIMATE.start_main_p4) 1) 0) (= 0 (select |v_#memory_int_80| ULTIMATE.start_main_p1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) [2019-02-28 13:32:01,247 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p3, ULTIMATE.start_main_p4, ULTIMATE.start_main_p2]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0)) [2019-02-28 13:32:01,362 INFO L273 TraceCheckUtils]: 0: Hoare triple {2962#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2971#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-28 13:32:01,364 INFO L273 TraceCheckUtils]: 1: Hoare triple {2971#(and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2975#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} is VALID [2019-02-28 13:32:01,367 INFO L273 TraceCheckUtils]: 2: Hoare triple {2975#(and (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {2979#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} is VALID [2019-02-28 13:32:01,370 INFO L273 TraceCheckUtils]: 3: Hoare triple {2979#(and (exists ((ULTIMATE.start_main_p2 Int)) (and (= 0 (+ (select |#memory_int| ULTIMATE.start_main_p2) 1)) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (exists ((ULTIMATE.start_main_p4 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p3) 0))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {2983#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} is VALID [2019-02-28 13:32:01,371 INFO L273 TraceCheckUtils]: 4: Hoare triple {2983#(and (exists ((ULTIMATE.start_main_p4 Int) (ULTIMATE.start_main_p2 Int) (ULTIMATE.start_main_p3 Int)) (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (+ (select |#memory_int| ULTIMATE.start_main_p4) 1) 0) (= (select |#memory_int| ULTIMATE.start_main_p3) 1) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (< ULTIMATE.start_main_p1 ULTIMATE.start_main_p2) (= (+ (select |#memory_int| ULTIMATE.start_main_p2) 1) 0))) (= (select |#memory_int| ULTIMATE.start_main_p1) 0))} assume !(#memory_int[main_p1] >= 0); {2963#false} is VALID [2019-02-28 13:32:01,372 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 0 proven. 6 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:32:01,372 INFO L322 TraceCheckSpWp]: Computing backward predicates... [2019-02-28 13:32:01,451 INFO L273 TraceCheckUtils]: 4: Hoare triple {2987#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} assume !(#memory_int[main_p1] >= 0); {2963#false} is VALID [2019-02-28 13:32:01,453 INFO L273 TraceCheckUtils]: 3: Hoare triple {2991#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {2987#(<= 0 (select |#memory_int| ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:32:01,454 INFO L273 TraceCheckUtils]: 2: Hoare triple {2995#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p2 := #memory_int[main_p2] - 1]; {2991#(<= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:32:01,457 INFO L273 TraceCheckUtils]: 1: Hoare triple {2999#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {2995#(<= 0 (select (store (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store |#memory_int| ULTIMATE.start_main_p2 (+ (select |#memory_int| ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:32:01,459 INFO L273 TraceCheckUtils]: 0: Hoare triple {2962#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {2999#(<= 0 (select (store (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3 (+ (select (store (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2 (+ (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2) (- 1))) ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p1))} is VALID [2019-02-28 13:32:01,460 INFO L134 CoverageAnalysis]: Checked inductivity of 6 backedges. 1 proven. 5 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:32:01,480 INFO L312 seRefinementStrategy]: Constructing automaton from 0 perfect and 3 imperfect interpolant sequences. [2019-02-28 13:32:01,480 INFO L327 seRefinementStrategy]: Number of different interpolants: perfect sequences [] imperfect sequences [4, 4, 4] total 12 [2019-02-28 13:32:01,480 INFO L250 anRefinementStrategy]: Using the first two imperfect interpolant sequences [2019-02-28 13:32:01,480 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-02-28 13:32:01,481 INFO L84 Accepts]: Finished accepts. word is accepted. [2019-02-28 13:32:01,481 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 10 states. [2019-02-28 13:32:01,497 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 10 edges. 10 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:32:01,497 INFO L459 AbstractCegarLoop]: Interpolant automaton has 10 states [2019-02-28 13:32:01,497 INFO L142 InterpolantAutomaton]: Constructing interpolant automaton starting with 10 interpolants. [2019-02-28 13:32:01,498 INFO L144 InterpolantAutomaton]: CoverageRelationStatistics Valid=67, Invalid=115, Unknown=0, NotChecked=0, Total=182 [2019-02-28 13:32:01,498 INFO L87 Difference]: Start difference. First operand 41 states and 152 transitions. Second operand 10 states. [2019-02-28 13:32:02,896 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:32:02,896 INFO L93 Difference]: Finished difference Result 67 states and 187 transitions. [2019-02-28 13:32:02,896 INFO L142 InterpolantAutomaton]: Switched to read-only mode: deterministic interpolant automaton has 7 states. [2019-02-28 13:32:02,896 INFO L78 Accepts]: Start accepts. Automaton has 10 states. Word has length 5 [2019-02-28 13:32:02,896 INFO L84 Accepts]: Finished accepts. some prefix is accepted. [2019-02-28 13:32:02,897 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-28 13:32:02,897 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 55 transitions. [2019-02-28 13:32:02,897 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 10 states. [2019-02-28 13:32:02,897 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 7 states to 7 states and 55 transitions. [2019-02-28 13:32:02,898 INFO L86 InductivityCheck]: Starting indutivity check of a Floyd-Hoare automaton with 7 states and 55 transitions. [2019-02-28 13:32:03,012 INFO L119 InductivityCheck]: Floyd-Hoare automaton has 55 edges. 55 inductive. 0 not inductive. 0 times theorem prover too weak to decide inductivity. [2019-02-28 13:32:03,013 INFO L225 Difference]: With dead ends: 67 [2019-02-28 13:32:03,014 INFO L226 Difference]: Without dead ends: 65 [2019-02-28 13:32:03,014 INFO L631 BasicCegarLoop]: 0 DeclaredPredicates, 15 GetRequests, 0 SyntacticMatches, 0 SemanticMatches, 15 ConstructedPredicates, 0 IntricatePredicates, 0 DeprecatedPredicates, 62 ImplicationChecksByTransitivity, 0.8s TimeCoverageRelationStatistics Valid=100, Invalid=172, Unknown=0, NotChecked=0, Total=272 [2019-02-28 13:32:03,014 INFO L82 GeneralOperation]: Start minimizeSevpa. Operand 65 states. [2019-02-28 13:32:03,228 INFO L88 GeneralOperation]: Finished minimizeSevpa. Reduced states from 65 to 39. [2019-02-28 13:32:03,228 INFO L214 AbstractMinimizeNwa]: Start testing correctness of minimizeSevpa [2019-02-28 13:32:03,228 INFO L82 GeneralOperation]: Start isEquivalent. First operand 65 states. Second operand 39 states. [2019-02-28 13:32:03,229 INFO L74 IsIncluded]: Start isIncluded. First operand 65 states. Second operand 39 states. [2019-02-28 13:32:03,229 INFO L87 Difference]: Start difference. First operand 65 states. Second operand 39 states. [2019-02-28 13:32:03,232 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:32:03,232 INFO L93 Difference]: Finished difference Result 65 states and 184 transitions. [2019-02-28 13:32:03,232 INFO L276 IsEmpty]: Start isEmpty. Operand 65 states and 184 transitions. [2019-02-28 13:32:03,233 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:32:03,233 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:32:03,233 INFO L74 IsIncluded]: Start isIncluded. First operand 39 states. Second operand 65 states. [2019-02-28 13:32:03,233 INFO L87 Difference]: Start difference. First operand 39 states. Second operand 65 states. [2019-02-28 13:32:03,235 INFO L144 Difference]: Subtrahend was deterministic. Have not used determinization. [2019-02-28 13:32:03,236 INFO L93 Difference]: Finished difference Result 65 states and 184 transitions. [2019-02-28 13:32:03,236 INFO L276 IsEmpty]: Start isEmpty. Operand 65 states and 184 transitions. [2019-02-28 13:32:03,236 INFO L282 IsEmpty]: Finished isEmpty. No accepting run. [2019-02-28 13:32:03,236 INFO L83 IsIncluded]: Finished isIncluded. Language is included [2019-02-28 13:32:03,236 INFO L88 GeneralOperation]: Finished isEquivalent. [2019-02-28 13:32:03,236 INFO L221 AbstractMinimizeNwa]: Finished testing correctness of minimizeSevpa [2019-02-28 13:32:03,237 INFO L82 GeneralOperation]: Start removeUnreachable. Operand 39 states. [2019-02-28 13:32:03,238 INFO L88 GeneralOperation]: Finished removeUnreachable. Reduced from 39 states to 39 states and 142 transitions. [2019-02-28 13:32:03,238 INFO L78 Accepts]: Start accepts. Automaton has 39 states and 142 transitions. Word has length 5 [2019-02-28 13:32:03,238 INFO L84 Accepts]: Finished accepts. word is rejected. [2019-02-28 13:32:03,239 INFO L480 AbstractCegarLoop]: Abstraction has 39 states and 142 transitions. [2019-02-28 13:32:03,239 INFO L481 AbstractCegarLoop]: Interpolant automaton has 10 states. [2019-02-28 13:32:03,239 INFO L276 IsEmpty]: Start isEmpty. Operand 39 states and 142 transitions. [2019-02-28 13:32:03,239 INFO L282 IsEmpty]: Finished isEmpty. Found accepting run of length 6 [2019-02-28 13:32:03,239 INFO L394 BasicCegarLoop]: Found error trace [2019-02-28 13:32:03,239 INFO L402 BasicCegarLoop]: trace histogram [1, 1, 1, 1, 1] [2019-02-28 13:32:03,240 INFO L423 AbstractCegarLoop]: === Iteration 17 === [ULTIMATE.startErr0ASSERT_VIOLATIONASSERT, ULTIMATE.startErr1ASSERT_VIOLATIONASSERT, ULTIMATE.startErr3ASSERT_VIOLATIONASSERT, ULTIMATE.startErr2ASSERT_VIOLATIONASSERT]=== [2019-02-28 13:32:03,240 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:32:03,240 INFO L82 PathProgramCache]: Analyzing trace with hash 29119902, now seen corresponding path program 1 times [2019-02-28 13:32:03,240 INFO L69 tionRefinementEngine]: Using refinement strategy TaipanRefinementStrategy [2019-02-28 13:32:03,241 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:32:03,241 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:32:03,241 INFO L119 rtionOrderModulation]: Craig_TreeInterpolation forces the order to NOT_INCREMENTALLY [2019-02-28 13:32:03,241 INFO L289 anRefinementStrategy]: Using traceCheck mode SMTINTERPOL with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: Craig_TreeInterpolation) [2019-02-28 13:32:03,246 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:32:03,686 WARN L181 SmtUtils]: Spent 180.00 ms on a formula simplification. DAG size of input: 29 DAG size of output: 17 [2019-02-28 13:32:03,735 INFO L273 TraceCheckUtils]: 0: Hoare triple {3301#true} havoc main_p1, main_p2, main_p3, main_p4;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p1 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p2 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p3 := malloc_ptr;malloc_old_#valid := #valid;havoc malloc_ptr;havoc #valid;assume malloc_old_#valid[malloc_ptr] == 0;assume #valid == malloc_old_#valid[malloc_ptr := 1];main_p4 := malloc_ptr;assume main_p1 < main_p2;assume main_p2 < main_p3;assume main_p3 < main_p4;#memory_int := #memory_int[main_p1 := 0];#memory_int := #memory_int[main_p2 := 0];#memory_int := #memory_int[main_p3 := 0];#memory_int := #memory_int[main_p4 := 0]; {3303#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} is VALID [2019-02-28 13:32:03,737 INFO L273 TraceCheckUtils]: 1: Hoare triple {3303#(and (= 0 (select (store |#memory_int| ULTIMATE.start_main_p4 (+ (select |#memory_int| ULTIMATE.start_main_p4) (- 1))) ULTIMATE.start_main_p2)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p4)))} #memory_int := #memory_int[main_p4 := #memory_int[main_p4] - 1]; {3304#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2)))} is VALID [2019-02-28 13:32:03,738 INFO L273 TraceCheckUtils]: 2: Hoare triple {3304#(and (not (= ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) (= 0 (select (store |#memory_int| ULTIMATE.start_main_p3 (+ (select |#memory_int| ULTIMATE.start_main_p3) 1)) ULTIMATE.start_main_p2)))} #memory_int := #memory_int[main_p3 := #memory_int[main_p3] + 1]; {3305#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:32:03,739 INFO L273 TraceCheckUtils]: 3: Hoare triple {3305#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume #memory_int[main_p1] >= 0; {3305#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} is VALID [2019-02-28 13:32:03,740 INFO L273 TraceCheckUtils]: 4: Hoare triple {3305#(= (select |#memory_int| ULTIMATE.start_main_p2) 0)} assume !(#memory_int[main_p2] <= 0); {3302#false} is VALID [2019-02-28 13:32:03,740 INFO L134 CoverageAnalysis]: Checked inductivity of 3 backedges. 0 proven. 3 refuted. 0 times theorem prover too weak. 0 trivial. 0 not checked. [2019-02-28 13:32:03,741 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:32:03,741 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode ABSTRACT_INTERPRETATION [2019-02-28 13:32:03,741 INFO L205 CegarAbsIntRunner]: Running AI on error trace of length 6 with the following transitions: [2019-02-28 13:32:03,741 INFO L207 CegarAbsIntRunner]: [0], [14], [16], [20], [21] [2019-02-28 13:32:03,743 INFO L148 AbstractInterpreter]: Using domain CompoundDomain [CongruenceDomain, ExplicitValueDomain] [2019-02-28 13:32:03,743 INFO L101 FixpointEngine]: Starting fixpoint engine with domain CompoundDomain (maxUnwinding=3, maxParallelStates=2) [2019-02-28 13:32:03,759 INFO L263 AbstractInterpreter]: Some error location(s) were reachable [2019-02-28 13:32:03,760 INFO L272 AbstractInterpreter]: Visited 5 different actions 5 times. Never merged. Never widened. Performed 54 root evaluator evaluations with a maximum evaluation depth of 3. Performed 54 inverse root evaluator evaluations with a maximum inverse evaluation depth of 3. Found 2 fixpoints after 2 different actions. Largest state had 0 variables. [2019-02-28 13:32:03,760 INFO L144 PredicateUnifier]: Initialized classic predicate unifier [2019-02-28 13:32:03,760 INFO L422 seRefinementStrategy]: Interpolation failed due to KNOWN_IGNORE: Unknown [2019-02-28 13:32:03,760 INFO L300 seRefinementStrategy]: The current sequences of interpolants are not accepted, trying to find more. [2019-02-28 13:32:03,760 INFO L193 anRefinementStrategy]: Switched to InterpolantGenerator mode Z3_IG No working directory specified, using /storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 16 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 16 with z3 -smt2 -in SMTLIB2_COMPLIANT=true -t:12000 [2019-02-28 13:32:03,772 INFO L103 rtionOrderModulation]: Keeping assertion order NOT_INCREMENTALLY [2019-02-28 13:32:03,772 INFO L289 anRefinementStrategy]: Using traceCheck mode Z3_IG with AssertCodeBlockOrder NOT_INCREMENTALLY (IT: FPandBP) [2019-02-28 13:32:03,776 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:32:03,777 INFO L256 TraceCheckSpWp]: Trace formula consists of 22 conjuncts, 6 conjunts are in the unsatisfiable core [2019-02-28 13:32:03,780 INFO L136 AnnotateAndAsserter]: Conjunction of SSA is unsat [2019-02-28 13:32:03,780 INFO L279 TraceCheckSpWp]: Computing forward predicates... [2019-02-28 13:32:03,793 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 0 select indices, 0 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 15 treesize of output 18 [2019-02-28 13:32:03,809 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 1 select indices, 1 select index equivalence classes, 0 disjoint index pairs (out of 0 index pairs), introduced 2 new quantified variables, introduced 2 case distinctions, treesize of input 18 treesize of output 23 [2019-02-28 13:32:03,817 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:32:03,829 INFO L442 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 2 new quantified variables, introduced 3 case distinctions, treesize of input 20 treesize of output 25 [2019-02-28 13:32:03,847 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:32:03,848 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:32:03,850 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:32:03,860 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 4 case distinctions, treesize of input 22 treesize of output 24 [2019-02-28 13:32:03,862 INFO L315 ElimStorePlain]: Start of recursive call 5: End of recursive call: and 1 xjuncts. [2019-02-28 13:32:03,872 INFO L315 ElimStorePlain]: Start of recursive call 4: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:32:03,882 INFO L315 ElimStorePlain]: Start of recursive call 3: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:32:03,893 INFO L315 ElimStorePlain]: Start of recursive call 2: 1 dim-1 vars, End of recursive call: and 1 xjuncts. [2019-02-28 13:32:03,907 INFO L315 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-02-28 13:32:03,907 INFO L209 ElimStorePlain]: Needed 5 recursive calls to eliminate 2 variables, input treesize:22, output treesize:27 [2019-02-28 13:32:03,912 WARN L397 uantifierElimination]: Trying to double check SDD result, but SMT solver's response was UNKNOWN. [2019-02-28 13:32:03,912 WARN L398 uantifierElimination]: Input elimination task: ∃ [|v_#memory_int_84|, ULTIMATE.start_main_p1]. (and (= (store (store (store (store |v_#memory_int_84| ULTIMATE.start_main_p1 0) ULTIMATE.start_main_p2 0) ULTIMATE.start_main_p3 0) ULTIMATE.start_main_p4 0) |#memory_int|) (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3)) [2019-02-28 13:32:03,912 WARN L399 uantifierElimination]: ElimStorePlain result: ∃ [ULTIMATE.start_main_p1]. (and (< ULTIMATE.start_main_p3 ULTIMATE.start_main_p4) (= (select |#memory_int| ULTIMATE.start_main_p1) 0) (= 0 (select |#memory_int| ULTIMATE.start_main_p2)) (= (select |#memory_int| ULTIMATE.start_main_p3) 0) (< ULTIMATE.start_main_p2 ULTIMATE.start_main_p3) (= (select |#memory_int| ULTIMATE.start_main_p4) 0)) [2019-02-28 13:32:03,965 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:32:03,967 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:32:03,968 INFO L187 IndexEqualityManager]: detected not equals via solver [2019-02-28 13:32:03,969 INFO L442 Elim1Store]: Elim1 did not use preprocessing eliminated variable of array dimension 1, 1 stores, 3 select indices, 3 select index equivalence classes, 3 disjoint index pairs (out of 3 index pairs), introduced 1 new quantified variables, introduced 0 case distinctions, treesize of input 26 treesize of output 21 [2019-02-28 13:32:03,972 INFO L315 ElimStorePlain]: Start of recursive call 2: End of recursive call: and 1 xjuncts. [2019-02-28 13:32:03,988 INFO L315 ElimStorePlain]: Start of recursive call 1: 1 dim-0 vars, 1 dim-1 vars, End of recursive call: 1 dim-0 vars, and 1 xjuncts. [2019-02-28 13:32:03,988 INFO L209 ElimStorePlain]: Needed 2 recursive calls to eliminate 2 variables, input treesize:32, output treesize:24